@azure/ai-projects 2.5.0 → 2.7.0
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.
- package/README.md +71 -2
- package/dist/browser/aiProjectClient.d.ts +1 -0
- package/dist/browser/aiProjectClient.d.ts.map +1 -1
- package/dist/browser/aiProjectClient.js +16 -1
- package/dist/browser/aiProjectClient.js.map +1 -1
- package/dist/browser/api/agents/index.d.ts +2 -2
- package/dist/browser/api/agents/index.d.ts.map +1 -1
- package/dist/browser/api/agents/index.js +1 -1
- package/dist/browser/api/agents/index.js.map +1 -1
- package/dist/browser/api/agents/operations.d.ts +23 -2
- package/dist/browser/api/agents/operations.d.ts.map +1 -1
- package/dist/browser/api/agents/operations.js +169 -3
- package/dist/browser/api/agents/operations.js.map +1 -1
- package/dist/browser/api/agents/options.d.ts +243 -2
- package/dist/browser/api/agents/options.d.ts.map +1 -1
- package/dist/browser/api/agents/options.js.map +1 -1
- package/dist/browser/api/aiProjectContext.d.ts +3 -0
- package/dist/browser/api/aiProjectContext.d.ts.map +1 -1
- package/dist/browser/api/aiProjectContext.js.map +1 -1
- package/dist/browser/api/beta/agentInsightMonitors/index.d.ts +3 -0
- package/dist/browser/api/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/browser/api/beta/agentInsightMonitors/index.js +4 -0
- package/dist/browser/api/beta/agentInsightMonitors/index.js.map +1 -0
- package/dist/browser/api/beta/agentInsightMonitors/operations.d.ts +59 -0
- package/dist/browser/api/beta/agentInsightMonitors/operations.d.ts.map +1 -0
- package/dist/browser/api/beta/agentInsightMonitors/operations.js +519 -0
- package/dist/browser/api/beta/agentInsightMonitors/operations.js.map +1 -0
- package/dist/browser/api/beta/agentInsightMonitors/options.d.ts +86 -0
- package/dist/browser/api/beta/agentInsightMonitors/options.d.ts.map +1 -0
- package/dist/browser/api/beta/agentInsightMonitors/options.js +4 -0
- package/dist/browser/api/beta/agentInsightMonitors/options.js.map +1 -0
- package/dist/browser/api/beta/agents/index.d.ts +2 -2
- package/dist/browser/api/beta/agents/index.d.ts.map +1 -1
- package/dist/browser/api/beta/agents/index.js +1 -1
- package/dist/browser/api/beta/agents/index.js.map +1 -1
- package/dist/browser/api/beta/agents/operations.d.ts +9 -2
- package/dist/browser/api/beta/agents/operations.d.ts.map +1 -1
- package/dist/browser/api/beta/agents/operations.js +38 -1
- package/dist/browser/api/beta/agents/operations.js.map +1 -1
- package/dist/browser/api/beta/agents/options.d.ts +3 -0
- package/dist/browser/api/beta/agents/options.d.ts.map +1 -1
- package/dist/browser/api/beta/agents/options.js.map +1 -1
- package/dist/browser/api/beta/datasets/operations.d.ts +1 -1
- package/dist/browser/api/beta/datasets/operations.d.ts.map +1 -1
- package/dist/browser/api/beta/datasets/operations.js.map +1 -1
- package/dist/browser/api/beta/models/options.d.ts +1 -1
- package/dist/browser/api/beta/models/options.d.ts.map +1 -1
- package/dist/browser/api/beta/models/options.js.map +1 -1
- package/dist/browser/api/beta/routines/operations.d.ts.map +1 -1
- package/dist/browser/api/beta/routines/operations.js +4 -1
- package/dist/browser/api/beta/routines/operations.js.map +1 -1
- package/dist/browser/api/beta/routines/options.d.ts +3 -1
- package/dist/browser/api/beta/routines/options.d.ts.map +1 -1
- package/dist/browser/api/beta/routines/options.js.map +1 -1
- package/dist/browser/api/beta/voiceAgents/conversations/index.d.ts +3 -0
- package/dist/browser/api/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/browser/api/beta/voiceAgents/conversations/index.js +4 -0
- package/dist/browser/api/beta/voiceAgents/conversations/index.js.map +1 -0
- package/dist/browser/api/beta/voiceAgents/conversations/operations.d.ts +140 -0
- package/dist/browser/api/beta/voiceAgents/conversations/operations.d.ts.map +1 -0
- package/dist/browser/api/beta/voiceAgents/conversations/operations.js +635 -0
- package/dist/browser/api/beta/voiceAgents/conversations/operations.js.map +1 -0
- package/dist/browser/api/beta/voiceAgents/conversations/options.d.ts +133 -0
- package/dist/browser/api/beta/voiceAgents/conversations/options.d.ts.map +1 -0
- package/dist/browser/api/beta/voiceAgents/conversations/options.js +4 -0
- package/dist/browser/api/beta/voiceAgents/conversations/options.js.map +1 -0
- package/dist/browser/api/beta/voiceAgents/telephony/index.d.ts +3 -0
- package/dist/browser/api/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/browser/api/beta/voiceAgents/telephony/index.js +4 -0
- package/dist/browser/api/beta/voiceAgents/telephony/index.js.map +1 -0
- package/dist/browser/api/beta/voiceAgents/telephony/operations.d.ts +62 -0
- package/dist/browser/api/beta/voiceAgents/telephony/operations.d.ts.map +1 -0
- package/dist/browser/api/beta/voiceAgents/telephony/operations.js +559 -0
- package/dist/browser/api/beta/voiceAgents/telephony/operations.js.map +1 -0
- package/dist/browser/api/beta/voiceAgents/telephony/options.d.ts +133 -0
- package/dist/browser/api/beta/voiceAgents/telephony/options.d.ts.map +1 -0
- package/dist/browser/api/beta/voiceAgents/telephony/options.js +4 -0
- package/dist/browser/api/beta/voiceAgents/telephony/options.js.map +1 -0
- package/dist/browser/api/datasets/operations.d.ts.map +1 -1
- package/dist/browser/api/datasets/operations.js +1 -3
- package/dist/browser/api/datasets/operations.js.map +1 -1
- package/dist/browser/api/toolboxes/index.d.ts +2 -2
- package/dist/browser/api/toolboxes/index.d.ts.map +1 -1
- package/dist/browser/api/toolboxes/index.js +1 -1
- package/dist/browser/api/toolboxes/index.js.map +1 -1
- package/dist/browser/api/toolboxes/operations.d.ts +6 -2
- package/dist/browser/api/toolboxes/operations.d.ts.map +1 -1
- package/dist/browser/api/toolboxes/operations.js +33 -0
- package/dist/browser/api/toolboxes/operations.js.map +1 -1
- package/dist/browser/api/toolboxes/options.d.ts +3 -0
- package/dist/browser/api/toolboxes/options.d.ts.map +1 -1
- package/dist/browser/api/toolboxes/options.js.map +1 -1
- package/dist/browser/classic/agents/index.d.ts +17 -2
- package/dist/browser/classic/agents/index.d.ts.map +1 -1
- package/dist/browser/classic/agents/index.js +4 -1
- package/dist/browser/classic/agents/index.js.map +1 -1
- package/dist/browser/classic/beta/agentInsightMonitors/index.d.ts +36 -0
- package/dist/browser/classic/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/browser/classic/beta/agentInsightMonitors/index.js +26 -0
- package/dist/browser/classic/beta/agentInsightMonitors/index.js.map +1 -0
- package/dist/browser/classic/beta/agents/index.d.ts +8 -3
- package/dist/browser/classic/beta/agents/index.d.ts.map +1 -1
- package/dist/browser/classic/beta/agents/index.js +3 -4
- package/dist/browser/classic/beta/agents/index.js.map +1 -1
- package/dist/browser/classic/beta/index.d.ts +9 -1
- package/dist/browser/classic/beta/index.d.ts.map +1 -1
- package/dist/browser/classic/beta/index.js +7 -1
- package/dist/browser/classic/beta/index.js.map +1 -1
- package/dist/browser/classic/beta/routines/index.d.ts +1 -1
- package/dist/browser/classic/beta/routines/index.d.ts.map +1 -1
- package/dist/browser/classic/beta/routines/index.js.map +1 -1
- package/dist/browser/classic/beta/voiceAgents/conversations/index.d.ts +115 -0
- package/dist/browser/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/browser/classic/beta/voiceAgents/conversations/index.js +25 -0
- package/dist/browser/classic/beta/voiceAgents/conversations/index.js.map +1 -0
- package/dist/browser/classic/beta/voiceAgents/index.d.ts +16 -0
- package/dist/browser/classic/beta/voiceAgents/index.d.ts.map +1 -0
- package/dist/browser/classic/beta/voiceAgents/index.js +16 -0
- package/dist/browser/classic/beta/voiceAgents/index.js.map +1 -0
- package/dist/browser/classic/beta/voiceAgents/telephony/index.d.ts +37 -0
- package/dist/browser/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/browser/classic/beta/voiceAgents/telephony/index.js +25 -0
- package/dist/browser/classic/beta/voiceAgents/telephony/index.js.map +1 -0
- package/dist/browser/classic/index.d.ts +3 -0
- package/dist/browser/classic/index.d.ts.map +1 -1
- package/dist/browser/classic/index.js.map +1 -1
- package/dist/browser/classic/toolboxes/index.d.ts +4 -2
- package/dist/browser/classic/toolboxes/index.d.ts.map +1 -1
- package/dist/browser/classic/toolboxes/index.js +2 -1
- package/dist/browser/classic/toolboxes/index.js.map +1 -1
- package/dist/browser/constants.d.ts +1 -1
- package/dist/browser/constants.js +1 -1
- package/dist/browser/constants.js.map +1 -1
- package/dist/browser/deprecate.interface.d.ts +16 -4
- package/dist/browser/deprecate.interface.d.ts.map +1 -1
- package/dist/browser/deprecate.interface.js.map +1 -1
- package/dist/browser/index.d.ts +20 -6
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +2 -0
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/models/index.d.ts +3 -1
- package/dist/browser/models/index.d.ts.map +1 -1
- package/dist/browser/models/index.js.map +1 -1
- package/dist/browser/models/models.d.ts +4840 -33
- package/dist/browser/models/models.d.ts.map +1 -1
- package/dist/browser/models/models.js +5520 -22
- package/dist/browser/models/models.js.map +1 -1
- package/dist/browser/package.json +6 -1
- package/dist/browser/realtime/asyncQueue.d.ts +29 -0
- package/dist/browser/realtime/asyncQueue.d.ts.map +1 -0
- package/dist/browser/realtime/asyncQueue.js +105 -0
- package/dist/browser/realtime/asyncQueue.js.map +1 -0
- package/dist/browser/realtime/errors.d.ts +34 -0
- package/dist/browser/realtime/errors.d.ts.map +1 -0
- package/dist/browser/realtime/errors.js +40 -0
- package/dist/browser/realtime/errors.js.map +1 -0
- package/dist/browser/realtime/events.d.ts +24 -0
- package/dist/browser/realtime/events.d.ts.map +1 -0
- package/dist/browser/realtime/events.js +4 -0
- package/dist/browser/realtime/events.js.map +1 -0
- package/dist/browser/realtime/protocol.d.ts +7 -0
- package/dist/browser/realtime/protocol.d.ts.map +1 -0
- package/dist/browser/realtime/protocol.js +262 -0
- package/dist/browser/realtime/protocol.js.map +1 -0
- package/dist/browser/realtime/voiceAgentRealtimeClient.d.ts +145 -0
- package/dist/browser/realtime/voiceAgentRealtimeClient.d.ts.map +1 -0
- package/dist/browser/realtime/voiceAgentRealtimeClient.js +376 -0
- package/dist/browser/realtime/voiceAgentRealtimeClient.js.map +1 -0
- package/dist/browser/realtime/webSocketTransportLike.d.ts +44 -0
- package/dist/browser/realtime/webSocketTransportLike.d.ts.map +1 -0
- package/dist/browser/realtime/webSocketTransportLike.js +4 -0
- package/dist/browser/realtime/webSocketTransportLike.js.map +1 -0
- package/dist/browser/static-helpers/pagingHelpers.d.ts.map +1 -1
- package/dist/browser/static-helpers/pagingHelpers.js +3 -0
- package/dist/browser/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/browser/static-helpers/pollingHelpers.d.ts +20 -0
- package/dist/browser/static-helpers/pollingHelpers.d.ts.map +1 -1
- package/dist/browser/static-helpers/pollingHelpers.js +26 -12
- package/dist/browser/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/browser/static-helpers/serialization/get-binary-stream-response.d.ts.map +1 -1
- package/dist/browser/static-helpers/serialization/get-binary-stream-response.js +12 -0
- package/dist/browser/static-helpers/serialization/get-binary-stream-response.js.map +1 -1
- package/dist/browser/static-helpers/serialization/parse-json-object.d.ts +2 -0
- package/dist/browser/static-helpers/serialization/parse-json-object.d.ts.map +1 -0
- package/dist/browser/static-helpers/serialization/parse-json-object.js +14 -0
- package/dist/browser/static-helpers/serialization/parse-json-object.js.map +1 -0
- package/dist/browser/tracing/configuration.js +1 -1
- package/dist/browser/tracing/configuration.js.map +1 -1
- package/dist/browser/webSocketTransport.d.ts +31 -0
- package/dist/browser/webSocketTransport.d.ts.map +1 -0
- package/dist/browser/webSocketTransport.js +218 -0
- package/dist/browser/webSocketTransport.js.map +1 -0
- package/dist/commonjs/aiProjectClient.d.ts +1 -0
- package/dist/commonjs/aiProjectClient.d.ts.map +1 -1
- package/dist/commonjs/aiProjectClient.js +16 -1
- package/dist/commonjs/aiProjectClient.js.map +2 -2
- package/dist/commonjs/api/agents/index.d.ts +2 -2
- package/dist/commonjs/api/agents/index.d.ts.map +1 -1
- package/dist/commonjs/api/agents/index.js +6 -0
- package/dist/commonjs/api/agents/index.js.map +2 -2
- package/dist/commonjs/api/agents/operations.d.ts +23 -2
- package/dist/commonjs/api/agents/operations.d.ts.map +1 -1
- package/dist/commonjs/api/agents/operations.js +176 -4
- package/dist/commonjs/api/agents/operations.js.map +2 -2
- package/dist/commonjs/api/agents/options.d.ts +243 -2
- package/dist/commonjs/api/agents/options.d.ts.map +1 -1
- package/dist/commonjs/api/agents/options.js.map +1 -1
- package/dist/commonjs/api/aiProjectContext.d.ts +3 -0
- package/dist/commonjs/api/aiProjectContext.d.ts.map +1 -1
- package/dist/commonjs/api/aiProjectContext.js.map +2 -2
- package/dist/commonjs/api/beta/agentInsightMonitors/index.d.ts +3 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/index.js +52 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/index.js.map +7 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/operations.d.ts +59 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/operations.d.ts.map +1 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/operations.js +678 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/operations.js.map +7 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/options.d.ts +86 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/options.d.ts.map +1 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/options.js +16 -0
- package/dist/commonjs/api/beta/agentInsightMonitors/options.js.map +7 -0
- package/dist/commonjs/api/beta/agents/index.d.ts +2 -2
- package/dist/commonjs/api/beta/agents/index.d.ts.map +1 -1
- package/dist/commonjs/api/beta/agents/index.js +2 -0
- package/dist/commonjs/api/beta/agents/index.js.map +2 -2
- package/dist/commonjs/api/beta/agents/operations.d.ts +9 -2
- package/dist/commonjs/api/beta/agents/operations.d.ts.map +1 -1
- package/dist/commonjs/api/beta/agents/operations.js +43 -0
- package/dist/commonjs/api/beta/agents/operations.js.map +2 -2
- package/dist/commonjs/api/beta/agents/options.d.ts +3 -0
- package/dist/commonjs/api/beta/agents/options.d.ts.map +1 -1
- package/dist/commonjs/api/beta/agents/options.js.map +1 -1
- package/dist/commonjs/api/beta/datasets/operations.d.ts +1 -1
- package/dist/commonjs/api/beta/datasets/operations.d.ts.map +1 -1
- package/dist/commonjs/api/beta/datasets/operations.js.map +1 -1
- package/dist/commonjs/api/beta/models/options.d.ts +1 -1
- package/dist/commonjs/api/beta/models/options.d.ts.map +1 -1
- package/dist/commonjs/api/beta/models/options.js.map +1 -1
- package/dist/commonjs/api/beta/routines/operations.d.ts.map +1 -1
- package/dist/commonjs/api/beta/routines/operations.js +2 -1
- package/dist/commonjs/api/beta/routines/operations.js.map +2 -2
- package/dist/commonjs/api/beta/routines/options.d.ts +3 -1
- package/dist/commonjs/api/beta/routines/options.d.ts.map +1 -1
- package/dist/commonjs/api/beta/routines/options.js.map +1 -1
- package/dist/commonjs/api/beta/voiceAgents/conversations/index.d.ts +3 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/index.js +54 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/index.js.map +7 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/operations.d.ts +140 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/operations.d.ts.map +1 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/operations.js +747 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/operations.js.map +7 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/options.d.ts +133 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/options.d.ts.map +1 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/options.js +16 -0
- package/dist/commonjs/api/beta/voiceAgents/conversations/options.js.map +7 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/index.d.ts +3 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/index.js +54 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/index.js.map +7 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/operations.d.ts +62 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/operations.d.ts.map +1 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/operations.js +683 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/operations.js.map +7 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/options.d.ts +133 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/options.d.ts.map +1 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/options.js +16 -0
- package/dist/commonjs/api/beta/voiceAgents/telephony/options.js.map +7 -0
- package/dist/commonjs/api/datasets/operations.d.ts.map +1 -1
- package/dist/commonjs/api/datasets/operations.js +0 -6
- package/dist/commonjs/api/datasets/operations.js.map +2 -2
- package/dist/commonjs/api/toolboxes/index.d.ts +2 -2
- package/dist/commonjs/api/toolboxes/index.d.ts.map +1 -1
- package/dist/commonjs/api/toolboxes/index.js +2 -0
- package/dist/commonjs/api/toolboxes/index.js.map +2 -2
- package/dist/commonjs/api/toolboxes/operations.d.ts +6 -2
- package/dist/commonjs/api/toolboxes/operations.d.ts.map +1 -1
- package/dist/commonjs/api/toolboxes/operations.js +42 -0
- package/dist/commonjs/api/toolboxes/operations.js.map +2 -2
- package/dist/commonjs/api/toolboxes/options.d.ts +3 -0
- package/dist/commonjs/api/toolboxes/options.d.ts.map +1 -1
- package/dist/commonjs/api/toolboxes/options.js.map +1 -1
- package/dist/commonjs/classic/agents/index.d.ts +17 -2
- package/dist/commonjs/classic/agents/index.d.ts.map +1 -1
- package/dist/commonjs/classic/agents/index.js +3 -0
- package/dist/commonjs/classic/agents/index.js.map +2 -2
- package/dist/commonjs/classic/beta/agentInsightMonitors/index.d.ts +36 -0
- package/dist/commonjs/classic/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/commonjs/classic/beta/agentInsightMonitors/index.js +50 -0
- package/dist/commonjs/classic/beta/agentInsightMonitors/index.js.map +7 -0
- package/dist/commonjs/classic/beta/agents/index.d.ts +8 -3
- package/dist/commonjs/classic/beta/agents/index.d.ts.map +1 -1
- package/dist/commonjs/classic/beta/agents/index.js +3 -4
- package/dist/commonjs/classic/beta/agents/index.js.map +2 -2
- package/dist/commonjs/classic/beta/index.d.ts +9 -1
- package/dist/commonjs/classic/beta/index.d.ts.map +1 -1
- package/dist/commonjs/classic/beta/index.js +8 -2
- package/dist/commonjs/classic/beta/index.js.map +2 -2
- package/dist/commonjs/classic/beta/routines/index.d.ts +1 -1
- package/dist/commonjs/classic/beta/routines/index.d.ts.map +1 -1
- package/dist/commonjs/classic/beta/routines/index.js.map +1 -1
- package/dist/commonjs/classic/beta/voiceAgents/conversations/index.d.ts +115 -0
- package/dist/commonjs/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/commonjs/classic/beta/voiceAgents/conversations/index.js +49 -0
- package/dist/commonjs/classic/beta/voiceAgents/conversations/index.js.map +7 -0
- package/dist/commonjs/classic/beta/voiceAgents/index.d.ts +16 -0
- package/dist/commonjs/classic/beta/voiceAgents/index.d.ts.map +1 -0
- package/dist/commonjs/classic/beta/voiceAgents/index.js +40 -0
- package/dist/commonjs/classic/beta/voiceAgents/index.js.map +7 -0
- package/dist/commonjs/classic/beta/voiceAgents/telephony/index.d.ts +37 -0
- package/dist/commonjs/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/commonjs/classic/beta/voiceAgents/telephony/index.js +49 -0
- package/dist/commonjs/classic/beta/voiceAgents/telephony/index.js.map +7 -0
- package/dist/commonjs/classic/index.d.ts +3 -0
- package/dist/commonjs/classic/index.d.ts.map +1 -1
- package/dist/commonjs/classic/index.js.map +1 -1
- package/dist/commonjs/classic/toolboxes/index.d.ts +4 -2
- package/dist/commonjs/classic/toolboxes/index.d.ts.map +1 -1
- package/dist/commonjs/classic/toolboxes/index.js +1 -0
- package/dist/commonjs/classic/toolboxes/index.js.map +2 -2
- package/dist/commonjs/constants.d.ts +1 -1
- package/dist/commonjs/constants.js +1 -1
- package/dist/commonjs/constants.js.map +1 -1
- package/dist/commonjs/deprecate.interface.d.ts +16 -4
- package/dist/commonjs/deprecate.interface.d.ts.map +1 -1
- package/dist/commonjs/deprecate.interface.js.map +1 -1
- package/dist/commonjs/index.d.ts +20 -6
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +14 -0
- package/dist/commonjs/index.js.map +2 -2
- package/dist/commonjs/models/index.d.ts +3 -1
- package/dist/commonjs/models/index.d.ts.map +1 -1
- package/dist/commonjs/models/index.js.map +1 -1
- package/dist/commonjs/models/models.d.ts +4840 -33
- package/dist/commonjs/models/models.d.ts.map +1 -1
- package/dist/commonjs/models/models.js +6567 -79
- package/dist/commonjs/models/models.js.map +2 -2
- package/dist/commonjs/package.json +6 -1
- package/dist/commonjs/realtime/asyncQueue.d.ts +29 -0
- package/dist/commonjs/realtime/asyncQueue.d.ts.map +1 -0
- package/dist/commonjs/realtime/asyncQueue.js +127 -0
- package/dist/commonjs/realtime/asyncQueue.js.map +7 -0
- package/dist/commonjs/realtime/errors.d.ts +34 -0
- package/dist/commonjs/realtime/errors.d.ts.map +1 -0
- package/dist/commonjs/realtime/errors.js +66 -0
- package/dist/commonjs/realtime/errors.js.map +7 -0
- package/dist/commonjs/realtime/events.d.ts +24 -0
- package/dist/commonjs/realtime/events.d.ts.map +1 -0
- package/dist/commonjs/realtime/events.js +16 -0
- package/dist/commonjs/realtime/events.js.map +7 -0
- package/dist/commonjs/realtime/protocol.d.ts +7 -0
- package/dist/commonjs/realtime/protocol.d.ts.map +1 -0
- package/dist/commonjs/realtime/protocol.js +297 -0
- package/dist/commonjs/realtime/protocol.js.map +7 -0
- package/dist/commonjs/realtime/voiceAgentRealtimeClient.d.ts +145 -0
- package/dist/commonjs/realtime/voiceAgentRealtimeClient.d.ts.map +1 -0
- package/dist/commonjs/realtime/voiceAgentRealtimeClient.js +443 -0
- package/dist/commonjs/realtime/voiceAgentRealtimeClient.js.map +7 -0
- package/dist/commonjs/realtime/webSocketTransportLike.d.ts +44 -0
- package/dist/commonjs/realtime/webSocketTransportLike.d.ts.map +1 -0
- package/dist/commonjs/realtime/webSocketTransportLike.js +16 -0
- package/dist/commonjs/realtime/webSocketTransportLike.js.map +7 -0
- package/dist/commonjs/static-helpers/pagingHelpers.d.ts.map +1 -1
- package/dist/commonjs/static-helpers/pagingHelpers.js +3 -0
- package/dist/commonjs/static-helpers/pagingHelpers.js.map +2 -2
- package/dist/commonjs/static-helpers/pollingHelpers.d.ts +20 -0
- package/dist/commonjs/static-helpers/pollingHelpers.d.ts.map +1 -1
- package/dist/commonjs/static-helpers/pollingHelpers.js +29 -8
- package/dist/commonjs/static-helpers/pollingHelpers.js.map +2 -2
- package/dist/commonjs/static-helpers/serialization/get-binary-stream-response.d.ts.map +1 -1
- package/dist/commonjs/static-helpers/serialization/get-binary-stream-response.js +15 -0
- package/dist/commonjs/static-helpers/serialization/get-binary-stream-response.js.map +2 -2
- package/dist/commonjs/static-helpers/serialization/parse-json-object.d.ts +2 -0
- package/dist/commonjs/static-helpers/serialization/parse-json-object.d.ts.map +1 -0
- package/dist/commonjs/static-helpers/serialization/parse-json-object.js +35 -0
- package/dist/commonjs/static-helpers/serialization/parse-json-object.js.map +7 -0
- package/dist/commonjs/tracing/configuration.js +1 -1
- package/dist/commonjs/tracing/configuration.js.map +2 -2
- package/dist/commonjs/tsdoc-metadata.json +1 -1
- package/dist/commonjs/webSocketTransport.d.ts +15 -0
- package/dist/commonjs/webSocketTransport.d.ts.map +1 -0
- package/dist/commonjs/webSocketTransport.js +232 -0
- package/dist/commonjs/webSocketTransport.js.map +7 -0
- package/dist/esm/aiProjectClient.d.ts +1 -0
- package/dist/esm/aiProjectClient.d.ts.map +1 -1
- package/dist/esm/aiProjectClient.js +16 -1
- package/dist/esm/aiProjectClient.js.map +1 -1
- package/dist/esm/api/agents/index.d.ts +2 -2
- package/dist/esm/api/agents/index.d.ts.map +1 -1
- package/dist/esm/api/agents/index.js +1 -1
- package/dist/esm/api/agents/index.js.map +1 -1
- package/dist/esm/api/agents/operations.d.ts +23 -2
- package/dist/esm/api/agents/operations.d.ts.map +1 -1
- package/dist/esm/api/agents/operations.js +169 -3
- package/dist/esm/api/agents/operations.js.map +1 -1
- package/dist/esm/api/agents/options.d.ts +243 -2
- package/dist/esm/api/agents/options.d.ts.map +1 -1
- package/dist/esm/api/agents/options.js.map +1 -1
- package/dist/esm/api/aiProjectContext.d.ts +3 -0
- package/dist/esm/api/aiProjectContext.d.ts.map +1 -1
- package/dist/esm/api/aiProjectContext.js.map +1 -1
- package/dist/esm/api/beta/agentInsightMonitors/index.d.ts +3 -0
- package/dist/esm/api/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/esm/api/beta/agentInsightMonitors/index.js +4 -0
- package/dist/esm/api/beta/agentInsightMonitors/index.js.map +1 -0
- package/dist/esm/api/beta/agentInsightMonitors/operations.d.ts +59 -0
- package/dist/esm/api/beta/agentInsightMonitors/operations.d.ts.map +1 -0
- package/dist/esm/api/beta/agentInsightMonitors/operations.js +519 -0
- package/dist/esm/api/beta/agentInsightMonitors/operations.js.map +1 -0
- package/dist/esm/api/beta/agentInsightMonitors/options.d.ts +86 -0
- package/dist/esm/api/beta/agentInsightMonitors/options.d.ts.map +1 -0
- package/dist/esm/api/beta/agentInsightMonitors/options.js +4 -0
- package/dist/esm/api/beta/agentInsightMonitors/options.js.map +1 -0
- package/dist/esm/api/beta/agents/index.d.ts +2 -2
- package/dist/esm/api/beta/agents/index.d.ts.map +1 -1
- package/dist/esm/api/beta/agents/index.js +1 -1
- package/dist/esm/api/beta/agents/index.js.map +1 -1
- package/dist/esm/api/beta/agents/operations.d.ts +9 -2
- package/dist/esm/api/beta/agents/operations.d.ts.map +1 -1
- package/dist/esm/api/beta/agents/operations.js +38 -1
- package/dist/esm/api/beta/agents/operations.js.map +1 -1
- package/dist/esm/api/beta/agents/options.d.ts +3 -0
- package/dist/esm/api/beta/agents/options.d.ts.map +1 -1
- package/dist/esm/api/beta/agents/options.js.map +1 -1
- package/dist/esm/api/beta/datasets/operations.d.ts +1 -1
- package/dist/esm/api/beta/datasets/operations.d.ts.map +1 -1
- package/dist/esm/api/beta/datasets/operations.js.map +1 -1
- package/dist/esm/api/beta/models/options.d.ts +1 -1
- package/dist/esm/api/beta/models/options.d.ts.map +1 -1
- package/dist/esm/api/beta/models/options.js.map +1 -1
- package/dist/esm/api/beta/routines/operations.d.ts.map +1 -1
- package/dist/esm/api/beta/routines/operations.js +4 -1
- package/dist/esm/api/beta/routines/operations.js.map +1 -1
- package/dist/esm/api/beta/routines/options.d.ts +3 -1
- package/dist/esm/api/beta/routines/options.d.ts.map +1 -1
- package/dist/esm/api/beta/routines/options.js.map +1 -1
- package/dist/esm/api/beta/voiceAgents/conversations/index.d.ts +3 -0
- package/dist/esm/api/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/esm/api/beta/voiceAgents/conversations/index.js +4 -0
- package/dist/esm/api/beta/voiceAgents/conversations/index.js.map +1 -0
- package/dist/esm/api/beta/voiceAgents/conversations/operations.d.ts +140 -0
- package/dist/esm/api/beta/voiceAgents/conversations/operations.d.ts.map +1 -0
- package/dist/esm/api/beta/voiceAgents/conversations/operations.js +635 -0
- package/dist/esm/api/beta/voiceAgents/conversations/operations.js.map +1 -0
- package/dist/esm/api/beta/voiceAgents/conversations/options.d.ts +133 -0
- package/dist/esm/api/beta/voiceAgents/conversations/options.d.ts.map +1 -0
- package/dist/esm/api/beta/voiceAgents/conversations/options.js +4 -0
- package/dist/esm/api/beta/voiceAgents/conversations/options.js.map +1 -0
- package/dist/esm/api/beta/voiceAgents/telephony/index.d.ts +3 -0
- package/dist/esm/api/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/esm/api/beta/voiceAgents/telephony/index.js +4 -0
- package/dist/esm/api/beta/voiceAgents/telephony/index.js.map +1 -0
- package/dist/esm/api/beta/voiceAgents/telephony/operations.d.ts +62 -0
- package/dist/esm/api/beta/voiceAgents/telephony/operations.d.ts.map +1 -0
- package/dist/esm/api/beta/voiceAgents/telephony/operations.js +559 -0
- package/dist/esm/api/beta/voiceAgents/telephony/operations.js.map +1 -0
- package/dist/esm/api/beta/voiceAgents/telephony/options.d.ts +133 -0
- package/dist/esm/api/beta/voiceAgents/telephony/options.d.ts.map +1 -0
- package/dist/esm/api/beta/voiceAgents/telephony/options.js +4 -0
- package/dist/esm/api/beta/voiceAgents/telephony/options.js.map +1 -0
- package/dist/esm/api/datasets/operations.d.ts.map +1 -1
- package/dist/esm/api/datasets/operations.js +1 -3
- package/dist/esm/api/datasets/operations.js.map +1 -1
- package/dist/esm/api/toolboxes/index.d.ts +2 -2
- package/dist/esm/api/toolboxes/index.d.ts.map +1 -1
- package/dist/esm/api/toolboxes/index.js +1 -1
- package/dist/esm/api/toolboxes/index.js.map +1 -1
- package/dist/esm/api/toolboxes/operations.d.ts +6 -2
- package/dist/esm/api/toolboxes/operations.d.ts.map +1 -1
- package/dist/esm/api/toolboxes/operations.js +33 -0
- package/dist/esm/api/toolboxes/operations.js.map +1 -1
- package/dist/esm/api/toolboxes/options.d.ts +3 -0
- package/dist/esm/api/toolboxes/options.d.ts.map +1 -1
- package/dist/esm/api/toolboxes/options.js.map +1 -1
- package/dist/esm/classic/agents/index.d.ts +17 -2
- package/dist/esm/classic/agents/index.d.ts.map +1 -1
- package/dist/esm/classic/agents/index.js +4 -1
- package/dist/esm/classic/agents/index.js.map +1 -1
- package/dist/esm/classic/beta/agentInsightMonitors/index.d.ts +36 -0
- package/dist/esm/classic/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/esm/classic/beta/agentInsightMonitors/index.js +26 -0
- package/dist/esm/classic/beta/agentInsightMonitors/index.js.map +1 -0
- package/dist/esm/classic/beta/agents/index.d.ts +8 -3
- package/dist/esm/classic/beta/agents/index.d.ts.map +1 -1
- package/dist/esm/classic/beta/agents/index.js +3 -4
- package/dist/esm/classic/beta/agents/index.js.map +1 -1
- package/dist/esm/classic/beta/index.d.ts +9 -1
- package/dist/esm/classic/beta/index.d.ts.map +1 -1
- package/dist/esm/classic/beta/index.js +7 -1
- package/dist/esm/classic/beta/index.js.map +1 -1
- package/dist/esm/classic/beta/routines/index.d.ts +1 -1
- package/dist/esm/classic/beta/routines/index.d.ts.map +1 -1
- package/dist/esm/classic/beta/routines/index.js.map +1 -1
- package/dist/esm/classic/beta/voiceAgents/conversations/index.d.ts +115 -0
- package/dist/esm/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/esm/classic/beta/voiceAgents/conversations/index.js +25 -0
- package/dist/esm/classic/beta/voiceAgents/conversations/index.js.map +1 -0
- package/dist/esm/classic/beta/voiceAgents/index.d.ts +16 -0
- package/dist/esm/classic/beta/voiceAgents/index.d.ts.map +1 -0
- package/dist/esm/classic/beta/voiceAgents/index.js +16 -0
- package/dist/esm/classic/beta/voiceAgents/index.js.map +1 -0
- package/dist/esm/classic/beta/voiceAgents/telephony/index.d.ts +37 -0
- package/dist/esm/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/esm/classic/beta/voiceAgents/telephony/index.js +25 -0
- package/dist/esm/classic/beta/voiceAgents/telephony/index.js.map +1 -0
- package/dist/esm/classic/index.d.ts +3 -0
- package/dist/esm/classic/index.d.ts.map +1 -1
- package/dist/esm/classic/index.js.map +1 -1
- package/dist/esm/classic/toolboxes/index.d.ts +4 -2
- package/dist/esm/classic/toolboxes/index.d.ts.map +1 -1
- package/dist/esm/classic/toolboxes/index.js +2 -1
- package/dist/esm/classic/toolboxes/index.js.map +1 -1
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.js +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/deprecate.interface.d.ts +16 -4
- package/dist/esm/deprecate.interface.d.ts.map +1 -1
- package/dist/esm/deprecate.interface.js.map +1 -1
- package/dist/esm/index.d.ts +20 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/models/index.d.ts +3 -1
- package/dist/esm/models/index.d.ts.map +1 -1
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/models/models.d.ts +4840 -33
- package/dist/esm/models/models.d.ts.map +1 -1
- package/dist/esm/models/models.js +5520 -22
- package/dist/esm/models/models.js.map +1 -1
- package/dist/esm/package.json +6 -1
- package/dist/esm/realtime/asyncQueue.d.ts +29 -0
- package/dist/esm/realtime/asyncQueue.d.ts.map +1 -0
- package/dist/esm/realtime/asyncQueue.js +105 -0
- package/dist/esm/realtime/asyncQueue.js.map +1 -0
- package/dist/esm/realtime/errors.d.ts +34 -0
- package/dist/esm/realtime/errors.d.ts.map +1 -0
- package/dist/esm/realtime/errors.js +40 -0
- package/dist/esm/realtime/errors.js.map +1 -0
- package/dist/esm/realtime/events.d.ts +24 -0
- package/dist/esm/realtime/events.d.ts.map +1 -0
- package/dist/esm/realtime/events.js +4 -0
- package/dist/esm/realtime/events.js.map +1 -0
- package/dist/esm/realtime/protocol.d.ts +7 -0
- package/dist/esm/realtime/protocol.d.ts.map +1 -0
- package/dist/esm/realtime/protocol.js +262 -0
- package/dist/esm/realtime/protocol.js.map +1 -0
- package/dist/esm/realtime/voiceAgentRealtimeClient.d.ts +145 -0
- package/dist/esm/realtime/voiceAgentRealtimeClient.d.ts.map +1 -0
- package/dist/esm/realtime/voiceAgentRealtimeClient.js +376 -0
- package/dist/esm/realtime/voiceAgentRealtimeClient.js.map +1 -0
- package/dist/esm/realtime/webSocketTransportLike.d.ts +44 -0
- package/dist/esm/realtime/webSocketTransportLike.d.ts.map +1 -0
- package/dist/esm/realtime/webSocketTransportLike.js +4 -0
- package/dist/esm/realtime/webSocketTransportLike.js.map +1 -0
- package/dist/esm/static-helpers/pagingHelpers.d.ts.map +1 -1
- package/dist/esm/static-helpers/pagingHelpers.js +3 -0
- package/dist/esm/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/esm/static-helpers/pollingHelpers.d.ts +20 -0
- package/dist/esm/static-helpers/pollingHelpers.d.ts.map +1 -1
- package/dist/esm/static-helpers/pollingHelpers.js +26 -12
- package/dist/esm/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/esm/static-helpers/serialization/get-binary-stream-response.d.ts.map +1 -1
- package/dist/esm/static-helpers/serialization/get-binary-stream-response.js +15 -0
- package/dist/esm/static-helpers/serialization/get-binary-stream-response.js.map +1 -1
- package/dist/esm/static-helpers/serialization/parse-json-object.d.ts +2 -0
- package/dist/esm/static-helpers/serialization/parse-json-object.d.ts.map +1 -0
- package/dist/esm/static-helpers/serialization/parse-json-object.js +14 -0
- package/dist/esm/static-helpers/serialization/parse-json-object.js.map +1 -0
- package/dist/esm/tracing/configuration.js +1 -1
- package/dist/esm/tracing/configuration.js.map +1 -1
- package/dist/esm/webSocketTransport.d.ts +15 -0
- package/dist/esm/webSocketTransport.d.ts.map +1 -0
- package/dist/esm/webSocketTransport.js +220 -0
- package/dist/esm/webSocketTransport.js.map +1 -0
- package/dist/react-native/aiProjectClient.d.ts +1 -0
- package/dist/react-native/aiProjectClient.d.ts.map +1 -1
- package/dist/react-native/aiProjectClient.js +16 -1
- package/dist/react-native/aiProjectClient.js.map +1 -1
- package/dist/react-native/api/agents/index.d.ts +2 -2
- package/dist/react-native/api/agents/index.d.ts.map +1 -1
- package/dist/react-native/api/agents/index.js +1 -1
- package/dist/react-native/api/agents/index.js.map +1 -1
- package/dist/react-native/api/agents/operations.d.ts +23 -2
- package/dist/react-native/api/agents/operations.d.ts.map +1 -1
- package/dist/react-native/api/agents/operations.js +169 -3
- package/dist/react-native/api/agents/operations.js.map +1 -1
- package/dist/react-native/api/agents/options.d.ts +243 -2
- package/dist/react-native/api/agents/options.d.ts.map +1 -1
- package/dist/react-native/api/agents/options.js.map +1 -1
- package/dist/react-native/api/aiProjectContext.d.ts +3 -0
- package/dist/react-native/api/aiProjectContext.d.ts.map +1 -1
- package/dist/react-native/api/aiProjectContext.js.map +1 -1
- package/dist/react-native/api/beta/agentInsightMonitors/index.d.ts +3 -0
- package/dist/react-native/api/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/react-native/api/beta/agentInsightMonitors/index.js +4 -0
- package/dist/react-native/api/beta/agentInsightMonitors/index.js.map +1 -0
- package/dist/react-native/api/beta/agentInsightMonitors/operations.d.ts +59 -0
- package/dist/react-native/api/beta/agentInsightMonitors/operations.d.ts.map +1 -0
- package/dist/react-native/api/beta/agentInsightMonitors/operations.js +519 -0
- package/dist/react-native/api/beta/agentInsightMonitors/operations.js.map +1 -0
- package/dist/react-native/api/beta/agentInsightMonitors/options.d.ts +86 -0
- package/dist/react-native/api/beta/agentInsightMonitors/options.d.ts.map +1 -0
- package/dist/react-native/api/beta/agentInsightMonitors/options.js +4 -0
- package/dist/react-native/api/beta/agentInsightMonitors/options.js.map +1 -0
- package/dist/react-native/api/beta/agents/index.d.ts +2 -2
- package/dist/react-native/api/beta/agents/index.d.ts.map +1 -1
- package/dist/react-native/api/beta/agents/index.js +1 -1
- package/dist/react-native/api/beta/agents/index.js.map +1 -1
- package/dist/react-native/api/beta/agents/operations.d.ts +9 -2
- package/dist/react-native/api/beta/agents/operations.d.ts.map +1 -1
- package/dist/react-native/api/beta/agents/operations.js +38 -1
- package/dist/react-native/api/beta/agents/operations.js.map +1 -1
- package/dist/react-native/api/beta/agents/options.d.ts +3 -0
- package/dist/react-native/api/beta/agents/options.d.ts.map +1 -1
- package/dist/react-native/api/beta/agents/options.js.map +1 -1
- package/dist/react-native/api/beta/datasets/operations.d.ts +1 -1
- package/dist/react-native/api/beta/datasets/operations.d.ts.map +1 -1
- package/dist/react-native/api/beta/datasets/operations.js.map +1 -1
- package/dist/react-native/api/beta/models/options.d.ts +1 -1
- package/dist/react-native/api/beta/models/options.d.ts.map +1 -1
- package/dist/react-native/api/beta/models/options.js.map +1 -1
- package/dist/react-native/api/beta/routines/operations.d.ts.map +1 -1
- package/dist/react-native/api/beta/routines/operations.js +4 -1
- package/dist/react-native/api/beta/routines/operations.js.map +1 -1
- package/dist/react-native/api/beta/routines/options.d.ts +3 -1
- package/dist/react-native/api/beta/routines/options.d.ts.map +1 -1
- package/dist/react-native/api/beta/routines/options.js.map +1 -1
- package/dist/react-native/api/beta/voiceAgents/conversations/index.d.ts +3 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/index.js +4 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/index.js.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/operations.d.ts +140 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/operations.d.ts.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/operations.js +635 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/operations.js.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/options.d.ts +133 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/options.d.ts.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/options.js +4 -0
- package/dist/react-native/api/beta/voiceAgents/conversations/options.js.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/index.d.ts +3 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/index.js +4 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/index.js.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/operations.d.ts +62 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/operations.d.ts.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/operations.js +559 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/operations.js.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/options.d.ts +133 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/options.d.ts.map +1 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/options.js +4 -0
- package/dist/react-native/api/beta/voiceAgents/telephony/options.js.map +1 -0
- package/dist/react-native/api/datasets/operations.d.ts.map +1 -1
- package/dist/react-native/api/datasets/operations.js +1 -3
- package/dist/react-native/api/datasets/operations.js.map +1 -1
- package/dist/react-native/api/toolboxes/index.d.ts +2 -2
- package/dist/react-native/api/toolboxes/index.d.ts.map +1 -1
- package/dist/react-native/api/toolboxes/index.js +1 -1
- package/dist/react-native/api/toolboxes/index.js.map +1 -1
- package/dist/react-native/api/toolboxes/operations.d.ts +6 -2
- package/dist/react-native/api/toolboxes/operations.d.ts.map +1 -1
- package/dist/react-native/api/toolboxes/operations.js +33 -0
- package/dist/react-native/api/toolboxes/operations.js.map +1 -1
- package/dist/react-native/api/toolboxes/options.d.ts +3 -0
- package/dist/react-native/api/toolboxes/options.d.ts.map +1 -1
- package/dist/react-native/api/toolboxes/options.js.map +1 -1
- package/dist/react-native/classic/agents/index.d.ts +17 -2
- package/dist/react-native/classic/agents/index.d.ts.map +1 -1
- package/dist/react-native/classic/agents/index.js +4 -1
- package/dist/react-native/classic/agents/index.js.map +1 -1
- package/dist/react-native/classic/beta/agentInsightMonitors/index.d.ts +36 -0
- package/dist/react-native/classic/beta/agentInsightMonitors/index.d.ts.map +1 -0
- package/dist/react-native/classic/beta/agentInsightMonitors/index.js +26 -0
- package/dist/react-native/classic/beta/agentInsightMonitors/index.js.map +1 -0
- package/dist/react-native/classic/beta/agents/index.d.ts +8 -3
- package/dist/react-native/classic/beta/agents/index.d.ts.map +1 -1
- package/dist/react-native/classic/beta/agents/index.js +3 -4
- package/dist/react-native/classic/beta/agents/index.js.map +1 -1
- package/dist/react-native/classic/beta/index.d.ts +9 -1
- package/dist/react-native/classic/beta/index.d.ts.map +1 -1
- package/dist/react-native/classic/beta/index.js +7 -1
- package/dist/react-native/classic/beta/index.js.map +1 -1
- package/dist/react-native/classic/beta/routines/index.d.ts +1 -1
- package/dist/react-native/classic/beta/routines/index.d.ts.map +1 -1
- package/dist/react-native/classic/beta/routines/index.js.map +1 -1
- package/dist/react-native/classic/beta/voiceAgents/conversations/index.d.ts +115 -0
- package/dist/react-native/classic/beta/voiceAgents/conversations/index.d.ts.map +1 -0
- package/dist/react-native/classic/beta/voiceAgents/conversations/index.js +25 -0
- package/dist/react-native/classic/beta/voiceAgents/conversations/index.js.map +1 -0
- package/dist/react-native/classic/beta/voiceAgents/index.d.ts +16 -0
- package/dist/react-native/classic/beta/voiceAgents/index.d.ts.map +1 -0
- package/dist/react-native/classic/beta/voiceAgents/index.js +16 -0
- package/dist/react-native/classic/beta/voiceAgents/index.js.map +1 -0
- package/dist/react-native/classic/beta/voiceAgents/telephony/index.d.ts +37 -0
- package/dist/react-native/classic/beta/voiceAgents/telephony/index.d.ts.map +1 -0
- package/dist/react-native/classic/beta/voiceAgents/telephony/index.js +25 -0
- package/dist/react-native/classic/beta/voiceAgents/telephony/index.js.map +1 -0
- package/dist/react-native/classic/index.d.ts +3 -0
- package/dist/react-native/classic/index.d.ts.map +1 -1
- package/dist/react-native/classic/index.js.map +1 -1
- package/dist/react-native/classic/toolboxes/index.d.ts +4 -2
- package/dist/react-native/classic/toolboxes/index.d.ts.map +1 -1
- package/dist/react-native/classic/toolboxes/index.js +2 -1
- package/dist/react-native/classic/toolboxes/index.js.map +1 -1
- package/dist/react-native/constants.d.ts +1 -1
- package/dist/react-native/constants.js +1 -1
- package/dist/react-native/constants.js.map +1 -1
- package/dist/react-native/deprecate.interface.d.ts +16 -4
- package/dist/react-native/deprecate.interface.d.ts.map +1 -1
- package/dist/react-native/deprecate.interface.js.map +1 -1
- package/dist/react-native/index.d.ts +20 -6
- package/dist/react-native/index.d.ts.map +1 -1
- package/dist/react-native/index.js +2 -0
- package/dist/react-native/index.js.map +1 -1
- package/dist/react-native/models/index.d.ts +3 -1
- package/dist/react-native/models/index.d.ts.map +1 -1
- package/dist/react-native/models/index.js.map +1 -1
- package/dist/react-native/models/models.d.ts +4840 -33
- package/dist/react-native/models/models.d.ts.map +1 -1
- package/dist/react-native/models/models.js +5520 -22
- package/dist/react-native/models/models.js.map +1 -1
- package/dist/react-native/package.json +6 -1
- package/dist/react-native/realtime/asyncQueue.d.ts +29 -0
- package/dist/react-native/realtime/asyncQueue.d.ts.map +1 -0
- package/dist/react-native/realtime/asyncQueue.js +105 -0
- package/dist/react-native/realtime/asyncQueue.js.map +1 -0
- package/dist/react-native/realtime/errors.d.ts +34 -0
- package/dist/react-native/realtime/errors.d.ts.map +1 -0
- package/dist/react-native/realtime/errors.js +40 -0
- package/dist/react-native/realtime/errors.js.map +1 -0
- package/dist/react-native/realtime/events.d.ts +24 -0
- package/dist/react-native/realtime/events.d.ts.map +1 -0
- package/dist/react-native/realtime/events.js +4 -0
- package/dist/react-native/realtime/events.js.map +1 -0
- package/dist/react-native/realtime/protocol.d.ts +7 -0
- package/dist/react-native/realtime/protocol.d.ts.map +1 -0
- package/dist/react-native/realtime/protocol.js +262 -0
- package/dist/react-native/realtime/protocol.js.map +1 -0
- package/dist/react-native/realtime/voiceAgentRealtimeClient.d.ts +145 -0
- package/dist/react-native/realtime/voiceAgentRealtimeClient.d.ts.map +1 -0
- package/dist/react-native/realtime/voiceAgentRealtimeClient.js +376 -0
- package/dist/react-native/realtime/voiceAgentRealtimeClient.js.map +1 -0
- package/dist/react-native/realtime/webSocketTransportLike.d.ts +44 -0
- package/dist/react-native/realtime/webSocketTransportLike.d.ts.map +1 -0
- package/dist/react-native/realtime/webSocketTransportLike.js +4 -0
- package/dist/react-native/realtime/webSocketTransportLike.js.map +1 -0
- package/dist/react-native/static-helpers/pagingHelpers.d.ts.map +1 -1
- package/dist/react-native/static-helpers/pagingHelpers.js +3 -0
- package/dist/react-native/static-helpers/pagingHelpers.js.map +1 -1
- package/dist/react-native/static-helpers/pollingHelpers.d.ts +20 -0
- package/dist/react-native/static-helpers/pollingHelpers.d.ts.map +1 -1
- package/dist/react-native/static-helpers/pollingHelpers.js +26 -12
- package/dist/react-native/static-helpers/pollingHelpers.js.map +1 -1
- package/dist/react-native/static-helpers/serialization/get-binary-stream-response-browser.d.mts.map +1 -1
- package/dist/react-native/static-helpers/serialization/get-binary-stream-response-browser.mjs +12 -0
- package/dist/react-native/static-helpers/serialization/get-binary-stream-response-browser.mjs.map +1 -1
- package/dist/react-native/static-helpers/serialization/parse-json-object.d.ts +2 -0
- package/dist/react-native/static-helpers/serialization/parse-json-object.d.ts.map +1 -0
- package/dist/react-native/static-helpers/serialization/parse-json-object.js +14 -0
- package/dist/react-native/static-helpers/serialization/parse-json-object.js.map +1 -0
- package/dist/react-native/tracing/configuration.js +1 -1
- package/dist/react-native/tracing/configuration.js.map +1 -1
- package/dist/react-native/webSocketTransport-browser.d.mts +31 -0
- package/dist/react-native/webSocketTransport-browser.d.mts.map +1 -0
- package/dist/react-native/webSocketTransport-browser.mjs +218 -0
- package/dist/react-native/webSocketTransport-browser.mjs.map +1 -0
- package/dist/react-native/webSocketTransport.d.ts +2 -0
- package/dist/react-native/webSocketTransport.d.ts.map +1 -0
- package/dist/react-native/webSocketTransport.js +6 -0
- package/dist/react-native/webSocketTransport.js.map +1 -0
- package/package.json +12 -9
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/models.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NodeReadableStream } from \"#platform/static-helpers/platform-types\";\nimport type { FileContents } from \"../static-helpers/multipartHelpers.js\";\nimport { createFilePartDescriptor } from \"../static-helpers/multipartHelpers.js\";\nimport { serializeRecord } from \"../static-helpers/serialization/serialize-record.js\";\n\n/**\n * This file contains only generated model types and their (de)serializers.\n * Disable the following rules for internal models with '_' prefix and deserializers which require 'any' for raw JSON input.\n */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable tsdoc/syntax */\n\n/** model interface Agent */\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 operational state of the agent. Controls whether the agent endpoint accepts or rejects requests. */\n readonly state: AgentState;\n /** The source of the agent's operational state. When the agent is disabled, indicates where the disabled state originates from. Empty when not derived from a specific source. */\n readonly state_source?: AgentStateSource;\n /** The latest version of the agent. */\n versions: {\n latest: AgentVersion;\n };\n /** The endpoint configuration for the agent */\n agent_endpoint?: AgentEndpointConfig;\n /** The instance identity of the agent */\n readonly instance_identity?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint_reference?: AgentBlueprintReferenceUnion;\n agent_card?: AgentCard;\n}\n\nexport function agentDeserializer(item: any): Agent {\n return {\n object: item[\"object\"],\n id: item[\"id\"],\n name: item[\"name\"],\n state: item[\"state\"],\n state_source: item[\"state_source\"],\n versions: _agentVersionsDeserializer(item[\"versions\"]),\n agent_endpoint: !item[\"agent_endpoint\"]\n ? item[\"agent_endpoint\"]\n : agentEndpointConfigDeserializer(item[\"agent_endpoint\"]),\n instance_identity: !item[\"instance_identity\"]\n ? item[\"instance_identity\"]\n : agentIdentityDeserializer(item[\"instance_identity\"]),\n blueprint: !item[\"blueprint\"]\n ? item[\"blueprint\"]\n : agentIdentityDeserializer(item[\"blueprint\"]),\n blueprint_reference: !item[\"blueprint_reference\"]\n ? item[\"blueprint_reference\"]\n : agentBlueprintReferenceUnionDeserializer(item[\"blueprint_reference\"]),\n agent_card: !item[\"agent_card\"]\n ? item[\"agent_card\"]\n : agentCardDeserializer(item[\"agent_card\"]),\n };\n}\n\n/** The operational state of an agent. */\nexport type AgentState = \"enabled\" | \"disabled\";\n/** Indicates the source of an agent's operational state. Empty when the state is not derived from a specific source. */\nexport type AgentStateSource = \"agent_instance_identity\" | \"agent_blueprint\";\n\n/**\n * Helper interface for agent version references.\n */\nexport interface _AgentVersions {\n latest: AgentVersion;\n}\n\nexport function _agentVersionsDeserializer(item: any): _AgentVersions {\n return {\n latest: agentVersionDeserializer(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 /** Whether this agent version is a draft (candidate) rather than a release. Draft versions are recorded but excluded from default 'latest' resolution and are not auto-promoted. Defaults to false. */\n draft?: boolean;\n /** The provisioning status of the agent version. Defaults to 'active' for non-hosted agents. For hosted agents, reflects infrastructure readiness. */\n status?: AgentVersionStatus;\n /** The instance identity of the agent */\n readonly instance_identity?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint_reference?: AgentBlueprintReferenceUnion;\n /** The unique GUID identifier of the agent. */\n readonly agent_guid?: string;\n}\n\nexport function agentVersionDeserializer(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 status: item[\"status\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n definition: agentDefinitionUnionDeserializer(item[\"definition\"]),\n draft: item[\"draft\"],\n instance_identity: !item[\"instance_identity\"]\n ? item[\"instance_identity\"]\n : agentIdentityDeserializer(item[\"instance_identity\"]),\n blueprint: !item[\"blueprint\"]\n ? item[\"blueprint\"]\n : agentIdentityDeserializer(item[\"blueprint\"]),\n blueprint_reference: !item[\"blueprint_reference\"]\n ? item[\"blueprint_reference\"]\n : agentBlueprintReferenceUnionDeserializer(item[\"blueprint_reference\"]),\n agent_guid: item[\"agent_guid\"],\n };\n}\n\n/**\n * Base definition interface for agents.\n * Contains the agent kind and optional RAI configuration.\n */\nexport interface AgentDefinition {\n /** The kind of agent. */\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, prompt and external agents.\n */\nexport type AgentDefinitionUnion =\n | HostedAgentDefinition\n | PromptAgentDefinition\n | WorkflowAgentDefinition\n | ExternalAgentDefinition\n | AgentDefinition;\n\nexport function agentDefinitionUnionSerializer(item: AgentDefinitionUnion): any {\n switch (item.kind) {\n case \"hosted\":\n return hostedAgentDefinitionSerializer(item as HostedAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionSerializer(item as PromptAgentDefinition);\n\n case \"workflow\":\n return workflowAgentDefinitionSerializer(item as WorkflowAgentDefinition);\n\n case \"external\":\n return externalAgentDefinitionSerializer(item as ExternalAgentDefinition);\n\n default:\n return agentDefinitionSerializer(item);\n }\n}\n\nexport function agentDefinitionUnionDeserializer(item: any): AgentDefinitionUnion {\n switch (item[\"kind\"]) {\n case \"hosted\":\n return hostedAgentDefinitionDeserializer(item as HostedAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionDeserializer(item as PromptAgentDefinition);\n\n case \"workflow\":\n return workflowAgentDefinitionDeserializer(item as WorkflowAgentDefinition);\n\n case \"external\":\n return externalAgentDefinitionDeserializer(item as ExternalAgentDefinition);\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\" | \"workflow\" | \"external\";\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 hosted agent definition. */\nexport interface HostedAgentDefinition extends AgentDefinition {\n kind: \"hosted\";\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 /** Container-based deployment configuration. Provide this for image-based deployments. Mutually exclusive with code_configuration \u2014 the service validates that exactly one is set. */\n container_configuration?: ContainerConfiguration;\n /** The protocols that the agent supports for ingress communication. */\n protocol_versions?: ProtocolVersionRecord[];\n /** Code-based deployment configuration. Provide this for code-based deployments. Mutually exclusive with container_configuration \u2014 the service validates that exactly one is set. */\n code_configuration?: CodeConfiguration;\n /** Optional customer-supplied telemetry configuration for exporting container logs, traces, and metrics. */\n telemetry_config?: TelemetryConfig;\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 cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n container_configuration: !item[\"container_configuration\"]\n ? item[\"container_configuration\"]\n : containerConfigurationSerializer(item[\"container_configuration\"]),\n protocol_versions: !item[\"protocol_versions\"]\n ? item[\"protocol_versions\"]\n : protocolVersionRecordArraySerializer(item[\"protocol_versions\"]),\n code_configuration: !item[\"code_configuration\"]\n ? item[\"code_configuration\"]\n : codeConfigurationSerializer(item[\"code_configuration\"]),\n telemetry_config: !item[\"telemetry_config\"]\n ? item[\"telemetry_config\"]\n : telemetryConfigSerializer(item[\"telemetry_config\"]),\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 cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n container_configuration: !item[\"container_configuration\"]\n ? item[\"container_configuration\"]\n : containerConfigurationDeserializer(item[\"container_configuration\"]),\n protocol_versions: !item[\"protocol_versions\"]\n ? item[\"protocol_versions\"]\n : protocolVersionRecordArrayDeserializer(item[\"protocol_versions\"]),\n code_configuration: !item[\"code_configuration\"]\n ? item[\"code_configuration\"]\n : codeConfigurationDeserializer(item[\"code_configuration\"]),\n telemetry_config: !item[\"telemetry_config\"]\n ? item[\"telemetry_config\"]\n : telemetryConfigDeserializer(item[\"telemetry_config\"]),\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/** A tool that can be used to generate a response. */\nexport interface Tool {\n /** The tool type identifier. */\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 | BingGroundingTool\n | MicrosoftFabricPreviewTool\n | SharepointPreviewTool\n | AzureAISearchTool\n | OpenApiTool\n | BingCustomSearchPreviewTool\n | BrowserAutomationPreviewTool\n | AzureFunctionTool\n | CaptureStructuredOutputsTool\n | A2APreviewTool\n | WorkIQPreviewTool\n | FabricIQPreviewTool\n | MemorySearchPreviewTool\n | CodeInterpreterTool\n | FileSearchTool\n | WebSearchTool\n | MCPTool\n | FunctionTool\n | ComputerUsePreviewTool\n | ProgrammaticToolCallingParam\n | ImageGenTool\n | LocalShellToolParam\n | FunctionShellToolParam\n | CustomToolParam\n | WebSearchPreviewTool\n | ApplyPatchToolParam\n | ComputerTool\n | NamespaceToolParam\n | ToolSearchToolParam\n | Tool;\n\nexport function toolUnionSerializer(item: ToolUnion): any {\n switch (item.type) {\n case \"bing_grounding\":\n return bingGroundingToolSerializer(item as BingGroundingTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricPreviewToolSerializer(item as MicrosoftFabricPreviewTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointPreviewToolSerializer(item as SharepointPreviewTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolSerializer(item as AzureAISearchTool);\n\n case \"openapi\":\n return openApiToolSerializer(item as OpenApiTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchPreviewToolSerializer(item as BingCustomSearchPreviewTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolSerializer(item as BrowserAutomationPreviewTool);\n\n case \"azure_function\":\n return azureFunctionToolSerializer(item as AzureFunctionTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolSerializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2APreviewToolSerializer(item as A2APreviewTool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolSerializer(item as WorkIQPreviewTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolSerializer(item as FabricIQPreviewTool);\n\n case \"memory_search_preview\":\n return memorySearchPreviewToolSerializer(item as MemorySearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolSerializer(item as CodeInterpreterTool);\n\n case \"file_search\":\n return fileSearchToolSerializer(item as FileSearchTool);\n\n case \"web_search\":\n return webSearchToolSerializer(item as WebSearchTool);\n\n case \"mcp\":\n return mcpToolSerializer(item as MCPTool);\n\n case \"function\":\n return functionToolSerializer(item as FunctionTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolSerializer(item as ComputerUsePreviewTool);\n\n case \"programmatic_tool_calling\":\n return programmaticToolCallingParamSerializer(item as ProgrammaticToolCallingParam);\n\n case \"image_generation\":\n return imageGenToolSerializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolParamSerializer(item as LocalShellToolParam);\n\n case \"shell\":\n return functionShellToolParamSerializer(item as FunctionShellToolParam);\n\n case \"custom\":\n return customToolParamSerializer(item as CustomToolParam);\n\n case \"web_search_preview\":\n return webSearchPreviewToolSerializer(item as WebSearchPreviewTool);\n\n case \"apply_patch\":\n return applyPatchToolParamSerializer(item as ApplyPatchToolParam);\n\n case \"computer\":\n return computerToolSerializer(item as ComputerTool);\n\n case \"namespace\":\n return namespaceToolParamSerializer(item as NamespaceToolParam);\n\n case \"tool_search\":\n return toolSearchToolParamSerializer(item as ToolSearchToolParam);\n\n default:\n return toolSerializer(item);\n }\n}\n\nexport function toolUnionDeserializer(item: any): ToolUnion {\n switch (item[\"type\"]) {\n case \"bing_grounding\":\n return bingGroundingToolDeserializer(item as BingGroundingTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricPreviewToolDeserializer(item as MicrosoftFabricPreviewTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointPreviewToolDeserializer(item as SharepointPreviewTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolDeserializer(item as AzureAISearchTool);\n\n case \"openapi\":\n return openApiToolDeserializer(item as OpenApiTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchPreviewToolDeserializer(item as BingCustomSearchPreviewTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolDeserializer(item as BrowserAutomationPreviewTool);\n\n case \"azure_function\":\n return azureFunctionToolDeserializer(item as AzureFunctionTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolDeserializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2APreviewToolDeserializer(item as A2APreviewTool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolDeserializer(item as WorkIQPreviewTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolDeserializer(item as FabricIQPreviewTool);\n\n case \"memory_search_preview\":\n return memorySearchPreviewToolDeserializer(item as MemorySearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolDeserializer(item as CodeInterpreterTool);\n\n case \"file_search\":\n return fileSearchToolDeserializer(item as FileSearchTool);\n\n case \"web_search\":\n return webSearchToolDeserializer(item as WebSearchTool);\n\n case \"mcp\":\n return mcpToolDeserializer(item as MCPTool);\n\n case \"function\":\n return functionToolDeserializer(item as FunctionTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolDeserializer(item as ComputerUsePreviewTool);\n\n case \"programmatic_tool_calling\":\n return programmaticToolCallingParamDeserializer(item as ProgrammaticToolCallingParam);\n\n case \"image_generation\":\n return imageGenToolDeserializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolParamDeserializer(item as LocalShellToolParam);\n\n case \"shell\":\n return functionShellToolParamDeserializer(item as FunctionShellToolParam);\n\n case \"custom\":\n return customToolParamDeserializer(item as CustomToolParam);\n\n case \"web_search_preview\":\n return webSearchPreviewToolDeserializer(item as WebSearchPreviewTool);\n\n case \"apply_patch\":\n return applyPatchToolParamDeserializer(item as ApplyPatchToolParam);\n\n case \"computer\":\n return computerToolDeserializer(item as ComputerTool);\n\n case \"namespace\":\n return namespaceToolParamDeserializer(item as NamespaceToolParam);\n\n case \"tool_search\":\n return toolSearchToolParamDeserializer(item as ToolSearchToolParam);\n\n default:\n return toolDeserializer(item);\n }\n}\n\n/** Type of ToolType */\nexport type ToolType =\n | \"function\"\n | \"file_search\"\n | \"computer\"\n | \"computer_use_preview\"\n | \"web_search\"\n | \"mcp\"\n | \"code_interpreter\"\n | \"programmatic_tool_calling\"\n | \"image_generation\"\n | \"local_shell\"\n | \"shell\"\n | \"custom\"\n | \"namespace\"\n | \"tool_search\"\n | \"web_search_preview\"\n | \"apply_patch\"\n | \"a2a_preview\"\n | \"bing_custom_search_preview\"\n | \"browser_automation_preview\"\n | \"fabric_dataagent_preview\"\n | \"sharepoint_grounding_preview\"\n | \"memory_search_preview\"\n | \"work_iq_preview\"\n | \"fabric_iq_preview\"\n | \"toolbox_search_preview\"\n | \"azure_ai_search\"\n | \"azure_function\"\n | \"bing_grounding\"\n | \"capture_structured_outputs\"\n | \"openapi\";\n\n/** The input definition information for a bing grounding search tool as used to configure an agent. */\nexport interface BingGroundingTool extends Tool {\n /** The object type, which is always 'bing_grounding'. */\n type: \"bing_grounding\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The bing grounding search tool parameters. */\n bing_grounding: BingGroundingSearchToolParameters;\n}\n\nexport function bingGroundingToolSerializer(item: BingGroundingTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n bing_grounding: bingGroundingSearchToolParametersSerializer(item[\"bing_grounding\"]),\n };\n}\n\nexport function bingGroundingToolDeserializer(item: any): BingGroundingTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n bing_grounding: bingGroundingSearchToolParametersDeserializer(item[\"bing_grounding\"]),\n };\n}\n\nexport function toolConfigRecordSerializer(item: Record<string, ToolConfig>): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : toolConfigSerializer(item[key]);\n });\n return result;\n}\n\nexport function toolConfigRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ToolConfig> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : toolConfigDeserializer(item[key]);\n });\n return result;\n}\n\n/** Per-tool configuration that controls tool visibility and search behavior. */\nexport interface ToolConfig {\n /**\n * When true, the tool is always included in agent context and visible in `tools/list`.\n * When false (default), the tool is hidden from `tools/list` and only discoverable via `tool_search`.\n */\n pin?: boolean;\n /**\n * Additional text indexed for tool_search. Supplements the native tool description\n * to improve discoverability. Does not alter `tools/list` output.\n */\n additional_search_text?: string;\n}\n\nexport function toolConfigSerializer(item: ToolConfig): any {\n return { pin: item[\"pin\"], additional_search_text: item[\"additional_search_text\"] };\n}\n\nexport function toolConfigDeserializer(item: any): ToolConfig {\n return {\n pin: item[\"pin\"],\n additional_search_text: item[\"additional_search_text\"],\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 MicrosoftFabricPreviewTool extends Tool {\n /** The object type, which is always 'fabric_dataagent_preview'. */\n type: \"fabric_dataagent_preview\";\n /** The fabric data agent tool parameters. */\n fabric_dataagent_preview: FabricDataAgentToolParameters;\n}\n\nexport function microsoftFabricPreviewToolSerializer(item: MicrosoftFabricPreviewTool): any {\n return {\n type: item[\"type\"],\n fabric_dataagent_preview: fabricDataAgentToolParametersSerializer(\n item[\"fabric_dataagent_preview\"],\n ),\n };\n}\n\nexport function microsoftFabricPreviewToolDeserializer(item: any): MicrosoftFabricPreviewTool {\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 SharepointPreviewTool extends Tool {\n /** The object type, which is always 'sharepoint_grounding_preview'. */\n type: \"sharepoint_grounding_preview\";\n /** The sharepoint grounding tool parameters. */\n sharepoint_grounding_preview: SharepointGroundingToolParameters;\n}\n\nexport function sharepointPreviewToolSerializer(item: SharepointPreviewTool): any {\n return {\n type: item[\"type\"],\n sharepoint_grounding_preview: sharepointGroundingToolParametersSerializer(\n item[\"sharepoint_grounding_preview\"],\n ),\n };\n}\n\nexport function sharepointPreviewToolDeserializer(item: any): SharepointPreviewTool {\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 AzureAISearchTool extends Tool {\n /** The object type, which is always 'azure_ai_search'. */\n type: \"azure_ai_search\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The azure ai search index resource. */\n azure_ai_search: AzureAISearchToolResource;\n}\n\nexport function azureAISearchToolSerializer(item: AzureAISearchTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n azure_ai_search: azureAISearchToolResourceSerializer(item[\"azure_ai_search\"]),\n };\n}\n\nexport function azureAISearchToolDeserializer(item: any): AzureAISearchTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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\" | \"semantic\" | \"vector\" | \"vector_simple_hybrid\" | \"vector_semantic_hybrid\";\n\n/** The input definition information for an OpenAPI tool as used to configure an agent. */\nexport interface OpenApiTool extends Tool {\n /** The object type, which is always 'openapi'. */\n type: \"openapi\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The openapi function definition. */\n openapi: OpenApiFunctionDefinition;\n}\n\nexport function openApiToolSerializer(item: OpenApiTool): any {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n openapi: openApiFunctionDefinitionSerializer(item[\"openapi\"]),\n };\n}\n\nexport function openApiToolDeserializer(item: any): OpenApiTool {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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: Record<string, 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 };\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 AI 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: Record<string, 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 BingCustomSearchPreviewTool extends Tool {\n /** The object type, which is always 'bing_custom_search_preview'. */\n type: \"bing_custom_search_preview\";\n /** The bing custom search tool parameters. */\n bing_custom_search_preview: BingCustomSearchToolParameters;\n}\n\nexport function bingCustomSearchPreviewToolSerializer(item: BingCustomSearchPreviewTool): 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 bingCustomSearchPreviewToolDeserializer(item: any): BingCustomSearchPreviewTool {\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 BrowserAutomationPreviewTool extends Tool {\n /** The object type, which is always 'browser_automation_preview'. */\n type: \"browser_automation_preview\";\n /** The Browser Automation Tool parameters. */\n browser_automation_preview: BrowserAutomationToolParameters;\n}\n\nexport function browserAutomationPreviewToolSerializer(item: BrowserAutomationPreviewTool): any {\n return {\n type: item[\"type\"],\n browser_automation_preview: browserAutomationToolParametersSerializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\nexport function browserAutomationPreviewToolDeserializer(item: any): BrowserAutomationPreviewTool {\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 { connection: browserAutomationToolConnectionParametersSerializer(item[\"connection\"]) };\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 AzureFunctionTool extends Tool {\n /** The object type, which is always 'browser_automation'. */\n type: \"azure_function\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The Azure Function Tool definition. */\n azure_function: AzureFunctionDefinition;\n}\n\nexport function azureFunctionToolSerializer(item: AzureFunctionTool): any {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n azure_function: azureFunctionDefinitionSerializer(item[\"azure_function\"]),\n };\n}\n\nexport function azureFunctionToolDeserializer(item: any): AzureFunctionTool {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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: Record<string, 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: Record<string, unknown>;\n}\n\nexport function _azureFunctionDefinitionFunctionSerializer(\n item: _AzureFunctionDefinitionFunction,\n): any {\n return { name: item[\"name\"], description: item[\"description\"], parameters: item[\"parameters\"] };\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 { queue_service_endpoint: item[\"queue_service_endpoint\"], queue_name: item[\"queue_name\"] };\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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 name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n outputs: structuredOutputDefinitionSerializer(item[\"outputs\"]),\n };\n}\n\nexport function captureStructuredOutputsToolDeserializer(item: any): CaptureStructuredOutputsTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n outputs: structuredOutputDefinitionDeserializer(item[\"outputs\"]),\n };\n}\n\n/** A structured output that can be produced by the agent. */\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, unknown>;\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 A2APreviewTool extends Tool {\n /** The type of the tool. Always `\"a2a_preview`. */\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 * When `true`, Foundry sends its credentials when fetching the remote\n * agent's Agent Card. The service defaults to `false` if a value is not\n * specified by the caller (anonymous fetch).\n */\n send_credentials_for_agent_card?: boolean;\n}\n\nexport function a2APreviewToolSerializer(item: A2APreviewTool): 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 send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\nexport function a2APreviewToolDeserializer(item: any): A2APreviewTool {\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 send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\n/** A WorkIQ server-side tool. */\nexport interface WorkIQPreviewTool extends Tool {\n /** The object type, which is always 'work_iq_preview'. */\n type: \"work_iq_preview\";\n /** The ID of the WorkIQ project connection. */\n project_connection_id: string;\n}\n\nexport function workIQPreviewToolSerializer(item: WorkIQPreviewTool): any {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function workIQPreviewToolDeserializer(item: any): WorkIQPreviewTool {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** A FabricIQ server-side tool. */\nexport interface FabricIQPreviewTool extends Tool {\n /** The object type, which is always 'fabric_iq_preview'. */\n type: \"fabric_iq_preview\";\n /** The ID of the FabricIQ project connection. */\n project_connection_id: string;\n /** (Optional) The label of the FabricIQ MCP server to connect to. */\n server_label?: string;\n /** (Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used. */\n server_url?: string;\n /** (Optional) Whether the agent requires approval before executing actions. Default is always. */\n require_approval?: MCPToolRequireApproval | string;\n}\n\nexport function fabricIQPreviewToolSerializer(item: FabricIQPreviewTool): any {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalSerializer(item[\"require_approval\"]),\n };\n}\n\nexport function fabricIQPreviewToolDeserializer(item: any): FabricIQPreviewTool {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalDeserializer(item[\"require_approval\"]),\n };\n}\n\n/** Alias for _FabricIQPreviewToolRequireApproval */\nexport type _FabricIQPreviewToolRequireApproval = MCPToolRequireApproval | string;\n\nexport function _fabricIQPreviewToolRequireApprovalSerializer(\n item: _FabricIQPreviewToolRequireApproval,\n): any {\n return item;\n}\n\nexport function _fabricIQPreviewToolRequireApprovalDeserializer(\n item: any,\n): _FabricIQPreviewToolRequireApproval {\n return item;\n}\n\n/** model interface MCPToolRequireApproval */\nexport interface MCPToolRequireApproval {\n always?: MCPToolFilter;\n never?: MCPToolFilter;\n}\n\nexport function mcpToolRequireApprovalSerializer(item: MCPToolRequireApproval): any {\n return {\n always: !item[\"always\"] ? item[\"always\"] : mcpToolFilterSerializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : mcpToolFilterSerializer(item[\"never\"]),\n };\n}\n\nexport function mcpToolRequireApprovalDeserializer(item: any): MCPToolRequireApproval {\n return {\n always: !item[\"always\"] ? item[\"always\"] : mcpToolFilterDeserializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : mcpToolFilterDeserializer(item[\"never\"]),\n };\n}\n\n/** A filter object to specify which tools are allowed. */\nexport interface MCPToolFilter {\n /** List of allowed tool names. */\n tool_names?: string[];\n /**\n * Indicates whether or not a tool modifies data or is read-only. If an\n * MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\n * it will match this filter.\n */\n read_only?: boolean;\n}\n\nexport function mcpToolFilterSerializer(item: MCPToolFilter): 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 read_only: item[\"read_only\"],\n };\n}\n\nexport function mcpToolFilterDeserializer(item: any): MCPToolFilter {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n read_only: item[\"read_only\"],\n };\n}\n\n/** A tool for integrating memories into the agent. */\nexport interface MemorySearchPreviewTool extends Tool {\n /** The type of the tool. Always `memory_search_preview`. */\n type: \"memory_search_preview\";\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 memorySearchPreviewToolSerializer(item: MemorySearchPreviewTool): 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 memorySearchPreviewToolDeserializer(item: any): MemorySearchPreviewTool {\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\n/** A tool that runs Python code to help generate a response to a prompt. */\nexport interface CodeInterpreterTool extends Tool {\n /** The type of the code interpreter tool. Always `code_interpreter`. */\n type: \"code_interpreter\";\n allowed_callers?: CallableToolAllowedCaller[];\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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, along with an\n * optional `memory_limit` setting.\n * If not provided, the service assumes auto.\n */\n container?: string | AutoCodeInterpreterToolParam;\n}\n\nexport function codeInterpreterToolSerializer(item: CodeInterpreterTool): any {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerSerializer(item[\"container\"]),\n };\n}\n\nexport function codeInterpreterToolDeserializer(item: any): CodeInterpreterTool {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerDeserializer(item[\"container\"]),\n };\n}\n\n/** Alias for _CodeInterpreterToolContainer */\nexport type _CodeInterpreterToolContainer = string | AutoCodeInterpreterToolParam;\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/** Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on. */\nexport interface AutoCodeInterpreterToolParam {\n /** Always `auto`. */\n type: \"auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n /** The memory limit for the code interpreter container, in bytes. */\n memory_limit?: ContainerMemoryLimit;\n /** The network access policy for the code interpreter container. */\n network_policy?: ContainerNetworkPolicyParamUnion;\n}\n\nexport function autoCodeInterpreterToolParamSerializer(item: AutoCodeInterpreterToolParam): 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 memory_limit: item[\"memory_limit\"],\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionSerializer(item[\"network_policy\"]),\n };\n}\n\nexport function autoCodeInterpreterToolParamDeserializer(item: any): AutoCodeInterpreterToolParam {\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 memory_limit: item[\"memory_limit\"],\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionDeserializer(item[\"network_policy\"]),\n };\n}\n\n/** Type of ContainerMemoryLimit */\nexport type ContainerMemoryLimit = \"1g\" | \"4g\" | \"16g\" | \"64g\";\n\n/** Network access policy for the container. */\nexport interface ContainerNetworkPolicyParam {\n /** The network policy type. */\n type: ContainerNetworkPolicyParamType;\n}\n\nexport function containerNetworkPolicyParamSerializer(item: ContainerNetworkPolicyParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function containerNetworkPolicyParamDeserializer(item: any): ContainerNetworkPolicyParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ContainerNetworkPolicyParamUnion */\nexport type ContainerNetworkPolicyParamUnion =\n | ContainerNetworkPolicyDisabledParam\n | ContainerNetworkPolicyAllowlistParam\n | ContainerNetworkPolicyParam;\n\nexport function containerNetworkPolicyParamUnionSerializer(\n item: ContainerNetworkPolicyParamUnion,\n): any {\n switch (item.type) {\n case \"disabled\":\n return containerNetworkPolicyDisabledParamSerializer(\n item as ContainerNetworkPolicyDisabledParam,\n );\n\n case \"allowlist\":\n return containerNetworkPolicyAllowlistParamSerializer(\n item as ContainerNetworkPolicyAllowlistParam,\n );\n\n default:\n return containerNetworkPolicyParamSerializer(item);\n }\n}\n\nexport function containerNetworkPolicyParamUnionDeserializer(\n item: any,\n): ContainerNetworkPolicyParamUnion {\n switch (item[\"type\"]) {\n case \"disabled\":\n return containerNetworkPolicyDisabledParamDeserializer(\n item as ContainerNetworkPolicyDisabledParam,\n );\n\n case \"allowlist\":\n return containerNetworkPolicyAllowlistParamDeserializer(\n item as ContainerNetworkPolicyAllowlistParam,\n );\n\n default:\n return containerNetworkPolicyParamDeserializer(item);\n }\n}\n\n/** Type of ContainerNetworkPolicyParamType */\nexport type ContainerNetworkPolicyParamType = \"disabled\" | \"allowlist\";\n\n/** model interface ContainerNetworkPolicyDisabledParam */\nexport interface ContainerNetworkPolicyDisabledParam extends ContainerNetworkPolicyParam {\n /** Disable outbound network access. Always `disabled`. */\n type: \"disabled\";\n}\n\nexport function containerNetworkPolicyDisabledParamSerializer(\n item: ContainerNetworkPolicyDisabledParam,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function containerNetworkPolicyDisabledParamDeserializer(\n item: any,\n): ContainerNetworkPolicyDisabledParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface ContainerNetworkPolicyAllowlistParam */\nexport interface ContainerNetworkPolicyAllowlistParam extends ContainerNetworkPolicyParam {\n /** Allow outbound network access only to specified domains. Always `allowlist`. */\n type: \"allowlist\";\n /** A list of allowed domains when type is `allowlist`. */\n allowed_domains: string[];\n /** Optional domain-scoped secrets for allowlisted domains. */\n domain_secrets?: ContainerNetworkPolicyDomainSecretParam[];\n}\n\nexport function containerNetworkPolicyAllowlistParamSerializer(\n item: ContainerNetworkPolicyAllowlistParam,\n): any {\n return {\n type: item[\"type\"],\n allowed_domains: item[\"allowed_domains\"],\n domain_secrets: !item[\"domain_secrets\"]\n ? item[\"domain_secrets\"]\n : containerNetworkPolicyDomainSecretParamArraySerializer(item[\"domain_secrets\"]),\n };\n}\n\nexport function containerNetworkPolicyAllowlistParamDeserializer(\n item: any,\n): ContainerNetworkPolicyAllowlistParam {\n return {\n type: item[\"type\"],\n allowed_domains: item[\"allowed_domains\"],\n domain_secrets: !item[\"domain_secrets\"]\n ? item[\"domain_secrets\"]\n : containerNetworkPolicyDomainSecretParamArrayDeserializer(item[\"domain_secrets\"]),\n };\n}\n\nexport function containerNetworkPolicyDomainSecretParamArraySerializer(\n result: Array<ContainerNetworkPolicyDomainSecretParam>,\n): any[] {\n return result.map((item) => {\n return containerNetworkPolicyDomainSecretParamSerializer(item);\n });\n}\n\nexport function containerNetworkPolicyDomainSecretParamArrayDeserializer(\n result: Array<ContainerNetworkPolicyDomainSecretParam>,\n): any[] {\n return result.map((item) => {\n return containerNetworkPolicyDomainSecretParamDeserializer(item);\n });\n}\n\n/** model interface ContainerNetworkPolicyDomainSecretParam */\nexport interface ContainerNetworkPolicyDomainSecretParam {\n /** The domain associated with the secret. */\n domain: string;\n /** The name of the secret to inject for the domain. */\n name: string;\n /** The secret value to inject for the domain. */\n value: string;\n}\n\nexport function containerNetworkPolicyDomainSecretParamSerializer(\n item: ContainerNetworkPolicyDomainSecretParam,\n): any {\n return { domain: item[\"domain\"], name: item[\"name\"], value: item[\"value\"] };\n}\n\nexport function containerNetworkPolicyDomainSecretParamDeserializer(\n item: any,\n): ContainerNetworkPolicyDomainSecretParam {\n return {\n domain: item[\"domain\"],\n name: item[\"name\"],\n value: item[\"value\"],\n };\n}\n\n/** Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). */\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 tool. */\n description?: string;\n /** The parameters schema for the function. */\n parameters?: Record<string, unknown>;\n /** The schema for the function output. */\n output_schema?: Record<string, unknown>;\n /** Whether the function arguments must strictly match the parameters schema. */\n strict?: boolean;\n /** Whether this function is deferred and loaded via tool search. */\n defer_loading?: boolean;\n /** The callers that may invoke this tool. */\n allowed_callers?: CallableToolAllowedCaller[];\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 output_schema: item[\"output_schema\"],\n strict: item[\"strict\"],\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\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 output_schema: !item[\"output_schema\"]\n ? item[\"output_schema\"]\n : Object.fromEntries(\n Object.entries(item[\"output_schema\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n strict: item[\"strict\"],\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n };\n}\n\n/** A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). */\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 /** Filters to apply to the file search. */\n filters?: Filters;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function fileSearchToolSerializer(item: FileSearchTool): any {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"],\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 name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function fileSearchToolDeserializer(item: any): FileSearchTool {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"],\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 name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** model interface RankingOptions */\nexport interface RankingOptions {\n /** The ranker to use for the file search. */\n ranker?: RankerVersionType;\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 /** Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled. */\n hybrid_search?: HybridSearchOptions;\n}\n\nexport function rankingOptionsSerializer(item: RankingOptions): any {\n return {\n ranker: item[\"ranker\"],\n score_threshold: item[\"score_threshold\"],\n hybrid_search: !item[\"hybrid_search\"]\n ? item[\"hybrid_search\"]\n : hybridSearchOptionsSerializer(item[\"hybrid_search\"]),\n };\n}\n\nexport function rankingOptionsDeserializer(item: any): RankingOptions {\n return {\n ranker: item[\"ranker\"],\n score_threshold: item[\"score_threshold\"],\n hybrid_search: !item[\"hybrid_search\"]\n ? item[\"hybrid_search\"]\n : hybridSearchOptionsDeserializer(item[\"hybrid_search\"]),\n };\n}\n\n/** Type of RankerVersionType */\nexport type RankerVersionType = \"auto\" | \"default-2024-11-15\";\n\n/** model interface HybridSearchOptions */\nexport interface HybridSearchOptions {\n /** The weight of the embedding in the reciprocal ranking fusion. */\n embedding_weight: number;\n /** The weight of the text in the reciprocal ranking fusion. */\n text_weight: number;\n}\n\nexport function hybridSearchOptionsSerializer(item: HybridSearchOptions): any {\n return { embedding_weight: item[\"embedding_weight\"], text_weight: item[\"text_weight\"] };\n}\n\nexport function hybridSearchOptionsDeserializer(item: any): HybridSearchOptions {\n return {\n embedding_weight: item[\"embedding_weight\"],\n text_weight: item[\"text_weight\"],\n };\n}\n\n/** Alias for Filters */\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/** A filter used to compare a specified attribute key to a given value using a defined comparison operation. */\nexport interface ComparisonFilter {\n /**\n * Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n * - `eq`: equals\n * - `ne`: not equal\n * - `gt`: greater than\n * - `gte`: greater than or equal\n * - `lt`: less than\n * - `lte`: less than or equal\n * - `in`: in\n * - `nin`: not in\n */\n type: \"eq\" | \"ne\" | \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"in\" | \"nin\";\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 | _FileSearchToolFiltersValue[];\n}\n\nexport function comparisonFilterSerializer(item: ComparisonFilter): any {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _fileSearchToolFiltersValueSerializer(item[\"value\"]),\n };\n}\n\nexport function comparisonFilterDeserializer(item: any): ComparisonFilter {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _fileSearchToolFiltersValueDeserializer(item[\"value\"]),\n };\n}\n\n/** Alias for FileSearchToolFiltersValue */\nexport type FileSearchToolFiltersValue = string | number | boolean | _FileSearchToolFiltersValue[];\n\nexport function _fileSearchToolFiltersValueSerializer(item: FileSearchToolFiltersValue): any {\n return item;\n}\n\nexport function _fileSearchToolFiltersValueDeserializer(item: any): FileSearchToolFiltersValue {\n return item;\n}\n\nexport function _fileSearchToolFiltersValue1ArraySerializer(\n result: Array<_FileSearchToolFiltersValue>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersValue1Serializer(item);\n });\n}\n\nexport function _fileSearchToolFiltersValue1ArrayDeserializer(\n result: Array<_FileSearchToolFiltersValue>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersValue1Deserializer(item);\n });\n}\n\n/** Alias for _FileSearchToolFiltersValue */\nexport type _FileSearchToolFiltersValue = string | number;\n/** Alias for ComparisonFilterValueItems */\nexport type ComparisonFilterValueItems = _FileSearchToolFiltersValue;\n\nexport function _fileSearchToolFiltersValue1Serializer(item: _FileSearchToolFiltersValue): any {\n return item;\n}\n\nexport function _fileSearchToolFiltersValue1Deserializer(item: any): _FileSearchToolFiltersValue {\n return item;\n}\n\n/** Combine multiple filters using `and` or `or`. */\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: _fileSearchToolFiltersFilterArraySerializer(item[\"filters\"]),\n };\n}\n\nexport function compoundFilterDeserializer(item: any): CompoundFilter {\n return {\n type: item[\"type\"],\n filters: _fileSearchToolFiltersFilterArrayDeserializer(item[\"filters\"]),\n };\n}\n\nexport function _fileSearchToolFiltersFilterArraySerializer(\n result: Array<_FileSearchToolFiltersFilter>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersFilterSerializer(item);\n });\n}\n\nexport function _fileSearchToolFiltersFilterArrayDeserializer(\n result: Array<_FileSearchToolFiltersFilter>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersFilterDeserializer(item);\n });\n}\n\n/** Alias for _FileSearchToolFiltersFilter */\nexport type _FileSearchToolFiltersFilter = ComparisonFilter | CompoundFilter;\n\nexport function _fileSearchToolFiltersFilterSerializer(item: _FileSearchToolFiltersFilter): any {\n return item;\n}\n\nexport function _fileSearchToolFiltersFilterDeserializer(item: any): _FileSearchToolFiltersFilter {\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: ComputerEnvironment;\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/** Type of ComputerEnvironment */\nexport type ComputerEnvironment = \"windows\" | \"mac\" | \"linux\" | \"ubuntu\" | \"browser\";\n\n/**\n * Search the Internet for sources related to the prompt. Learn more about the\n * [web search tool](https://platform.openai.com/docs/guides/tools-web-search).\n */\nexport interface WebSearchTool extends Tool {\n /** The type of the web search tool. One of `web_search` or `web_search_2025_08_26`. */\n type: \"web_search\";\n /** Filters to apply to web search results. */\n filters?: WebSearchToolFilters;\n /** The approximate location of the user for search relevance. */\n user_location?: WebSearchApproximateLocation;\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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 custom_search_configuration?: WebSearchConfiguration;\n}\n\nexport function webSearchToolSerializer(item: WebSearchTool): any {\n return {\n type: item[\"type\"],\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersSerializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationSerializer(item[\"custom_search_configuration\"]),\n };\n}\n\nexport function webSearchToolDeserializer(item: any): WebSearchTool {\n return {\n type: item[\"type\"],\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersDeserializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationDeserializer(item[\"custom_search_configuration\"]),\n };\n}\n\n/** model interface WebSearchToolFilters */\nexport interface WebSearchToolFilters {\n /** The list of allowed domains for web search results. */\n allowed_domains?: string[];\n}\n\nexport function webSearchToolFiltersSerializer(item: WebSearchToolFilters): any {\n return {\n allowed_domains: item[\"allowed_domains\"],\n };\n}\n\nexport function webSearchToolFiltersDeserializer(item: any): WebSearchToolFilters {\n return {\n allowed_domains: item[\"allowed_domains\"],\n };\n}\n\n/** The approximate location of the user. */\nexport interface WebSearchApproximateLocation {\n /** The type of location approximation. Always `approximate`. */\n type?: \"approximate\";\n /** The two-letter ISO country code. */\n country?: string;\n /** The region or state for the approximate location. */\n region?: string;\n /** The city for the approximate location. */\n city?: string;\n /** The IANA timezone identifier (e.g. 'America/New_York'). */\n timezone?: string;\n}\n\nexport function webSearchApproximateLocationSerializer(item: WebSearchApproximateLocation): 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 webSearchApproximateLocationDeserializer(item: any): WebSearchApproximateLocation {\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/** A web search configuration for bing custom search */\nexport interface WebSearchConfiguration {\n /** Project connection id for grounding with bing custom search */\n project_connection_id: string;\n /** Name of the custom configuration instance given to config. */\n instance_name: string;\n}\n\nexport function webSearchConfigurationSerializer(item: WebSearchConfiguration): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n };\n}\n\nexport function webSearchConfigurationDeserializer(item: any): WebSearchConfiguration {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n };\n}\n\n/**\n * Give the model access to additional tools via remote Model Context Protocol\n * (MCP) servers. [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 /**\n * The URL for the MCP server. One of `server_url`, `connector_id`, or\n * `tunnel_id` must be provided.\n */\n server_url?: string;\n /**\n * Identifier for service connectors, like those available in ChatGPT. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more\n * about service connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n * Currently supported `connector_id` values are:\n * - Dropbox: `connector_dropbox`\n * - Gmail: `connector_gmail`\n * - Google Calendar: `connector_googlecalendar`\n * - Google Drive: `connector_googledrive`\n * - Microsoft Teams: `connector_microsoftteams`\n * - Outlook Calendar: `connector_outlookcalendar`\n * - Outlook Email: `connector_outlookemail`\n * - SharePoint: `connector_sharepoint`\n */\n connector_id?:\n | \"connector_dropbox\"\n | \"connector_gmail\"\n | \"connector_googlecalendar\"\n | \"connector_googledrive\"\n | \"connector_microsoftteams\"\n | \"connector_outlookcalendar\"\n | \"connector_outlookemail\"\n | \"connector_sharepoint\";\n /**\n * The Secure MCP Tunnel ID to use instead of a direct server URL. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided.\n */\n tunnel_id?: string;\n /**\n * An OAuth access token that can be used with a remote MCP server, either\n * with a custom MCP server URL or a service connector. Your application\n * must handle the OAuth authorization flow and provide the token here.\n */\n authorization?: string;\n /** Optional description of the MCP server, used to provide more context. */\n server_description?: string;\n /** Custom headers to include in requests to the MCP server. */\n headers?: Record<string, string>;\n /** The list of allowed tool names for the MCP server. */\n allowed_tools?: string[] | MCPToolFilter;\n /** The callers that may invoke this tool. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** The approval requirements for the MCP tool. */\n require_approval?: MCPToolRequireApproval | \"always\" | \"never\";\n /** Whether this MCP tool is deferred and discovered via tool search. */\n defer_loading?: boolean;\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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 connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\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 connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** Alias for _MCPToolAllowedTools */\nexport type _MCPToolAllowedTools = string[] | MCPToolFilter;\n\nexport function _mcpToolAllowedToolsSerializer(item: _MCPToolAllowedTools): any {\n return item;\n}\n\nexport function _mcpToolAllowedToolsDeserializer(item: any): _MCPToolAllowedTools {\n return item;\n}\n\n/** Alias for _MCPToolRequireApproval */\nexport type _MCPToolRequireApproval = MCPToolRequireApproval | \"always\" | \"never\";\n\nexport function _mcpToolRequireApprovalSerializer(item: _MCPToolRequireApproval): any {\n return item;\n}\n\nexport function _mcpToolRequireApprovalDeserializer(item: any): _MCPToolRequireApproval {\n return item;\n}\n\n/** A tool that generates images using the GPT image models. */\nexport interface ImageGenTool extends Tool {\n /** The type of the image generation tool. Always `image_generation`. */\n type: \"image_generation\";\n /** The model to use for image generation. */\n model?: \"gpt-image-1\" | \"gpt-image-1-mini\" | \"gpt-image-1.5\";\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 /** The size of the generated images. For `gpt-image-2` and `gpt-image-2-2026-04-21`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`. Width and height must both be divisible by 16 and the requested aspect ratio must be between 1:3 and 3:1. Resolutions above `2560x1440` are experimental, and the maximum supported resolution is `3840x2160`. The requested size must also satisfy the model's current pixel and edge limits. The standard sizes `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models; `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of `1024x1024`, `1792x1024`, or `1024x1792`. */\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 /** The fidelity level for input image processing. */\n input_fidelity?: InputFidelity;\n /**\n * Optional mask for inpainting. Contains `image_url`\n * (string, optional) and `file_id` (string, optional).\n */\n input_image_mask?: ImageGenToolInputImageMask;\n /** Number of partial images to generate in streaming mode, from 0 (default value) to 3. */\n partial_images?: number;\n /** Whether to generate a new image or edit an existing image. Default: `auto`. */\n action?: ImageGenAction;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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_fidelity: item[\"input_fidelity\"],\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 action: item[\"action\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\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_fidelity: item[\"input_fidelity\"],\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 action: item[\"action\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for `gpt-image-1` and `gpt-image-1.5` and later models, unsupported for `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`. */\nexport type InputFidelity = \"high\" | \"low\";\n\n/** model interface ImageGenToolInputImageMask */\nexport interface ImageGenToolInputImageMask {\n /** The URL of the mask image. */\n image_url?: string;\n /** The file identifier 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/** Type of ImageGenAction */\nexport type ImageGenAction = \"generate\" | \"edit\" | \"auto\";\n\n/** A tool that allows the model to execute shell commands in a local environment. */\nexport interface LocalShellToolParam extends Tool {\n /** The type of the local shell tool. Always `local_shell`. */\n type: \"local_shell\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function localShellToolParamSerializer(item: LocalShellToolParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function localShellToolParamDeserializer(item: any): LocalShellToolParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** A tool that allows the model to execute shell commands. */\nexport interface FunctionShellToolParam extends Tool {\n /** The type of the shell tool. Always `shell`. */\n type: \"shell\";\n /** The environment configuration for the function shell tool. */\n environment?: FunctionShellToolParamEnvironmentUnion;\n /** The callers that may invoke this tool. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function functionShellToolParamSerializer(item: FunctionShellToolParam): any {\n return {\n type: item[\"type\"],\n environment: !item[\"environment\"]\n ? item[\"environment\"]\n : functionShellToolParamEnvironmentUnionSerializer(item[\"environment\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function functionShellToolParamDeserializer(item: any): FunctionShellToolParam {\n return {\n type: item[\"type\"],\n environment: !item[\"environment\"]\n ? item[\"environment\"]\n : functionShellToolParamEnvironmentUnionDeserializer(item[\"environment\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** model interface FunctionShellToolParamEnvironment */\nexport interface FunctionShellToolParamEnvironment {\n /** The environment type. */\n type: FunctionShellToolParamEnvironmentType;\n}\n\nexport function functionShellToolParamEnvironmentSerializer(\n item: FunctionShellToolParamEnvironment,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function functionShellToolParamEnvironmentDeserializer(\n item: any,\n): FunctionShellToolParamEnvironment {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for FunctionShellToolParamEnvironmentUnion */\nexport type FunctionShellToolParamEnvironmentUnion =\n | FunctionShellToolParamEnvironmentLocalEnvironmentParam\n | FunctionShellToolParamEnvironmentContainerReferenceParam\n | ContainerAutoParam\n | FunctionShellToolParamEnvironment;\n\nexport function functionShellToolParamEnvironmentUnionSerializer(\n item: FunctionShellToolParamEnvironmentUnion,\n): any {\n switch (item.type) {\n case \"local\":\n return functionShellToolParamEnvironmentLocalEnvironmentParamSerializer(\n item as FunctionShellToolParamEnvironmentLocalEnvironmentParam,\n );\n\n case \"container_reference\":\n return functionShellToolParamEnvironmentContainerReferenceParamSerializer(\n item as FunctionShellToolParamEnvironmentContainerReferenceParam,\n );\n\n case \"container_auto\":\n return containerAutoParamSerializer(item as ContainerAutoParam);\n\n default:\n return functionShellToolParamEnvironmentSerializer(item);\n }\n}\n\nexport function functionShellToolParamEnvironmentUnionDeserializer(\n item: any,\n): FunctionShellToolParamEnvironmentUnion {\n switch (item[\"type\"]) {\n case \"local\":\n return functionShellToolParamEnvironmentLocalEnvironmentParamDeserializer(\n item as FunctionShellToolParamEnvironmentLocalEnvironmentParam,\n );\n\n case \"container_reference\":\n return functionShellToolParamEnvironmentContainerReferenceParamDeserializer(\n item as FunctionShellToolParamEnvironmentContainerReferenceParam,\n );\n\n case \"container_auto\":\n return containerAutoParamDeserializer(item as ContainerAutoParam);\n\n default:\n return functionShellToolParamEnvironmentDeserializer(item);\n }\n}\n\n/** Type of FunctionShellToolParamEnvironmentType */\nexport type FunctionShellToolParamEnvironmentType =\n \"container_auto\" | \"local\" | \"container_reference\";\n\n/** model interface FunctionShellToolParamEnvironmentLocalEnvironmentParam */\nexport interface FunctionShellToolParamEnvironmentLocalEnvironmentParam extends FunctionShellToolParamEnvironment {\n /** Use a local computer environment. */\n type: \"local\";\n /** An optional list of skills. */\n skills?: LocalSkillParam[];\n}\n\nexport function functionShellToolParamEnvironmentLocalEnvironmentParamSerializer(\n item: FunctionShellToolParamEnvironmentLocalEnvironmentParam,\n): any {\n return {\n type: item[\"type\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : localSkillParamArraySerializer(item[\"skills\"]),\n };\n}\n\nexport function functionShellToolParamEnvironmentLocalEnvironmentParamDeserializer(\n item: any,\n): FunctionShellToolParamEnvironmentLocalEnvironmentParam {\n return {\n type: item[\"type\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : localSkillParamArrayDeserializer(item[\"skills\"]),\n };\n}\n\nexport function localSkillParamArraySerializer(result: Array<LocalSkillParam>): any[] {\n return result.map((item) => {\n return localSkillParamSerializer(item);\n });\n}\n\nexport function localSkillParamArrayDeserializer(result: Array<LocalSkillParam>): any[] {\n return result.map((item) => {\n return localSkillParamDeserializer(item);\n });\n}\n\n/** model interface LocalSkillParam */\nexport interface LocalSkillParam {\n /** The name of the skill. */\n name: string;\n /** The description of the skill. */\n description: string;\n /** The path to the directory containing the skill. */\n path: string;\n}\n\nexport function localSkillParamSerializer(item: LocalSkillParam): any {\n return { name: item[\"name\"], description: item[\"description\"], path: item[\"path\"] };\n}\n\nexport function localSkillParamDeserializer(item: any): LocalSkillParam {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n path: item[\"path\"],\n };\n}\n\n/** model interface FunctionShellToolParamEnvironmentContainerReferenceParam */\nexport interface FunctionShellToolParamEnvironmentContainerReferenceParam extends FunctionShellToolParamEnvironment {\n /** References a container created with the /v1/containers endpoint */\n type: \"container_reference\";\n /** The ID of the referenced container. */\n container_id: string;\n}\n\nexport function functionShellToolParamEnvironmentContainerReferenceParamSerializer(\n item: FunctionShellToolParamEnvironmentContainerReferenceParam,\n): any {\n return { type: item[\"type\"], container_id: item[\"container_id\"] };\n}\n\nexport function functionShellToolParamEnvironmentContainerReferenceParamDeserializer(\n item: any,\n): FunctionShellToolParamEnvironmentContainerReferenceParam {\n return {\n type: item[\"type\"],\n container_id: item[\"container_id\"],\n };\n}\n\n/** model interface ContainerAutoParam */\nexport interface ContainerAutoParam extends FunctionShellToolParamEnvironment {\n /** Automatically creates a container for this request */\n type: \"container_auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n /** The memory limit for the container, in bytes. */\n memory_limit?: ContainerMemoryLimit;\n /** An optional list of skills referenced by id or inline data. */\n skills?: ContainerSkillUnion[];\n /** The network access policy for the container. */\n network_policy?: ContainerNetworkPolicyParamUnion;\n}\n\nexport function containerAutoParamSerializer(item: ContainerAutoParam): any {\n return {\n type: item[\"type\"],\n file_ids: item[\"file_ids\"],\n memory_limit: item[\"memory_limit\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : containerSkillUnionArraySerializer(item[\"skills\"]),\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionSerializer(item[\"network_policy\"]),\n };\n}\n\nexport function containerAutoParamDeserializer(item: any): ContainerAutoParam {\n return {\n type: item[\"type\"],\n file_ids: item[\"file_ids\"],\n memory_limit: item[\"memory_limit\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : containerSkillUnionArrayDeserializer(item[\"skills\"]),\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionDeserializer(item[\"network_policy\"]),\n };\n}\n\nexport function containerSkillUnionArraySerializer(result: Array<ContainerSkillUnion>): any[] {\n return result.map((item) => {\n return containerSkillUnionSerializer(item);\n });\n}\n\nexport function containerSkillUnionArrayDeserializer(result: Array<ContainerSkillUnion>): any[] {\n return result.map((item) => {\n return containerSkillUnionDeserializer(item);\n });\n}\n\n/** model interface ContainerSkill */\nexport interface ContainerSkill {\n /** The type discriminator for the container skill. */\n type: ContainerSkillType;\n}\n\nexport function containerSkillSerializer(item: ContainerSkill): any {\n return { type: item[\"type\"] };\n}\n\nexport function containerSkillDeserializer(item: any): ContainerSkill {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ContainerSkillUnion */\nexport type ContainerSkillUnion = SkillReferenceParam | InlineSkillParam | ContainerSkill;\n\nexport function containerSkillUnionSerializer(item: ContainerSkillUnion): any {\n switch (item.type) {\n case \"skill_reference\":\n return skillReferenceParamSerializer(item as SkillReferenceParam);\n\n case \"inline\":\n return inlineSkillParamSerializer(item as InlineSkillParam);\n\n default:\n return containerSkillSerializer(item);\n }\n}\n\nexport function containerSkillUnionDeserializer(item: any): ContainerSkillUnion {\n switch (item[\"type\"]) {\n case \"skill_reference\":\n return skillReferenceParamDeserializer(item as SkillReferenceParam);\n\n case \"inline\":\n return inlineSkillParamDeserializer(item as InlineSkillParam);\n\n default:\n return containerSkillDeserializer(item);\n }\n}\n\n/** Type of ContainerSkillType */\nexport type ContainerSkillType = \"skill_reference\" | \"inline\";\n\n/** model interface SkillReferenceParam */\nexport interface SkillReferenceParam extends ContainerSkill {\n /** References a skill created with the /v1/skills endpoint. */\n type: \"skill_reference\";\n /** The ID of the referenced skill. */\n skill_id: string;\n /** Optional skill version. Use a positive integer or 'latest'. Omit for default. */\n version?: string;\n}\n\nexport function skillReferenceParamSerializer(item: SkillReferenceParam): any {\n return { type: item[\"type\"], skill_id: item[\"skill_id\"], version: item[\"version\"] };\n}\n\nexport function skillReferenceParamDeserializer(item: any): SkillReferenceParam {\n return {\n type: item[\"type\"],\n skill_id: item[\"skill_id\"],\n version: item[\"version\"],\n };\n}\n\n/** model interface InlineSkillParam */\nexport interface InlineSkillParam extends ContainerSkill {\n /** Defines an inline skill for this request. */\n type: \"inline\";\n /** The name of the skill. */\n name: string;\n /** The description of the skill. */\n description: string;\n /** Inline skill payload */\n source: InlineSkillSourceParam;\n}\n\nexport function inlineSkillParamSerializer(item: InlineSkillParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n source: inlineSkillSourceParamSerializer(item[\"source\"]),\n };\n}\n\nexport function inlineSkillParamDeserializer(item: any): InlineSkillParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n source: inlineSkillSourceParamDeserializer(item[\"source\"]),\n };\n}\n\n/** Inline skill payload */\nexport interface InlineSkillSourceParam {\n /** The type of the inline skill source. Must be `base64`. */\n type: \"base64\";\n /** The media type of the inline skill payload. Must be `application/zip`. */\n media_type: \"application/zip\";\n /** Base64-encoded skill zip bundle. */\n data: string;\n}\n\nexport function inlineSkillSourceParamSerializer(item: InlineSkillSourceParam): any {\n return { type: item[\"type\"], media_type: item[\"media_type\"], data: item[\"data\"] };\n}\n\nexport function inlineSkillSourceParamDeserializer(item: any): InlineSkillSourceParam {\n return {\n type: item[\"type\"],\n media_type: item[\"media_type\"],\n data: item[\"data\"],\n };\n}\n\n/** A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) */\nexport interface CustomToolParam extends Tool {\n /** The type of the custom tool. Always `custom`. */\n type: \"custom\";\n /** The name of the custom tool, used to identify it in tool calls. */\n name: string;\n /** Optional description of the custom tool, used to provide more context. */\n description?: string;\n /** The input format for the custom tool. Default is unconstrained text. */\n format?: CustomToolParamFormatUnion;\n /** Whether this tool should be deferred and discovered via tool search. */\n defer_loading?: boolean;\n allowed_callers?: CallableToolAllowedCaller[];\n}\n\nexport function customToolParamSerializer(item: CustomToolParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n format: !item[\"format\"] ? item[\"format\"] : customToolParamFormatUnionSerializer(item[\"format\"]),\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function customToolParamDeserializer(item: any): CustomToolParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n format: !item[\"format\"]\n ? item[\"format\"]\n : customToolParamFormatUnionDeserializer(item[\"format\"]),\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n };\n}\n\n/** The input format for the custom tool. Default is unconstrained text. */\nexport interface CustomToolParamFormat {\n /** The custom tool parameter format type. */\n type: CustomToolParamFormatType;\n}\n\nexport function customToolParamFormatSerializer(item: CustomToolParamFormat): any {\n return { type: item[\"type\"] };\n}\n\nexport function customToolParamFormatDeserializer(item: any): CustomToolParamFormat {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for CustomToolParamFormatUnion */\nexport type CustomToolParamFormatUnion =\n CustomTextFormatParam | CustomGrammarFormatParam | CustomToolParamFormat;\n\nexport function customToolParamFormatUnionSerializer(item: CustomToolParamFormatUnion): any {\n switch (item.type) {\n case \"text\":\n return customTextFormatParamSerializer(item as CustomTextFormatParam);\n\n case \"grammar\":\n return customGrammarFormatParamSerializer(item as CustomGrammarFormatParam);\n\n default:\n return customToolParamFormatSerializer(item);\n }\n}\n\nexport function customToolParamFormatUnionDeserializer(item: any): CustomToolParamFormatUnion {\n switch (item[\"type\"]) {\n case \"text\":\n return customTextFormatParamDeserializer(item as CustomTextFormatParam);\n\n case \"grammar\":\n return customGrammarFormatParamDeserializer(item as CustomGrammarFormatParam);\n\n default:\n return customToolParamFormatDeserializer(item);\n }\n}\n\n/** Type of CustomToolParamFormatType */\nexport type CustomToolParamFormatType = \"text\" | \"grammar\";\n\n/** Unconstrained free-form text. */\nexport interface CustomTextFormatParam extends CustomToolParamFormat {\n /** Unconstrained text format. Always `text`. */\n type: \"text\";\n}\n\nexport function customTextFormatParamSerializer(item: CustomTextFormatParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function customTextFormatParamDeserializer(item: any): CustomTextFormatParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** A grammar defined by the user. */\nexport interface CustomGrammarFormatParam extends CustomToolParamFormat {\n /** Grammar format. Always `grammar`. */\n type: \"grammar\";\n /** The syntax of the grammar definition. One of `lark` or `regex`. */\n syntax: GrammarSyntax;\n /** The grammar definition. */\n definition: string;\n}\n\nexport function customGrammarFormatParamSerializer(item: CustomGrammarFormatParam): any {\n return { type: item[\"type\"], syntax: item[\"syntax\"], definition: item[\"definition\"] };\n}\n\nexport function customGrammarFormatParamDeserializer(item: any): CustomGrammarFormatParam {\n return {\n type: item[\"type\"],\n syntax: item[\"syntax\"],\n definition: item[\"definition\"],\n };\n}\n\n/** Type of GrammarSyntax */\nexport type GrammarSyntax = \"lark\" | \"regex\";\n\n/** This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search). */\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 approximate location of the user for search relevance. */\n user_location?: ApproximateLocation;\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?: SearchContextSize;\n search_content_types?: SearchContentType[];\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 : approximateLocationSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n search_content_types: !item[\"search_content_types\"]\n ? item[\"search_content_types\"]\n : item[\"search_content_types\"].map((p: any) => {\n return p;\n }),\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 : approximateLocationDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n search_content_types: !item[\"search_content_types\"]\n ? item[\"search_content_types\"]\n : item[\"search_content_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** model interface ApproximateLocation */\nexport interface ApproximateLocation {\n /** The type of location approximation. Always `approximate`. */\n type: \"approximate\";\n /** The two-letter ISO country code. */\n country?: string;\n /** The region or state for the approximate location. */\n region?: string;\n /** The city for the approximate location. */\n city?: string;\n /** The IANA timezone identifier (e.g. 'America/New_York'). */\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/** Type of SearchContextSize */\nexport type SearchContextSize = \"low\" | \"medium\" | \"high\";\n\n/** Type of SearchContentType */\nexport type SearchContentType = \"text\" | \"image\";\n\n/** Allows the assistant to create, delete, or update files using unified diffs. */\nexport interface ApplyPatchToolParam extends Tool {\n /** The type of the tool. Always `apply_patch`. */\n type: \"apply_patch\";\n allowed_callers?: CallableToolAllowedCaller[];\n}\n\nexport function applyPatchToolParamSerializer(item: ApplyPatchToolParam): any {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function applyPatchToolParamDeserializer(item: any): ApplyPatchToolParam {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n };\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 ComputerTool extends Tool {\n /** The type of the computer tool. Always `computer`. */\n type: \"computer\";\n}\n\nexport function computerToolSerializer(item: ComputerTool): any {\n return { type: item[\"type\"] };\n}\n\nexport function computerToolDeserializer(item: any): ComputerTool {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Groups function/custom tools under a shared namespace. */\nexport interface NamespaceToolParam extends Tool {\n /** The type of the tool. Always `namespace`. */\n type: \"namespace\";\n /** The namespace name used in tool calls (for example, `crm`). */\n name: string;\n /** A description of the namespace shown to the model. */\n description: string;\n /** The function/custom tools available inside this namespace. */\n tools: (FunctionToolParam | CustomToolParam)[];\n}\n\nexport function namespaceToolParamSerializer(item: NamespaceToolParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tools: _namespaceToolParamToolArraySerializer(item[\"tools\"]),\n };\n}\n\nexport function namespaceToolParamDeserializer(item: any): NamespaceToolParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tools: _namespaceToolParamToolArrayDeserializer(item[\"tools\"]),\n };\n}\n\nexport function _namespaceToolParamToolArraySerializer(\n result: Array<_NamespaceToolParamTool>,\n): any[] {\n return result.map((item) => {\n return _namespaceToolParamToolSerializer(item);\n });\n}\n\nexport function _namespaceToolParamToolArrayDeserializer(\n result: Array<_NamespaceToolParamTool>,\n): any[] {\n return result.map((item) => {\n return _namespaceToolParamToolDeserializer(item);\n });\n}\n\n/** Alias for _NamespaceToolParamTool */\nexport type _NamespaceToolParamTool = FunctionToolParam | CustomToolParam;\n\nexport function _namespaceToolParamToolSerializer(item: _NamespaceToolParamTool): any {\n return item;\n}\n\nexport function _namespaceToolParamToolDeserializer(item: any): _NamespaceToolParamTool {\n return item;\n}\n\n/** model interface FunctionToolParam */\nexport interface FunctionToolParam {\n name: string;\n description?: string;\n parameters?: EmptyModelParam;\n strict?: boolean;\n type: \"function\";\n output_schema?: Record<string, any>;\n /** Whether this function should be deferred and discovered via tool search. */\n defer_loading?: boolean;\n allowed_callers?: CallableToolAllowedCaller[];\n}\n\nexport function functionToolParamSerializer(item: FunctionToolParam): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamSerializer(item[\"parameters\"]),\n strict: item[\"strict\"],\n type: item[\"type\"],\n output_schema: item[\"output_schema\"],\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function functionToolParamDeserializer(item: any): FunctionToolParam {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamDeserializer(item[\"parameters\"]),\n strict: item[\"strict\"],\n type: item[\"type\"],\n output_schema: !item[\"output_schema\"]\n ? item[\"output_schema\"]\n : Object.fromEntries(\n Object.entries(item[\"output_schema\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n };\n}\n\n/** model interface EmptyModelParam */\nexport interface EmptyModelParam {}\n\nexport function emptyModelParamSerializer(_item: EmptyModelParam): any {\n return {};\n}\n\nexport function emptyModelParamDeserializer(item: any): EmptyModelParam {\n return item;\n}\n\n/** Hosted or BYOT tool search configuration for deferred tools. */\nexport interface ToolSearchToolParam extends Tool {\n /** The type of the tool. Always `tool_search`. */\n type: \"tool_search\";\n /** Whether tool search is executed by the server or by the client. */\n execution?: ToolSearchExecutionType;\n description?: string;\n parameters?: EmptyModelParam;\n}\n\nexport function toolSearchToolParamSerializer(item: ToolSearchToolParam): any {\n return {\n type: item[\"type\"],\n execution: item[\"execution\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamSerializer(item[\"parameters\"]),\n };\n}\n\nexport function toolSearchToolParamDeserializer(item: any): ToolSearchToolParam {\n return {\n type: item[\"type\"],\n execution: item[\"execution\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamDeserializer(item[\"parameters\"]),\n };\n}\n\n/** Type of ToolSearchExecutionType */\nexport type ToolSearchExecutionType = \"server\" | \"client\";\n\n/** Container-based deployment configuration for a hosted agent. */\nexport interface ContainerConfiguration {\n /** The container image for the hosted agent. */\n image: string;\n /**\n * The id (or name) of the Foundry project connection that provides the credentials used to\n * authenticate to the private container registry hosting `image`. The connection abstracts the\n * auth mechanism \u2014 for example a managed-identity-federated token exchange, or a username/token\n * secret \u2014 so registry credentials are never part of the agent definition. Omit for public images\n * or registries already reachable by the platform's default identity (for example, Azure Container Registry).\n */\n registry_connection_id?: string;\n}\n\nexport function containerConfigurationSerializer(item: ContainerConfiguration): any {\n return { image: item[\"image\"], registry_connection_id: item[\"registry_connection_id\"] };\n}\n\nexport function containerConfigurationDeserializer(item: any): ContainerConfiguration {\n return {\n image: item[\"image\"],\n registry_connection_id: item[\"registry_connection_id\"],\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. '1.0.0'. */\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 =\n \"activity\" | \"responses\" | \"a2a\" | \"mcp\" | \"invocations\" | \"invocations_ws\";\n\n/** Code-based deployment configuration for a hosted agent. */\nexport interface CodeConfiguration {\n /** The runtime identifier for code execution ('python_3_14'). */\n runtime: string;\n /** The entry point command and arguments for the code execution. */\n entry_point: string[];\n /**\n * How package dependencies are resolved at deployment time. Defaults to `bundled`,\n * where the caller bundles all dependencies into the uploaded zip and the service\n * performs no remote build. `remote_build` instructs the service to build\n * dependencies remotely from the manifest included in the uploaded zip.\n */\n dependency_resolution: CodeDependencyResolution;\n /** The SHA-256 hex digest of the uploaded code zip. Set by the service from the `x-ms-code-zip-sha256` request header; read-only in responses and never accepted in request payloads. */\n readonly content_hash?: string;\n}\n\nexport function codeConfigurationSerializer(item: CodeConfiguration): any {\n return {\n runtime: item[\"runtime\"],\n entry_point: item[\"entry_point\"].map((p: any) => {\n return p;\n }),\n dependency_resolution: item[\"dependency_resolution\"],\n };\n}\n\nexport function codeConfigurationDeserializer(item: any): CodeConfiguration {\n return {\n runtime: item[\"runtime\"],\n entry_point: item[\"entry_point\"].map((p: any) => {\n return p;\n }),\n dependency_resolution: item[\"dependency_resolution\"],\n content_hash: item[\"content_hash\"],\n };\n}\n\n/** How package dependencies are resolved at deployment time for a code-based hosted agent. */\nexport type CodeDependencyResolution = \"bundled\" | \"remote_build\";\n\n/** Customer-supplied telemetry configuration for exporting container logs, traces, and metrics. */\nexport interface TelemetryConfig {\n /** Customer-supplied telemetry export endpoint configurations. */\n endpoints: TelemetryEndpointUnion[];\n}\n\nexport function telemetryConfigSerializer(item: TelemetryConfig): any {\n return { endpoints: telemetryEndpointUnionArraySerializer(item[\"endpoints\"]) };\n}\n\nexport function telemetryConfigDeserializer(item: any): TelemetryConfig {\n return {\n endpoints: telemetryEndpointUnionArrayDeserializer(item[\"endpoints\"]),\n };\n}\n\nexport function telemetryEndpointUnionArraySerializer(\n result: Array<TelemetryEndpointUnion>,\n): any[] {\n return result.map((item) => {\n return telemetryEndpointUnionSerializer(item);\n });\n}\n\nexport function telemetryEndpointUnionArrayDeserializer(\n result: Array<TelemetryEndpointUnion>,\n): any[] {\n return result.map((item) => {\n return telemetryEndpointUnionDeserializer(item);\n });\n}\n\n/** A telemetry export endpoint configuration. */\nexport interface TelemetryEndpoint {\n /** The telemetry export endpoint kind. */\n /** The discriminator possible values: OTLP */\n kind: TelemetryEndpointKind;\n /** Data types to export to this endpoint. Use an empty array to export no data. */\n data: TelemetryDataKind[];\n /** Optional authentication configuration. */\n auth?: TelemetryEndpointAuthUnion;\n}\n\nexport function telemetryEndpointSerializer(item: TelemetryEndpoint): any {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionSerializer(item[\"auth\"]),\n };\n}\n\nexport function telemetryEndpointDeserializer(item: any): TelemetryEndpoint {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionDeserializer(item[\"auth\"]),\n };\n}\n\n/** Alias for TelemetryEndpointUnion */\nexport type TelemetryEndpointUnion = OtlpTelemetryEndpoint | TelemetryEndpoint;\n\nexport function telemetryEndpointUnionSerializer(item: TelemetryEndpointUnion): any {\n switch (item.kind) {\n case \"OTLP\":\n return otlpTelemetryEndpointSerializer(item as OtlpTelemetryEndpoint);\n\n default:\n return telemetryEndpointSerializer(item);\n }\n}\n\nexport function telemetryEndpointUnionDeserializer(item: any): TelemetryEndpointUnion {\n switch (item[\"kind\"]) {\n case \"OTLP\":\n return otlpTelemetryEndpointDeserializer(item as OtlpTelemetryEndpoint);\n\n default:\n return telemetryEndpointDeserializer(item);\n }\n}\n\n/** The kind of telemetry export endpoint. */\nexport type TelemetryEndpointKind = \"OTLP\";\n\n/** The type of telemetry data to export. */\nexport type TelemetryDataKind = \"ContainerStdoutStderr\" | \"ContainerOtel\" | \"Metrics\";\n\n/** Authentication configuration for a telemetry endpoint. */\nexport interface TelemetryEndpointAuth {\n /** The authentication type. */\n /** The discriminator possible values: header */\n type: TelemetryEndpointAuthType;\n}\n\nexport function telemetryEndpointAuthSerializer(item: TelemetryEndpointAuth): any {\n return { type: item[\"type\"] };\n}\n\nexport function telemetryEndpointAuthDeserializer(item: any): TelemetryEndpointAuth {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TelemetryEndpointAuthUnion */\nexport type TelemetryEndpointAuthUnion = HeaderTelemetryEndpointAuth | TelemetryEndpointAuth;\n\nexport function telemetryEndpointAuthUnionSerializer(item: TelemetryEndpointAuthUnion): any {\n switch (item.type) {\n case \"header\":\n return headerTelemetryEndpointAuthSerializer(item as HeaderTelemetryEndpointAuth);\n\n default:\n return telemetryEndpointAuthSerializer(item);\n }\n}\n\nexport function telemetryEndpointAuthUnionDeserializer(item: any): TelemetryEndpointAuthUnion {\n switch (item[\"type\"]) {\n case \"header\":\n return headerTelemetryEndpointAuthDeserializer(item as HeaderTelemetryEndpointAuth);\n\n default:\n return telemetryEndpointAuthDeserializer(item);\n }\n}\n\n/** The type of authentication for a telemetry endpoint. */\nexport type TelemetryEndpointAuthType = \"header\";\n\n/** Header-based secret authentication for a telemetry endpoint. The resolved secret value is injected as an HTTP header. */\nexport interface HeaderTelemetryEndpointAuth extends TelemetryEndpointAuth {\n /** The authentication type, always 'header' for header-based secret authentication. */\n type: \"header\";\n /** The name of the HTTP header to inject the secret value into. */\n header_name: string;\n /** The identifier of the secret store or connection. */\n secret_id: string;\n /** The key within the secret to retrieve the authentication value. */\n secret_key: string;\n}\n\nexport function headerTelemetryEndpointAuthSerializer(item: HeaderTelemetryEndpointAuth): any {\n return {\n type: item[\"type\"],\n header_name: item[\"header_name\"],\n secret_id: item[\"secret_id\"],\n secret_key: item[\"secret_key\"],\n };\n}\n\nexport function headerTelemetryEndpointAuthDeserializer(item: any): HeaderTelemetryEndpointAuth {\n return {\n type: item[\"type\"],\n header_name: item[\"header_name\"],\n secret_id: item[\"secret_id\"],\n secret_key: item[\"secret_key\"],\n };\n}\n\n/** An OTLP (OpenTelemetry Protocol) telemetry export endpoint. */\nexport interface OtlpTelemetryEndpoint extends TelemetryEndpoint {\n /** The endpoint kind, always 'OTLP' for OpenTelemetry Protocol endpoints. */\n kind: \"OTLP\";\n /** The OTLP collector endpoint URL. */\n endpoint: string;\n /** The transport protocol for the OTLP endpoint. */\n protocol: TelemetryTransportProtocol;\n}\n\nexport function otlpTelemetryEndpointSerializer(item: OtlpTelemetryEndpoint): any {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionSerializer(item[\"auth\"]),\n endpoint: item[\"endpoint\"],\n protocol: item[\"protocol\"],\n };\n}\n\nexport function otlpTelemetryEndpointDeserializer(item: any): OtlpTelemetryEndpoint {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionDeserializer(item[\"auth\"]),\n endpoint: item[\"endpoint\"],\n protocol: item[\"protocol\"],\n };\n}\n\n/** The transport protocol for telemetry export. */\nexport type TelemetryTransportProtocol = \"Http\" | \"Grpc\";\n\n/** The prompt agent definition */\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. Defaults to `1`.\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. We generally recommend altering this or `temperature` but not both.\n * Defaults to `1`.\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 /**\n * How the model should select which tool (or tools) to use when generating a response.\n * See the `tools` parameter to see how to specify which tools the model can call.\n */\n tool_choice?: string | ToolChoiceParamUnion;\n /** Configuration options for a text response from the model. Can be plain text or structured JSON data. */\n text?: PromptAgentDefinitionTextOptions;\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 tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : _promptAgentDefinitionToolChoiceSerializer(item[\"tool_choice\"]),\n text: !item[\"text\"] ? item[\"text\"] : promptAgentDefinitionTextOptionsSerializer(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 tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : _promptAgentDefinitionToolChoiceDeserializer(item[\"tool_choice\"]),\n text: !item[\"text\"] ? item[\"text\"] : promptAgentDefinitionTextOptionsDeserializer(item[\"text\"]),\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordDeserializer(item[\"structured_inputs\"]),\n };\n}\n\n/**\n * **gpt-5 and o-series models only**\n * Configuration options for\n * [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n */\nexport interface Reasoning {\n /**\n * Controls the reasoning execution mode for the request.\n * When returned on a response, this is the effective execution mode.\n */\n mode?: ReasoningModeEnum;\n effort?: ReasoningEffort;\n summary?: \"auto\" | \"concise\" | \"detailed\";\n context?: \"auto\" | \"current_turn\" | \"all_turns\";\n generate_summary?: \"auto\" | \"concise\" | \"detailed\";\n}\n\nexport function reasoningSerializer(item: Reasoning): any {\n return {\n mode: !item[\"mode\"] ? item[\"mode\"] : reasoningModeEnumSerializer(item[\"mode\"]),\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n context: item[\"context\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\nexport function reasoningDeserializer(item: any): Reasoning {\n return {\n mode: !item[\"mode\"] ? item[\"mode\"] : reasoningModeEnumDeserializer(item[\"mode\"]),\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n context: item[\"context\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\n/**\n * Constrains effort on reasoning for\n * [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n * Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing\n * reasoning effort can result in faster responses and fewer tokens used\n * on reasoning in a response.\n * - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1.\n * - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`.\n * - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.\n * - `xhigh` is supported for all models after `gpt-5.1-codex-max`.\n */\nexport type ReasoningEffort = \"none\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n/** Alias for _PromptAgentDefinitionToolChoice */\nexport type _PromptAgentDefinitionToolChoice = string | ToolChoiceParamUnion;\n\nexport function _promptAgentDefinitionToolChoiceSerializer(\n item: _PromptAgentDefinitionToolChoice,\n): any {\n return item;\n}\n\nexport function _promptAgentDefinitionToolChoiceDeserializer(\n item: any,\n): _PromptAgentDefinitionToolChoice {\n return item;\n}\n\n/**\n * How the model should select which tool (or tools) to use when generating\n * a response. See the `tools` parameter to see how to specify which tools\n * the model can call.\n */\nexport interface ToolChoiceParam {\n type: ToolChoiceParamType;\n}\n\nexport function toolChoiceParamSerializer(item: ToolChoiceParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceParamDeserializer(item: any): ToolChoiceParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolChoiceParamUnion */\nexport type ToolChoiceParamUnion =\n | ToolChoiceAllowed\n | ToolChoiceFunction\n | ToolChoiceMCP\n | ToolChoiceCustom\n | SpecificProgrammaticToolCallingParam\n | SpecificApplyPatchParam\n | SpecificFunctionShellParam\n | ToolChoiceFileSearch\n | ToolChoiceWebSearchPreview\n | ToolChoiceComputerUsePreview\n | ToolChoiceWebSearchPreview20250311\n | ToolChoiceImageGeneration\n | ToolChoiceCodeInterpreter\n | ToolChoiceComputer\n | ToolChoiceComputerUse\n | ToolChoiceParam;\n\nexport function toolChoiceParamUnionSerializer(item: ToolChoiceParamUnion): any {\n switch (item.type) {\n case \"allowed_tools\":\n return toolChoiceAllowedSerializer(item as ToolChoiceAllowed);\n\n case \"function\":\n return toolChoiceFunctionSerializer(item as ToolChoiceFunction);\n\n case \"mcp\":\n return toolChoiceMCPSerializer(item as ToolChoiceMCP);\n\n case \"custom\":\n return toolChoiceCustomSerializer(item as ToolChoiceCustom);\n\n case \"programmatic_tool_calling\":\n return specificProgrammaticToolCallingParamSerializer(\n item as SpecificProgrammaticToolCallingParam,\n );\n\n case \"apply_patch\":\n return specificApplyPatchParamSerializer(item as SpecificApplyPatchParam);\n\n case \"shell\":\n return specificFunctionShellParamSerializer(item as SpecificFunctionShellParam);\n\n case \"file_search\":\n return toolChoiceFileSearchSerializer(item as ToolChoiceFileSearch);\n\n case \"web_search_preview\":\n return toolChoiceWebSearchPreviewSerializer(item as ToolChoiceWebSearchPreview);\n\n case \"computer_use_preview\":\n return toolChoiceComputerUsePreviewSerializer(item as ToolChoiceComputerUsePreview);\n\n case \"web_search_preview_2025_03_11\":\n return toolChoiceWebSearchPreview20250311Serializer(\n item as ToolChoiceWebSearchPreview20250311,\n );\n\n case \"image_generation\":\n return toolChoiceImageGenerationSerializer(item as ToolChoiceImageGeneration);\n\n case \"code_interpreter\":\n return toolChoiceCodeInterpreterSerializer(item as ToolChoiceCodeInterpreter);\n\n case \"computer\":\n return toolChoiceComputerSerializer(item as ToolChoiceComputer);\n\n case \"computer_use\":\n return toolChoiceComputerUseSerializer(item as ToolChoiceComputerUse);\n\n default:\n return toolChoiceParamSerializer(item);\n }\n}\n\nexport function toolChoiceParamUnionDeserializer(item: any): ToolChoiceParamUnion {\n switch (item[\"type\"]) {\n case \"allowed_tools\":\n return toolChoiceAllowedDeserializer(item as ToolChoiceAllowed);\n\n case \"function\":\n return toolChoiceFunctionDeserializer(item as ToolChoiceFunction);\n\n case \"mcp\":\n return toolChoiceMCPDeserializer(item as ToolChoiceMCP);\n\n case \"custom\":\n return toolChoiceCustomDeserializer(item as ToolChoiceCustom);\n\n case \"programmatic_tool_calling\":\n return specificProgrammaticToolCallingParamDeserializer(\n item as SpecificProgrammaticToolCallingParam,\n );\n\n case \"apply_patch\":\n return specificApplyPatchParamDeserializer(item as SpecificApplyPatchParam);\n\n case \"shell\":\n return specificFunctionShellParamDeserializer(item as SpecificFunctionShellParam);\n\n case \"file_search\":\n return toolChoiceFileSearchDeserializer(item as ToolChoiceFileSearch);\n\n case \"web_search_preview\":\n return toolChoiceWebSearchPreviewDeserializer(item as ToolChoiceWebSearchPreview);\n\n case \"computer_use_preview\":\n return toolChoiceComputerUsePreviewDeserializer(item as ToolChoiceComputerUsePreview);\n\n case \"web_search_preview_2025_03_11\":\n return toolChoiceWebSearchPreview20250311Deserializer(\n item as ToolChoiceWebSearchPreview20250311,\n );\n\n case \"image_generation\":\n return toolChoiceImageGenerationDeserializer(item as ToolChoiceImageGeneration);\n\n case \"code_interpreter\":\n return toolChoiceCodeInterpreterDeserializer(item as ToolChoiceCodeInterpreter);\n\n case \"computer\":\n return toolChoiceComputerDeserializer(item as ToolChoiceComputer);\n\n case \"computer_use\":\n return toolChoiceComputerUseDeserializer(item as ToolChoiceComputerUse);\n\n default:\n return toolChoiceParamDeserializer(item);\n }\n}\n\n/** Type of ToolChoiceParamType */\nexport type ToolChoiceParamType =\n | \"allowed_tools\"\n | \"function\"\n | \"mcp\"\n | \"custom\"\n | \"programmatic_tool_calling\"\n | \"apply_patch\"\n | \"shell\"\n | \"file_search\"\n | \"web_search_preview\"\n | \"computer_use_preview\"\n | \"web_search_preview_2025_03_11\"\n | \"image_generation\"\n | \"code_interpreter\"\n | \"computer\"\n | \"computer_use\";\n\n/** Constrains the tools available to the model to a pre-defined set. */\nexport interface ToolChoiceAllowed extends ToolChoiceParam {\n /** Allowed tool configuration type. Always `allowed_tools`. */\n type: \"allowed_tools\";\n /**\n * Constrains the tools available to the model to a pre-defined set.\n * `auto` allows the model to pick from among the allowed tools and generate a\n * message.\n * `required` requires the model to call one or more of the allowed tools.\n */\n mode: \"auto\" | \"required\";\n /**\n * A list of tool definitions that the model should be allowed to call.\n * For the Responses API, the list of tool definitions might look like:\n * ```json\n * [\n * { \"type\": \"function\", \"name\": \"get_weather\" },\n * { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n * { \"type\": \"image_generation\" }\n * ]\n * ```\n */\n tools: Record<string, unknown>[];\n}\n\nexport function toolChoiceAllowedSerializer(item: ToolChoiceAllowed): any {\n return {\n type: item[\"type\"],\n mode: item[\"mode\"],\n tools: item[\"tools\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function toolChoiceAllowedDeserializer(item: any): ToolChoiceAllowed {\n return {\n type: item[\"type\"],\n mode: item[\"mode\"],\n tools: item[\"tools\"],\n };\n}\n\n/** Use this option to force the model to call a specific function. */\nexport interface ToolChoiceFunction extends ToolChoiceParam {\n /** For function calling, the type is always `function`. */\n type: \"function\";\n /** The name of the function to call. */\n name: string;\n}\n\nexport function toolChoiceFunctionSerializer(item: ToolChoiceFunction): any {\n return { type: item[\"type\"], name: item[\"name\"] };\n}\n\nexport function toolChoiceFunctionDeserializer(item: any): ToolChoiceFunction {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n };\n}\n\n/** Use this option to force the model to call a specific tool on a remote MCP server. */\nexport interface ToolChoiceMCP extends ToolChoiceParam {\n /** For MCP tools, the type is always `mcp`. */\n type: \"mcp\";\n /** The label of the MCP server to use. */\n server_label: string;\n name?: string;\n}\n\nexport function toolChoiceMCPSerializer(item: ToolChoiceMCP): any {\n return { type: item[\"type\"], server_label: item[\"server_label\"], name: item[\"name\"] };\n}\n\nexport function toolChoiceMCPDeserializer(item: any): ToolChoiceMCP {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n };\n}\n\n/** Use this option to force the model to call a specific custom tool. */\nexport interface ToolChoiceCustom extends ToolChoiceParam {\n /** For custom tool calling, the type is always `custom`. */\n type: \"custom\";\n /** The name of the custom tool to call. */\n name: string;\n}\n\nexport function toolChoiceCustomSerializer(item: ToolChoiceCustom): any {\n return { type: item[\"type\"], name: item[\"name\"] };\n}\n\nexport function toolChoiceCustomDeserializer(item: any): ToolChoiceCustom {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n };\n}\n\n/** Forces the model to call the apply_patch tool when executing a tool call. */\nexport interface SpecificApplyPatchParam extends ToolChoiceParam {\n /** The tool to call. Always `apply_patch`. */\n type: \"apply_patch\";\n}\n\nexport function specificApplyPatchParamSerializer(item: SpecificApplyPatchParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function specificApplyPatchParamDeserializer(item: any): SpecificApplyPatchParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Forces the model to call the shell tool when a tool call is required. */\nexport interface SpecificFunctionShellParam extends ToolChoiceParam {\n /** The tool to call. Always `shell`. */\n type: \"shell\";\n}\n\nexport function specificFunctionShellParamSerializer(item: SpecificFunctionShellParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function specificFunctionShellParamDeserializer(item: any): SpecificFunctionShellParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceFileSearch extends ToolChoiceParam {\n type: \"file_search\";\n}\n\nexport function toolChoiceFileSearchSerializer(item: ToolChoiceFileSearch): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceFileSearchDeserializer(item: any): ToolChoiceFileSearch {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceWebSearchPreview extends ToolChoiceParam {\n type: \"web_search_preview\";\n}\n\nexport function toolChoiceWebSearchPreviewSerializer(item: ToolChoiceWebSearchPreview): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceWebSearchPreviewDeserializer(item: any): ToolChoiceWebSearchPreview {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceComputerUsePreview extends ToolChoiceParam {\n type: \"computer_use_preview\";\n}\n\nexport function toolChoiceComputerUsePreviewSerializer(item: ToolChoiceComputerUsePreview): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceComputerUsePreviewDeserializer(item: any): ToolChoiceComputerUsePreview {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceWebSearchPreview20250311 extends ToolChoiceParam {\n type: \"web_search_preview_2025_03_11\";\n}\n\nexport function toolChoiceWebSearchPreview20250311Serializer(\n item: ToolChoiceWebSearchPreview20250311,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceWebSearchPreview20250311Deserializer(\n item: any,\n): ToolChoiceWebSearchPreview20250311 {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceImageGeneration extends ToolChoiceParam {\n type: \"image_generation\";\n}\n\nexport function toolChoiceImageGenerationSerializer(item: ToolChoiceImageGeneration): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceImageGenerationDeserializer(item: any): ToolChoiceImageGeneration {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceCodeInterpreter extends ToolChoiceParam {\n type: \"code_interpreter\";\n}\n\nexport function toolChoiceCodeInterpreterSerializer(item: ToolChoiceCodeInterpreter): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceCodeInterpreterDeserializer(item: any): ToolChoiceCodeInterpreter {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceComputer extends ToolChoiceParam {\n type: \"computer\";\n}\n\nexport function toolChoiceComputerSerializer(item: ToolChoiceComputer): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceComputerDeserializer(item: any): ToolChoiceComputer {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceComputerUse extends ToolChoiceParam {\n type: \"computer_use\";\n}\n\nexport function toolChoiceComputerUseSerializer(item: ToolChoiceComputerUse): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceComputerUseDeserializer(item: any): ToolChoiceComputerUse {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Configuration options for a text response from the model. Can be plain text or structured JSON data. */\nexport interface PromptAgentDefinitionTextOptions {\n format?: TextResponseFormatUnion;\n}\n\nexport function promptAgentDefinitionTextOptionsSerializer(\n item: PromptAgentDefinitionTextOptions,\n): any {\n return {\n format: !item[\"format\"] ? item[\"format\"] : textResponseFormatUnionSerializer(item[\"format\"]),\n };\n}\n\nexport function promptAgentDefinitionTextOptionsDeserializer(\n item: any,\n): PromptAgentDefinitionTextOptions {\n return {\n format: !item[\"format\"] ? item[\"format\"] : textResponseFormatUnionDeserializer(item[\"format\"]),\n };\n}\n\n/**\n * An object specifying the format that the model must output.\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](/docs/guides/structured-outputs).\n * The default format is `{ \"type\": \"text\" }` with no additional options.\n * *Not recommended for gpt-4o and newer models:**\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 interface TextResponseFormat {\n type: TextResponseFormatConfigurationType;\n}\n\nexport function textResponseFormatSerializer(item: TextResponseFormat): any {\n return { type: item[\"type\"] };\n}\n\nexport function textResponseFormatDeserializer(item: any): TextResponseFormat {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TextResponseFormatUnion */\nexport type TextResponseFormatUnion =\n | TextResponseFormatJsonSchema\n | TextResponseFormatText\n | TextResponseFormatJsonObject\n | TextResponseFormat;\n\nexport function textResponseFormatUnionSerializer(item: TextResponseFormatUnion): any {\n switch (item.type) {\n case \"json_schema\":\n return textResponseFormatJsonSchemaSerializer(item as TextResponseFormatJsonSchema);\n\n case \"text\":\n return textResponseFormatTextSerializer(item as TextResponseFormatText);\n\n case \"json_object\":\n return textResponseFormatJsonObjectSerializer(item as TextResponseFormatJsonObject);\n\n default:\n return textResponseFormatSerializer(item);\n }\n}\n\nexport function textResponseFormatUnionDeserializer(item: any): TextResponseFormatUnion {\n switch (item[\"type\"]) {\n case \"json_schema\":\n return textResponseFormatJsonSchemaDeserializer(item as TextResponseFormatJsonSchema);\n\n case \"text\":\n return textResponseFormatTextDeserializer(item as TextResponseFormatText);\n\n case \"json_object\":\n return textResponseFormatJsonObjectDeserializer(item as TextResponseFormatJsonObject);\n\n default:\n return textResponseFormatDeserializer(item);\n }\n}\n\n/** Type of TextResponseFormatConfigurationType */\nexport type TextResponseFormatConfigurationType = \"text\" | \"json_schema\" | \"json_object\";\n\n/**\n * JSON Schema response format. Used to generate structured JSON responses.\n * Learn more about [Structured Outputs](/docs/guides/structured-outputs).\n */\nexport interface TextResponseFormatJsonSchema extends TextResponseFormat {\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: Record<string, unknown>;\n strict?: boolean;\n}\n\nexport function textResponseFormatJsonSchemaSerializer(item: TextResponseFormatJsonSchema): any {\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 textResponseFormatJsonSchemaDeserializer(item: any): TextResponseFormatJsonSchema {\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\n/** Default response format. Used to generate text responses. */\nexport interface TextResponseFormatText extends TextResponseFormat {\n /** The type of response format being defined. Always `text`. */\n type: \"text\";\n}\n\nexport function textResponseFormatTextSerializer(item: TextResponseFormatText): any {\n return { type: item[\"type\"] };\n}\n\nexport function textResponseFormatTextDeserializer(item: any): TextResponseFormatText {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * JSON object response format. An older method of generating JSON responses.\n * Using `json_schema` is recommended for models that support it. Note that the\n * model will not generate JSON without a system or user message instructing it\n * to do so.\n */\nexport interface TextResponseFormatJsonObject extends TextResponseFormat {\n /** The type of response format being defined. Always `json_object`. */\n type: \"json_object\";\n}\n\nexport function textResponseFormatJsonObjectSerializer(item: TextResponseFormatJsonObject): any {\n return { type: item[\"type\"] };\n}\n\nexport function textResponseFormatJsonObjectDeserializer(item: any): TextResponseFormatJsonObject {\n return {\n type: item[\"type\"],\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 /** The JSON schema for the structured input (optional). */\n schema?: Record<string, unknown>;\n /** Whether the input property is required when the agent is invoked. Defaults to `false`. */\n required?: boolean;\n}\n\nexport function structuredInputDefinitionSerializer(item: StructuredInputDefinition): any {\n return {\n description: item[\"description\"],\n default_value: item[\"default_value\"],\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 schema: item[\"schema\"],\n required: item[\"required\"],\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/**\n * The external agent definition. Represents a third-party agent hosted outside Foundry (for example, on GCP or AWS).\n * Registration is metadata-only: Foundry records the agent definition to light up observability experiences (traces, evaluations)\n * over customer-emitted OpenTelemetry data.\n */\nexport interface ExternalAgentDefinition extends AgentDefinition {\n kind: \"external\";\n /**\n * The OpenTelemetry agent identifier used to attribute customer-emitted spans to this Foundry agent.\n * Spans must include the attribute `gen_ai.agent.id = <otel_agent_id>` to appear under this registration.\n * Defaults to the top-level agent name when omitted. Provide an explicit value only for migration scenarios\n * where the running external agent already emits a stable id that differs from the Foundry agent name.\n * The resolved value is always echoed on read.\n */\n otel_agent_id?: string;\n}\n\nexport function externalAgentDefinitionSerializer(item: ExternalAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n otel_agent_id: item[\"otel_agent_id\"],\n };\n}\n\nexport function externalAgentDefinitionDeserializer(item: any): ExternalAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n otel_agent_id: item[\"otel_agent_id\"],\n };\n}\n\n/** The provisioning status of an agent version. */\nexport type AgentVersionStatus = \"creating\" | \"active\" | \"failed\" | \"deleting\" | \"deleted\";\n\n/** model interface AgentIdentity */\nexport interface AgentIdentity {\n /** The principal ID of the agent instance */\n principal_id: string;\n /** The client ID of the agent instance. Also referred to as the instance ID */\n client_id: string;\n /** The status of the agent identity. Present for both the agent instance identity and the agent blueprint. */\n status?: AgentIdentityStatus;\n}\n\nexport function agentIdentityDeserializer(item: any): AgentIdentity {\n return {\n principal_id: item[\"principal_id\"],\n client_id: item[\"client_id\"],\n status: item[\"status\"],\n };\n}\n\n/** The status of an agent identity, applicable to both the agent instance identity and the agent blueprint. */\nexport type AgentIdentityStatus = \"active\" | \"disabled\";\n\n/** model interface AgentBlueprintReference */\nexport interface AgentBlueprintReference {\n type: AgentBlueprintReferenceType;\n}\n\nexport function agentBlueprintReferenceSerializer(item: AgentBlueprintReference): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentBlueprintReferenceDeserializer(item: any): AgentBlueprintReference {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentBlueprintReferenceUnion */\nexport type AgentBlueprintReferenceUnion =\n ManagedAgentIdentityBlueprintReference | AgentBlueprintReference;\n\nexport function agentBlueprintReferenceUnionSerializer(item: AgentBlueprintReferenceUnion): any {\n switch (item.type) {\n case \"ManagedAgentIdentityBlueprint\":\n return managedAgentIdentityBlueprintReferenceSerializer(\n item as ManagedAgentIdentityBlueprintReference,\n );\n\n default:\n return agentBlueprintReferenceSerializer(item);\n }\n}\n\nexport function agentBlueprintReferenceUnionDeserializer(item: any): AgentBlueprintReferenceUnion {\n switch (item[\"type\"]) {\n case \"ManagedAgentIdentityBlueprint\":\n return managedAgentIdentityBlueprintReferenceDeserializer(\n item as ManagedAgentIdentityBlueprintReference,\n );\n\n default:\n return agentBlueprintReferenceDeserializer(item);\n }\n}\n\n/** Type of AgentBlueprintReferenceType */\nexport type AgentBlueprintReferenceType = \"ManagedAgentIdentityBlueprint\";\n\n/** model interface ManagedAgentIdentityBlueprintReference */\nexport interface ManagedAgentIdentityBlueprintReference extends AgentBlueprintReference {\n type: \"ManagedAgentIdentityBlueprint\";\n /** The ID of the managed blueprint */\n blueprint_id: string;\n}\n\nexport function managedAgentIdentityBlueprintReferenceSerializer(\n item: ManagedAgentIdentityBlueprintReference,\n): any {\n return { type: item[\"type\"], blueprint_id: item[\"blueprint_id\"] };\n}\n\nexport function managedAgentIdentityBlueprintReferenceDeserializer(\n item: any,\n): ManagedAgentIdentityBlueprintReference {\n return {\n type: item[\"type\"],\n blueprint_id: item[\"blueprint_id\"],\n };\n}\n\n/** model interface AgentEndpointConfig */\nexport interface AgentEndpointConfig {\n /** The version selector of the agent endpoint determines how traffic is routed to different versions of the agent. */\n version_selector?: VersionSelector;\n /** Per-protocol configuration for the agent endpoint. */\n protocol_configuration?: ProtocolConfiguration;\n /** The authorization schemes supported by the agent endpoint */\n authorization_schemes?: AgentEndpointAuthorizationSchemeUnion[];\n}\n\nexport function agentEndpointConfigSerializer(item: AgentEndpointConfig): any {\n return {\n version_selector: !item[\"version_selector\"]\n ? item[\"version_selector\"]\n : versionSelectorSerializer(item[\"version_selector\"]),\n protocol_configuration: !item[\"protocol_configuration\"]\n ? item[\"protocol_configuration\"]\n : protocolConfigurationSerializer(item[\"protocol_configuration\"]),\n authorization_schemes: !item[\"authorization_schemes\"]\n ? item[\"authorization_schemes\"]\n : agentEndpointAuthorizationSchemeUnionArraySerializer(item[\"authorization_schemes\"]),\n };\n}\n\nexport function agentEndpointConfigDeserializer(item: any): AgentEndpointConfig {\n return {\n version_selector: !item[\"version_selector\"]\n ? item[\"version_selector\"]\n : versionSelectorDeserializer(item[\"version_selector\"]),\n protocol_configuration: !item[\"protocol_configuration\"]\n ? item[\"protocol_configuration\"]\n : protocolConfigurationDeserializer(item[\"protocol_configuration\"]),\n authorization_schemes: !item[\"authorization_schemes\"]\n ? item[\"authorization_schemes\"]\n : agentEndpointAuthorizationSchemeUnionArrayDeserializer(item[\"authorization_schemes\"]),\n };\n}\n\n/** @deprecated Use AgentEndpointConfig instead. */\nexport type AgentEndpoint = AgentEndpointConfig;\n\n/** model interface VersionSelector */\nexport interface VersionSelector {\n version_selection_rules: VersionSelectionRuleUnion[];\n}\n\nexport function versionSelectorSerializer(item: VersionSelector): any {\n return {\n version_selection_rules: versionSelectionRuleUnionArraySerializer(\n item[\"version_selection_rules\"],\n ),\n };\n}\n\nexport function versionSelectorDeserializer(item: any): VersionSelector {\n return {\n version_selection_rules: versionSelectionRuleUnionArrayDeserializer(\n item[\"version_selection_rules\"],\n ),\n };\n}\n\nexport function versionSelectionRuleUnionArraySerializer(\n result: Array<VersionSelectionRuleUnion>,\n): any[] {\n return result.map((item) => {\n return versionSelectionRuleUnionSerializer(item);\n });\n}\n\nexport function versionSelectionRuleUnionArrayDeserializer(\n result: Array<VersionSelectionRuleUnion>,\n): any[] {\n return result.map((item) => {\n return versionSelectionRuleUnionDeserializer(item);\n });\n}\n\n/** model interface VersionSelectionRule */\nexport interface VersionSelectionRule {\n type: VersionSelectionRuleType;\n /** The agent version to route traffic to */\n agent_version: string;\n}\n\nexport function versionSelectionRuleSerializer(item: VersionSelectionRule): any {\n return { type: item[\"type\"], agent_version: item[\"agent_version\"] };\n}\n\nexport function versionSelectionRuleDeserializer(item: any): VersionSelectionRule {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Alias for VersionSelectionRuleUnion */\nexport type VersionSelectionRuleUnion = FixedRatioVersionSelectionRule | VersionSelectionRule;\n\nexport function versionSelectionRuleUnionSerializer(item: VersionSelectionRuleUnion): any {\n switch (item.type) {\n case \"FixedRatio\":\n return fixedRatioVersionSelectionRuleSerializer(item as FixedRatioVersionSelectionRule);\n\n default:\n return versionSelectionRuleSerializer(item);\n }\n}\n\nexport function versionSelectionRuleUnionDeserializer(item: any): VersionSelectionRuleUnion {\n switch (item[\"type\"]) {\n case \"FixedRatio\":\n return fixedRatioVersionSelectionRuleDeserializer(item as FixedRatioVersionSelectionRule);\n\n default:\n return versionSelectionRuleDeserializer(item);\n }\n}\n\n/** Type of VersionSelectionRuleType */\nexport type VersionSelectionRuleType = \"FixedRatio\";\n\n/** model interface FixedRatioVersionSelectionRule */\nexport interface FixedRatioVersionSelectionRule extends VersionSelectionRule {\n type: \"FixedRatio\";\n /** The percentage of traffic to route to the version. Must be between 0 and 100. */\n traffic_percentage: number;\n}\n\nexport function fixedRatioVersionSelectionRuleSerializer(\n item: FixedRatioVersionSelectionRule,\n): any {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n traffic_percentage: item[\"traffic_percentage\"],\n };\n}\n\nexport function fixedRatioVersionSelectionRuleDeserializer(\n item: any,\n): FixedRatioVersionSelectionRule {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n traffic_percentage: item[\"traffic_percentage\"],\n };\n}\n\n/** Per-protocol configuration for the agent endpoint. */\nexport interface ProtocolConfiguration {\n /** Configuration for the activity protocol. */\n activity?: ActivityProtocolConfiguration;\n /** Configuration for the responses protocol. */\n responses?: ResponsesProtocolConfiguration;\n /** Configuration for the A2A protocol. */\n a2a?: A2AProtocolConfiguration;\n /** Configuration for the MCP protocol. */\n mcp?: McpProtocolConfiguration;\n /** Configuration for the invocations protocol. */\n invocations?: InvocationsProtocolConfiguration;\n /** Configuration for the WebSocket-based invocations protocol. */\n invocations_ws?: InvocationsWsProtocolConfiguration;\n}\n\nexport function protocolConfigurationSerializer(item: ProtocolConfiguration): any {\n return {\n activity: !item[\"activity\"]\n ? item[\"activity\"]\n : activityProtocolConfigurationSerializer(item[\"activity\"]),\n responses: !item[\"responses\"]\n ? item[\"responses\"]\n : responsesProtocolConfigurationSerializer(item[\"responses\"]),\n a2a: !item[\"a2a\"] ? item[\"a2a\"] : a2AProtocolConfigurationSerializer(item[\"a2a\"]),\n mcp: !item[\"mcp\"] ? item[\"mcp\"] : mcpProtocolConfigurationSerializer(item[\"mcp\"]),\n invocations: !item[\"invocations\"]\n ? item[\"invocations\"]\n : invocationsProtocolConfigurationSerializer(item[\"invocations\"]),\n invocations_ws: !item[\"invocations_ws\"]\n ? item[\"invocations_ws\"]\n : invocationsWsProtocolConfigurationSerializer(item[\"invocations_ws\"]),\n };\n}\n\nexport function protocolConfigurationDeserializer(item: any): ProtocolConfiguration {\n return {\n activity: !item[\"activity\"]\n ? item[\"activity\"]\n : activityProtocolConfigurationDeserializer(item[\"activity\"]),\n responses: !item[\"responses\"]\n ? item[\"responses\"]\n : responsesProtocolConfigurationDeserializer(item[\"responses\"]),\n a2a: !item[\"a2a\"] ? item[\"a2a\"] : a2AProtocolConfigurationDeserializer(item[\"a2a\"]),\n mcp: !item[\"mcp\"] ? item[\"mcp\"] : mcpProtocolConfigurationDeserializer(item[\"mcp\"]),\n invocations: !item[\"invocations\"]\n ? item[\"invocations\"]\n : invocationsProtocolConfigurationDeserializer(item[\"invocations\"]),\n invocations_ws: !item[\"invocations_ws\"]\n ? item[\"invocations_ws\"]\n : invocationsWsProtocolConfigurationDeserializer(item[\"invocations_ws\"]),\n };\n}\n\n/** Configuration specific to the activity protocol. */\nexport interface ActivityProtocolConfiguration {\n /** Whether to enable the M365 public endpoint for the activity protocol. */\n enable_m365_public_endpoint?: boolean;\n}\n\nexport function activityProtocolConfigurationSerializer(item: ActivityProtocolConfiguration): any {\n return { enable_m365_public_endpoint: item[\"enable_m365_public_endpoint\"] };\n}\n\nexport function activityProtocolConfigurationDeserializer(\n item: any,\n): ActivityProtocolConfiguration {\n return {\n enable_m365_public_endpoint: item[\"enable_m365_public_endpoint\"],\n };\n}\n\n/** Configuration specific to the responses protocol. */\nexport interface ResponsesProtocolConfiguration {}\n\nexport function responsesProtocolConfigurationSerializer(\n _item: ResponsesProtocolConfiguration,\n): any {\n return {};\n}\n\nexport function responsesProtocolConfigurationDeserializer(\n item: any,\n): ResponsesProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the A2A protocol. */\nexport interface A2AProtocolConfiguration {}\n\nexport function a2AProtocolConfigurationSerializer(_item: A2AProtocolConfiguration): any {\n return {};\n}\n\nexport function a2AProtocolConfigurationDeserializer(item: any): A2AProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the MCP protocol. */\nexport interface McpProtocolConfiguration {}\n\nexport function mcpProtocolConfigurationSerializer(_item: McpProtocolConfiguration): any {\n return {};\n}\n\nexport function mcpProtocolConfigurationDeserializer(item: any): McpProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the invocations protocol. */\nexport interface InvocationsProtocolConfiguration {}\n\nexport function invocationsProtocolConfigurationSerializer(\n _item: InvocationsProtocolConfiguration,\n): any {\n return {};\n}\n\nexport function invocationsProtocolConfigurationDeserializer(\n item: any,\n): InvocationsProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the WebSocket-based invocations protocol. */\nexport interface InvocationsWsProtocolConfiguration {}\n\nexport function invocationsWsProtocolConfigurationSerializer(\n _item: InvocationsWsProtocolConfiguration,\n): any {\n return {};\n}\n\nexport function invocationsWsProtocolConfigurationDeserializer(\n item: any,\n): InvocationsWsProtocolConfiguration {\n return item;\n}\n\nexport function agentEndpointAuthorizationSchemeUnionArraySerializer(\n result: Array<AgentEndpointAuthorizationSchemeUnion>,\n): any[] {\n return result.map((item) => {\n return agentEndpointAuthorizationSchemeUnionSerializer(item);\n });\n}\n\nexport function agentEndpointAuthorizationSchemeUnionArrayDeserializer(\n result: Array<AgentEndpointAuthorizationSchemeUnion>,\n): any[] {\n return result.map((item) => {\n return agentEndpointAuthorizationSchemeUnionDeserializer(item);\n });\n}\n\n/** model interface AgentEndpointAuthorizationScheme */\nexport interface AgentEndpointAuthorizationScheme {\n type: AgentEndpointAuthorizationSchemeType;\n}\n\nexport function agentEndpointAuthorizationSchemeSerializer(\n item: AgentEndpointAuthorizationScheme,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentEndpointAuthorizationSchemeDeserializer(\n item: any,\n): AgentEndpointAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentEndpointAuthorizationSchemeUnion */\nexport type AgentEndpointAuthorizationSchemeUnion =\n | EntraAuthorizationScheme\n | BotServiceAuthorizationScheme\n | BotServiceRbacAuthorizationScheme\n | BotServiceTenantAuthorizationScheme\n | AgentEndpointAuthorizationScheme;\n\nexport function agentEndpointAuthorizationSchemeUnionSerializer(\n item: AgentEndpointAuthorizationSchemeUnion,\n): any {\n switch (item.type) {\n case \"Entra\":\n return entraAuthorizationSchemeSerializer(item as EntraAuthorizationScheme);\n\n case \"BotService\":\n return botServiceAuthorizationSchemeSerializer(item as BotServiceAuthorizationScheme);\n\n case \"BotServiceRbac\":\n return botServiceRbacAuthorizationSchemeSerializer(item as BotServiceRbacAuthorizationScheme);\n\n case \"BotServiceTenant\":\n return botServiceTenantAuthorizationSchemeSerializer(\n item as BotServiceTenantAuthorizationScheme,\n );\n\n default:\n return agentEndpointAuthorizationSchemeSerializer(item);\n }\n}\n\nexport function agentEndpointAuthorizationSchemeUnionDeserializer(\n item: any,\n): AgentEndpointAuthorizationSchemeUnion {\n switch (item[\"type\"]) {\n case \"Entra\":\n return entraAuthorizationSchemeDeserializer(item as EntraAuthorizationScheme);\n\n case \"BotService\":\n return botServiceAuthorizationSchemeDeserializer(item as BotServiceAuthorizationScheme);\n\n case \"BotServiceRbac\":\n return botServiceRbacAuthorizationSchemeDeserializer(\n item as BotServiceRbacAuthorizationScheme,\n );\n\n case \"BotServiceTenant\":\n return botServiceTenantAuthorizationSchemeDeserializer(\n item as BotServiceTenantAuthorizationScheme,\n );\n\n default:\n return agentEndpointAuthorizationSchemeDeserializer(item);\n }\n}\n\n/** Type of AgentEndpointAuthorizationSchemeType */\nexport type AgentEndpointAuthorizationSchemeType =\n \"Entra\" | \"BotService\" | \"BotServiceRbac\" | \"BotServiceTenant\";\n\n/** model interface EntraAuthorizationScheme */\nexport interface EntraAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n type: \"Entra\";\n}\n\nexport function entraAuthorizationSchemeSerializer(item: EntraAuthorizationScheme): any {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function entraAuthorizationSchemeDeserializer(item: any): EntraAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface BotServiceAuthorizationScheme */\nexport interface BotServiceAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n type: \"BotService\";\n}\n\nexport function botServiceAuthorizationSchemeSerializer(item: BotServiceAuthorizationScheme): any {\n return { type: item[\"type\"] };\n}\n\nexport function botServiceAuthorizationSchemeDeserializer(\n item: any,\n): BotServiceAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface BotServiceRbacAuthorizationScheme */\nexport interface BotServiceRbacAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n type: \"BotServiceRbac\";\n}\n\nexport function botServiceRbacAuthorizationSchemeSerializer(\n item: BotServiceRbacAuthorizationScheme,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function botServiceRbacAuthorizationSchemeDeserializer(\n item: any,\n): BotServiceRbacAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface BotServiceTenantAuthorizationScheme */\nexport interface BotServiceTenantAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n type: \"BotServiceTenant\";\n}\n\nexport function botServiceTenantAuthorizationSchemeSerializer(\n item: BotServiceTenantAuthorizationScheme,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function botServiceTenantAuthorizationSchemeDeserializer(\n item: any,\n): BotServiceTenantAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface AgentCard */\nexport interface AgentCard {\n /** The version of the agent card. */\n version: string;\n /** The description of the agent card. */\n description?: string;\n /** The set of skills that an agent can perform. */\n skills: AgentCardSkill[];\n}\n\nexport function agentCardSerializer(item: AgentCard): any {\n return {\n version: item[\"version\"],\n description: item[\"description\"],\n skills: agentCardSkillArraySerializer(item[\"skills\"]),\n };\n}\n\nexport function agentCardDeserializer(item: any): AgentCard {\n return {\n version: item[\"version\"],\n description: item[\"description\"],\n skills: agentCardSkillArrayDeserializer(item[\"skills\"]),\n };\n}\n\nexport function agentCardSkillArraySerializer(result: Array<AgentCardSkill>): any[] {\n return result.map((item) => {\n return agentCardSkillSerializer(item);\n });\n}\n\nexport function agentCardSkillArrayDeserializer(result: Array<AgentCardSkill>): any[] {\n return result.map((item) => {\n return agentCardSkillDeserializer(item);\n });\n}\n\n/** model interface AgentCardSkill */\nexport interface AgentCardSkill {\n /** a unique identifier for the skill */\n id: string;\n /** The name of the skill */\n name: string;\n /** A description of the skill */\n description?: string;\n /** set of tagwords describing classes of capabilities for the skill */\n tags?: string[];\n /** A list of example scenarios that the skill can perform. */\n examples?: string[];\n}\n\nexport function agentCardSkillSerializer(item: AgentCardSkill): any {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : item[\"tags\"].map((p: any) => {\n return p;\n }),\n examples: !item[\"examples\"]\n ? item[\"examples\"]\n : item[\"examples\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function agentCardSkillDeserializer(item: any): AgentCardSkill {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : item[\"tags\"].map((p: any) => {\n return p;\n }),\n examples: !item[\"examples\"]\n ? item[\"examples\"]\n : item[\"examples\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Error response for API failures. */\nexport interface ApiErrorResponse {\n /** The error details. */\n error: ErrorModel;\n}\n\nexport function apiErrorResponseDeserializer(item: any): ApiErrorResponse {\n return {\n error: apiErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** model interface ErrorModel */\nexport interface ErrorModel {\n /** The error code. */\n code: string;\n /** The error message. */\n message: string;\n /** The parameter that caused the error. */\n param?: string;\n /** The error type. */\n type?: string;\n /** The error details. */\n details?: ErrorModel[];\n /** Additional information about the error. */\n additionalInfo?: Record<string, unknown>;\n /** Debug information for the error. */\n debugInfo?: Record<string, unknown>;\n}\n\nexport function apiErrorDeserializer(item: any): ErrorModel {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n param: item[\"param\"],\n type: item[\"type\"],\n details: !item[\"details\"] ? item[\"details\"] : apiErrorArrayDeserializer(item[\"details\"]),\n additionalInfo: item[\"additionalInfo\"],\n debugInfo: item[\"debugInfo\"],\n };\n}\n\nexport function apiErrorArrayDeserializer(result: Array<ErrorModel>): any[] {\n return result.map((item) => {\n return apiErrorDeserializer(item);\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: agentArrayDeserializer(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 agentArrayDeserializer(result: Array<Agent>): any[] {\n return result.map((item) => {\n return agentDeserializer(item);\n });\n}\n\n/** A deleted agent version Object */\nexport interface DeleteAgentVersionResponse {\n /** The object type. Always 'agent.version.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: agentVersionArrayDeserializer(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 agentVersionArrayDeserializer(result: Array<AgentVersion>): any[] {\n return result.map((item) => {\n return agentVersionDeserializer(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, humanEvaluationPreview */\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 | HumanEvaluationPreviewRuleAction | EvaluationRuleAction;\n\nexport function evaluationRuleActionUnionSerializer(item: EvaluationRuleActionUnion): any {\n switch (item.type) {\n case \"continuousEvaluation\":\n return continuousEvaluationRuleActionSerializer(item as ContinuousEvaluationRuleAction);\n\n case \"humanEvaluationPreview\":\n return humanEvaluationPreviewRuleActionSerializer(item as HumanEvaluationPreviewRuleAction);\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 \"humanEvaluationPreview\":\n return humanEvaluationPreviewRuleActionDeserializer(item as HumanEvaluationPreviewRuleAction);\n\n default:\n return evaluationRuleActionDeserializer(item);\n }\n}\n\n/** Type of the evaluation action. */\nexport type EvaluationRuleActionType = \"continuousEvaluation\" | \"humanEvaluationPreview\";\n\n/** Evaluation rule action for continuous evaluation. */\nexport interface ContinuousEvaluationRuleAction extends EvaluationRuleAction {\n /** The type discriminator, always 'continuousEvaluation'. */\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 /** Percentage (0-100] chance that a matching event triggers an evaluation. When omitted, the service-default is to evaluate every event, which is equivalent to setting a sampling rate of 100. */\n samplingRate?: 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 samplingRate: item[\"samplingRate\"],\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 samplingRate: item[\"samplingRate\"],\n };\n}\n\n/** Evaluation rule action for human evaluation. */\nexport interface HumanEvaluationPreviewRuleAction extends EvaluationRuleAction {\n /** The type discriminator, always 'humanEvaluationPreview'. */\n type: \"humanEvaluationPreview\";\n /** Human evaluation template Id. */\n templateId: string;\n}\n\nexport function humanEvaluationPreviewRuleActionSerializer(\n item: HumanEvaluationPreviewRuleAction,\n): any {\n return { type: item[\"type\"], templateId: item[\"templateId\"] };\n}\n\nexport function humanEvaluationPreviewRuleActionDeserializer(\n item: any,\n): HumanEvaluationPreviewRuleAction {\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/** 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_Preview\";\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_Preview */\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 | AgenticIdentityPreviewCredentials\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_Preview\":\n return agenticIdentityPreviewCredentialsDeserializer(\n item as AgenticIdentityPreviewCredentials,\n );\n\n default:\n return baseCredentialsDeserializer(item);\n }\n}\n\n/** The credential type used by the connection */\nexport type CredentialType =\n \"ApiKey\" | \"AAD\" | \"SAS\" | \"CustomKeys\" | \"None\" | \"AgenticIdentityToken_Preview\";\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 AgenticIdentityPreviewCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"AgenticIdentityToken_Preview\";\n}\n\nexport function agenticIdentityPreviewCredentialsDeserializer(\n item: any,\n): AgenticIdentityPreviewCredentials {\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 /** The type of pending upload. */\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 /** The type of pending upload. */\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: blobReferenceSasCredentialDeserializer(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 blobReferenceSasCredentialDeserializer(item: any): SasCredential {\n return {\n sasUri: item[\"sasUri\"],\n type: item[\"credentialType\"] ?? item[\"type\"],\n };\n}\n\n/** Type alias for BlobReferenceSasCredential - same as SasCredential */\nexport type BlobReferenceSasCredential = SasCredential;\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/** 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/** 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 { type: item[\"type\"], description: item[\"description\"], tags: item[\"tags\"] };\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\"],\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: item[\"vectorFields\"],\n metadataFields: item[\"metadataFields\"],\n };\n}\n\nexport function fieldMappingDeserializer(item: any): FieldMapping {\n return {\n contentFields: item[\"contentFields\"],\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: item[\"vectorFields\"],\n metadataFields: item[\"metadataFields\"],\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/** File contents with optional metadata for multipart uploads. */\nexport interface FileWithMetadata {\n contents: FileContents;\n contentType?: string;\n filename?: string;\n}\n\n/** Multipart request body for updating or versioning a code-based agent (POST /agents/{name} and POST /agents/{name}/versions). */\nexport interface CreateAgentVersionFromCodeContent {\n /** JSON metadata including description and hosted definition. */\n metadata: CreateAgentVersionFromCodeMetadata;\n /** The code zip file (max 250 MB). */\n code: FileContents | FileWithMetadata;\n}\n\nexport function createAgentVersionFromCodeContentSerializer(\n item: CreateAgentVersionFromCodeContent,\n): any {\n return [\n { name: \"metadata\", body: createAgentVersionFromCodeMetadataSerializer(item[\"metadata\"]) },\n createFilePartDescriptor(\"code\", item[\"code\"], \"application/octet-stream\"),\n ];\n}\n\n/**\n * JSON metadata for code-based agent operations (create, update, create version).\n * The agent name comes from the URL path parameter or the `x-ms-agent-name` header,\n * so it is not included in this model.\n * The content hash (SHA-256 of the zip) is carried in the `x-ms-code-zip-sha256` header.\n */\nexport interface CreateAgentVersionFromCodeMetadata {\n /** A human-readable description of the agent. */\n description?: string;\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 hosted agent definition including code_configuration (runtime, entry_point), cpu, memory, and protocol_versions. */\n definition: HostedAgentDefinition;\n}\n\nexport function createAgentVersionFromCodeMetadataSerializer(\n item: CreateAgentVersionFromCodeMetadata,\n): any {\n return {\n description: item[\"description\"],\n metadata: item[\"metadata\"],\n definition: hostedAgentDefinitionSerializer(item[\"definition\"]),\n };\n}\n\n/** Version indicator determining which agent version backs the session. */\nexport interface VersionIndicator {\n /** The type of version indicator. */\n /** The discriminator possible values: version_ref */\n type: VersionIndicatorType;\n}\n\nexport function versionIndicatorSerializer(item: VersionIndicator): any {\n return { type: item[\"type\"] };\n}\n\nexport function versionIndicatorDeserializer(item: any): VersionIndicator {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for VersionIndicatorUnion */\nexport type VersionIndicatorUnion = VersionRefIndicator | VersionIndicator;\n\nexport function versionIndicatorUnionSerializer(item: VersionIndicatorUnion): any {\n switch (item.type) {\n case \"version_ref\":\n return versionRefIndicatorSerializer(item as VersionRefIndicator);\n\n default:\n return versionIndicatorSerializer(item);\n }\n}\n\nexport function versionIndicatorUnionDeserializer(item: any): VersionIndicatorUnion {\n switch (item[\"type\"]) {\n case \"version_ref\":\n return versionRefIndicatorDeserializer(item as VersionRefIndicator);\n\n default:\n return versionIndicatorDeserializer(item);\n }\n}\n\n/** The type of version indicator used to determine the agent version backing a session. */\nexport type VersionIndicatorType = \"version_ref\";\n\n/** Version indicator that references a specific agent version by name. */\nexport interface VersionRefIndicator extends VersionIndicator {\n /** Discriminator value for version_ref. */\n type: \"version_ref\";\n /** The agent version identifier returned by the agent version APIs. */\n agent_version: string;\n}\n\nexport function versionRefIndicatorSerializer(item: VersionRefIndicator): any {\n return { type: item[\"type\"], agent_version: item[\"agent_version\"] };\n}\n\nexport function versionRefIndicatorDeserializer(item: any): VersionRefIndicator {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** An agent session providing a long-lived compute sandbox for hosted agent invocations. */\nexport interface AgentSessionResource {\n /** The session identifier. */\n agent_session_id: string;\n /** The version indicator determining which agent version backs this session. */\n version_indicator: VersionIndicatorUnion;\n /** The current status of the session. */\n status: AgentSessionStatus;\n /** The Unix timestamp (in seconds) when the session was created. */\n readonly created_at: Date;\n /** The Unix timestamp (in seconds) when the session was last accessed. */\n readonly last_accessed_at: Date;\n /** The Unix timestamp (in seconds) when the session expires (rolling, 30 days from last activity). */\n readonly expires_at: Date;\n}\n\nexport function agentSessionResourceDeserializer(item: any): AgentSessionResource {\n return {\n agent_session_id: item[\"agent_session_id\"],\n version_indicator: versionIndicatorUnionDeserializer(item[\"version_indicator\"]),\n status: item[\"status\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n last_accessed_at: new Date(item[\"last_accessed_at\"] * 1000),\n expires_at: new Date(item[\"expires_at\"] * 1000),\n };\n}\n\n/** The status of an agent session. */\nexport type AgentSessionStatus =\n \"creating\" | \"active\" | \"idle\" | \"updating\" | \"failed\" | \"deleting\" | \"deleted\" | \"expired\";\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentSessionResource {\n /** The requested list of items. */\n data: AgentSessionResource[];\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 _agentsPagedResultAgentSessionResourceDeserializer(\n item: any,\n): _AgentsPagedResultAgentSessionResource {\n return {\n data: agentSessionResourceArrayDeserializer(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 agentSessionResourceArrayDeserializer(result: Array<AgentSessionResource>): any[] {\n return result.map((item) => {\n return agentSessionResourceDeserializer(item);\n });\n}\n\n/**\n * A single Server-Sent Event frame emitted by the hosted agent session log stream.\n *\n * Each frame contains an `event` field identifying the event type and a `data`\n * field carrying the payload as plain text. Although the current `data` payload\n * is JSON-formatted, its schema is not contractual \u2014 additional keys may appear\n * and the format may change over time. Clients should treat `data` as an\n * opaque string and optionally attempt JSON parsing.\n *\n * New event types may be added in the future. Clients should gracefully\n * ignore unrecognized event types.\n *\n * Wire format:\n * ```\n * event: log\n * data: {\"timestamp\":\"2026-03-10T09:33:17.121Z\",\"stream\":\"stdout\",\"message\":\"Starting server on port 18080\"}\n *\n * event: log\n * data: {\"timestamp\":\"2026-03-10T09:34:52.714Z\",\"stream\":\"status\",\"message\":\"Successfully connected to container\"}\n * ```\n */\nexport interface SessionLogEvent {\n /** The SSE event type. Currently `log`, but additional event types may be added in the future. Clients should ignore unrecognized event types. */\n event: SessionLogEventType;\n /** The event payload as plain text. Currently JSON-formatted but the schema is not contractual and may change. */\n data: string;\n}\n\nexport function sessionLogEventDeserializer(item: any): SessionLogEvent {\n return {\n event: item[\"event\"],\n data: item[\"data\"],\n };\n}\n\n/**\n * Known SSE event types emitted by the hosted agent session log stream.\n * Additional event types may be introduced in future versions.\n */\nexport type SessionLogEventType = \"log\";\n\n/** Response from uploading a file to a session sandbox. */\nexport interface SessionFileWriteResponse {\n /** The path where the file was written, relative to the session home directory. */\n path: string;\n /** Number of bytes written. */\n bytes_written: number;\n}\n\nexport function sessionFileWriteResponseDeserializer(item: any): SessionFileWriteResponse {\n return {\n path: item[\"path\"],\n bytes_written: item[\"bytes_written\"],\n };\n}\n\n/** Response from listing a directory in a session sandbox. */\nexport interface SessionDirectoryListResponse {\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 /** The path that was listed, relative to the session home directory. */\n path: string;\n /** The directory entries. */\n entries: SessionDirectoryEntry[];\n}\n\nexport function sessionDirectoryListResponseDeserializer(item: any): SessionDirectoryListResponse {\n return {\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n path: item[\"path\"],\n entries: sessionDirectoryEntryArrayDeserializer(item[\"entries\"]),\n };\n}\n\nexport function sessionDirectoryEntryArrayDeserializer(\n result: Array<SessionDirectoryEntry>,\n): any[] {\n return result.map((item) => {\n return sessionDirectoryEntryDeserializer(item);\n });\n}\n\n/** A single entry in a directory listing. */\nexport interface SessionDirectoryEntry {\n /** The name of the file or directory. */\n name: string;\n /** The size in bytes (0 for directories). */\n size: number;\n /** Whether this entry is a directory. */\n is_directory: boolean;\n /** The Unix timestamp (in seconds) when the file was last modified. */\n modified_time: Date;\n}\n\nexport function sessionDirectoryEntryDeserializer(item: any): SessionDirectoryEntry {\n return {\n name: item[\"name\"],\n size: item[\"size\"],\n is_directory: item[\"is_directory\"],\n modified_time: new Date(item[\"modified_time\"] * 1000),\n };\n}\n\nexport function toolboxToolUnionArraySerializer(result: Array<ToolboxToolUnion>): any[] {\n return result.map((item) => {\n return toolboxToolUnionSerializer(item);\n });\n}\n\nexport function toolboxToolUnionArrayDeserializer(result: Array<ToolboxToolUnion>): any[] {\n return result.map((item) => {\n return toolboxToolUnionDeserializer(item);\n });\n}\n\n/** An abstract representation of a tool stored in a toolbox. */\nexport interface ToolboxTool {\n /** The type of tool. */\n /** The discriminator possible values: code_interpreter, file_search, web_search, mcp, azure_ai_search, openapi, a2a_preview, browser_automation_preview, reminder_preview, work_iq_preview, fabric_iq_preview, toolbox_search_preview, toolbox_search */\n type: ToolboxToolType;\n /** Optional user-defined name for this tool or configuration. */\n name?: string;\n /** Optional user-defined description for this tool or configuration. */\n description?: string;\n /**\n * Per-tool configuration map. Keys are tool names or `*` (catch-all default).\n * Resolution order: exact tool name match takes priority over `*`.\n * Unknown tool names are silently ignored at runtime.\n */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function toolboxToolSerializer(item: ToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolboxToolDeserializer(item: any): ToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** Alias for ToolboxToolUnion */\nexport type ToolboxToolUnion =\n | CodeInterpreterToolboxTool\n | FileSearchToolboxTool\n | WebSearchToolboxTool\n | MCPToolboxTool\n | AzureAISearchToolboxTool\n | OpenApiToolboxTool\n | A2APreviewToolboxTool\n | BrowserAutomationPreviewToolboxTool\n | ReminderPreviewToolboxTool\n | WorkIQPreviewToolboxTool\n | FabricIQPreviewToolboxTool\n | ToolboxSearchPreviewToolboxTool\n | ToolSearchToolboxTool\n | ToolboxTool;\n\nexport function toolboxToolUnionSerializer(item: ToolboxToolUnion): any {\n switch (item.type) {\n case \"code_interpreter\":\n return codeInterpreterToolboxToolSerializer(item as CodeInterpreterToolboxTool);\n\n case \"file_search\":\n return fileSearchToolboxToolSerializer(item as FileSearchToolboxTool);\n\n case \"web_search\":\n return webSearchToolboxToolSerializer(item as WebSearchToolboxTool);\n\n case \"mcp\":\n return mcpToolboxToolSerializer(item as MCPToolboxTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolboxToolSerializer(item as AzureAISearchToolboxTool);\n\n case \"openapi\":\n return openApiToolboxToolSerializer(item as OpenApiToolboxTool);\n\n case \"a2a_preview\":\n return a2APreviewToolboxToolSerializer(item as A2APreviewToolboxTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolboxToolSerializer(\n item as BrowserAutomationPreviewToolboxTool,\n );\n\n case \"reminder_preview\":\n return reminderPreviewToolboxToolSerializer(item as ReminderPreviewToolboxTool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolboxToolSerializer(item as WorkIQPreviewToolboxTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolboxToolSerializer(item as FabricIQPreviewToolboxTool);\n\n case \"toolbox_search_preview\":\n return toolboxSearchPreviewToolboxToolSerializer(item as ToolboxSearchPreviewToolboxTool);\n\n case \"toolbox_search\":\n return toolSearchToolboxToolSerializer(item as ToolSearchToolboxTool);\n\n default:\n return toolboxToolSerializer(item);\n }\n}\n\nexport function toolboxToolUnionDeserializer(item: any): ToolboxToolUnion {\n switch (item[\"type\"]) {\n case \"code_interpreter\":\n return codeInterpreterToolboxToolDeserializer(item as CodeInterpreterToolboxTool);\n\n case \"file_search\":\n return fileSearchToolboxToolDeserializer(item as FileSearchToolboxTool);\n\n case \"web_search\":\n return webSearchToolboxToolDeserializer(item as WebSearchToolboxTool);\n\n case \"mcp\":\n return mcpToolboxToolDeserializer(item as MCPToolboxTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolboxToolDeserializer(item as AzureAISearchToolboxTool);\n\n case \"openapi\":\n return openApiToolboxToolDeserializer(item as OpenApiToolboxTool);\n\n case \"a2a_preview\":\n return a2APreviewToolboxToolDeserializer(item as A2APreviewToolboxTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolboxToolDeserializer(\n item as BrowserAutomationPreviewToolboxTool,\n );\n\n case \"reminder_preview\":\n return reminderPreviewToolboxToolDeserializer(item as ReminderPreviewToolboxTool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolboxToolDeserializer(item as WorkIQPreviewToolboxTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolboxToolDeserializer(item as FabricIQPreviewToolboxTool);\n\n case \"toolbox_search_preview\":\n return toolboxSearchPreviewToolboxToolDeserializer(item as ToolboxSearchPreviewToolboxTool);\n\n case \"toolbox_search\":\n return toolSearchToolboxToolDeserializer(item as ToolSearchToolboxTool);\n\n default:\n return toolboxToolDeserializer(item);\n }\n}\n\n/** Supported tool types for tools stored in a toolbox. */\nexport type ToolboxToolType =\n | \"code_interpreter\"\n | \"file_search\"\n | \"web_search\"\n | \"mcp\"\n | \"azure_ai_search\"\n | \"openapi\"\n | \"a2a_preview\"\n | \"browser_automation_preview\"\n | \"reminder_preview\"\n | \"work_iq_preview\"\n | \"fabric_iq_preview\"\n | \"toolbox_search\"\n | \"toolbox_search_preview\";\n\n/** A code interpreter tool stored in a toolbox. */\nexport interface CodeInterpreterToolboxTool extends ToolboxTool {\n type: \"code_interpreter\";\n allowed_callers?: CallableToolAllowedCaller[];\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, along with an\n * optional `memory_limit` setting.\n * If not provided, the service assumes auto.\n */\n container?: string | AutoCodeInterpreterToolParam;\n}\n\nexport function codeInterpreterToolboxToolSerializer(item: CodeInterpreterToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerSerializer(item[\"container\"]),\n };\n}\n\nexport function codeInterpreterToolboxToolDeserializer(item: any): CodeInterpreterToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerDeserializer(item[\"container\"]),\n };\n}\n\n/** A file search tool stored in a toolbox. */\nexport interface FileSearchToolboxTool extends ToolboxTool {\n type: \"file_search\";\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 filters?: Filters;\n /** The IDs of the vector stores to search. */\n vector_store_ids?: string[];\n}\n\nexport function fileSearchToolboxToolSerializer(item: FileSearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\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 vector_store_ids: !item[\"vector_store_ids\"]\n ? item[\"vector_store_ids\"]\n : item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function fileSearchToolboxToolDeserializer(item: any): FileSearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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 vector_store_ids: !item[\"vector_store_ids\"]\n ? item[\"vector_store_ids\"]\n : item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** A web search tool stored in a toolbox. */\nexport interface WebSearchToolboxTool extends ToolboxTool {\n type: \"web_search\";\n filters?: WebSearchToolFilters;\n user_location?: WebSearchApproximateLocation;\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 * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n custom_search_configuration?: WebSearchConfiguration;\n}\n\nexport function webSearchToolboxToolSerializer(item: WebSearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersSerializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationSerializer(item[\"custom_search_configuration\"]),\n };\n}\n\nexport function webSearchToolboxToolDeserializer(item: any): WebSearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersDeserializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationDeserializer(item[\"custom_search_configuration\"]),\n };\n}\n\n/** An MCP tool stored in a toolbox. */\nexport interface MCPToolboxTool extends ToolboxTool {\n type: \"mcp\";\n /** A label for this MCP server, used to identify it in tool calls. */\n server_label: string;\n /**\n * The URL for the MCP server. One of `server_url`, `connector_id`, or\n * `tunnel_id` must be provided.\n */\n server_url?: string;\n /**\n * Identifier for service connectors, like those available in ChatGPT. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more\n * about service connectors [here](/docs/guides/tools-remote-mcp#connectors).\n * Currently supported `connector_id` values are:\n * - Dropbox: `connector_dropbox`\n * - Gmail: `connector_gmail`\n * - Google Calendar: `connector_googlecalendar`\n * - Google Drive: `connector_googledrive`\n * - Microsoft Teams: `connector_microsoftteams`\n * - Outlook Calendar: `connector_outlookcalendar`\n * - Outlook Email: `connector_outlookemail`\n * - SharePoint: `connector_sharepoint`\n */\n connector_id?:\n | \"connector_dropbox\"\n | \"connector_gmail\"\n | \"connector_googlecalendar\"\n | \"connector_googledrive\"\n | \"connector_microsoftteams\"\n | \"connector_outlookcalendar\"\n | \"connector_outlookemail\"\n | \"connector_sharepoint\";\n /**\n * The Secure MCP Tunnel ID to use instead of a direct server URL. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided.\n */\n tunnel_id?: string;\n /**\n * An OAuth access token that can be used with a remote MCP server, either\n * with a custom MCP server URL or a service connector. Your application\n * must handle the OAuth authorization flow and provide the token here.\n */\n authorization?: string;\n /** Optional description of the MCP server, used to provide more context. */\n server_description?: string;\n headers?: Record<string, string>;\n allowed_tools?: string[] | MCPToolFilter;\n allowed_callers?: CallableToolAllowedCaller[];\n require_approval?: MCPToolRequireApproval | \"always\" | \"never\";\n /** Whether this MCP tool is deferred and discovered via tool search. */\n defer_loading?: boolean;\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 mcpToolboxToolSerializer(item: MCPToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function mcpToolboxToolDeserializer(item: any): MCPToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: !item[\"headers\"]\n ? item[\"headers\"]\n : Object.fromEntries(\n Object.entries(item[\"headers\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** An Azure AI Search tool stored in a toolbox. */\nexport interface AzureAISearchToolboxTool extends ToolboxTool {\n type: \"azure_ai_search\";\n /** The azure ai search index resource. */\n azure_ai_search: AzureAISearchToolResource;\n}\n\nexport function azureAISearchToolboxToolSerializer(item: AzureAISearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n azure_ai_search: azureAISearchToolResourceSerializer(item[\"azure_ai_search\"]),\n };\n}\n\nexport function azureAISearchToolboxToolDeserializer(item: any): AzureAISearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n azure_ai_search: azureAISearchToolResourceDeserializer(item[\"azure_ai_search\"]),\n };\n}\n\n/** An OpenAPI tool stored in a toolbox. */\nexport interface OpenApiToolboxTool extends ToolboxTool {\n type: \"openapi\";\n /** The openapi function definition. */\n openapi: OpenApiFunctionDefinition;\n}\n\nexport function openApiToolboxToolSerializer(item: OpenApiToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n openapi: openApiFunctionDefinitionSerializer(item[\"openapi\"]),\n };\n}\n\nexport function openApiToolboxToolDeserializer(item: any): OpenApiToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n openapi: openApiFunctionDefinitionDeserializer(item[\"openapi\"]),\n };\n}\n\n/** An A2A tool stored in a toolbox. */\nexport interface A2APreviewToolboxTool extends ToolboxTool {\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 * When `true`, Foundry sends its credentials when fetching the remote\n * agent's Agent Card. The service defaults to `false` if a value is not\n * specified by the caller (anonymous fetch).\n */\n send_credentials_for_agent_card?: boolean;\n}\n\nexport function a2APreviewToolboxToolSerializer(item: A2APreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\nexport function a2APreviewToolboxToolDeserializer(item: any): A2APreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\n/** A browser automation tool stored in a toolbox. */\nexport interface BrowserAutomationPreviewToolboxTool extends ToolboxTool {\n type: \"browser_automation_preview\";\n /** The Browser Automation Tool parameters. */\n browser_automation_preview: BrowserAutomationToolParameters;\n}\n\nexport function browserAutomationPreviewToolboxToolSerializer(\n item: BrowserAutomationPreviewToolboxTool,\n): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n browser_automation_preview: browserAutomationToolParametersSerializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\nexport function browserAutomationPreviewToolboxToolDeserializer(\n item: any,\n): BrowserAutomationPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n browser_automation_preview: browserAutomationToolParametersDeserializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\n/** A reminder tool stored in a toolbox. */\nexport interface ReminderPreviewToolboxTool extends ToolboxTool {\n type: \"reminder_preview\";\n}\n\nexport function reminderPreviewToolboxToolSerializer(item: ReminderPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function reminderPreviewToolboxToolDeserializer(item: any): ReminderPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** A WorkIQ tool stored in a toolbox. */\nexport interface WorkIQPreviewToolboxTool extends ToolboxTool {\n type: \"work_iq_preview\";\n /** The ID of the WorkIQ project connection. */\n project_connection_id: string;\n}\n\nexport function workIQPreviewToolboxToolSerializer(item: WorkIQPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function workIQPreviewToolboxToolDeserializer(item: any): WorkIQPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** A FabricIQ tool stored in a toolbox. */\nexport interface FabricIQPreviewToolboxTool extends ToolboxTool {\n type: \"fabric_iq_preview\";\n /** The ID of the FabricIQ project connection. */\n project_connection_id: string;\n /** (Optional) The label of the FabricIQ MCP server to connect to. */\n server_label?: string;\n /** (Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used. */\n server_url?: string;\n /** (Optional) Whether the agent requires approval before executing actions. Default is always. */\n require_approval?: MCPToolRequireApproval | string;\n}\n\nexport function fabricIQPreviewToolboxToolSerializer(item: FabricIQPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalSerializer(item[\"require_approval\"]),\n };\n}\n\nexport function fabricIQPreviewToolboxToolDeserializer(item: any): FabricIQPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalDeserializer(item[\"require_approval\"]),\n };\n}\n\n/** A toolbox search tool stored in a toolbox. */\nexport interface ToolboxSearchPreviewToolboxTool extends ToolboxTool {\n /** The type of the tool. Always `toolbox_search_preview`. */\n type: \"toolbox_search_preview\";\n}\n\nexport function toolboxSearchPreviewToolboxToolSerializer(\n item: ToolboxSearchPreviewToolboxTool,\n): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolboxSearchPreviewToolboxToolDeserializer(\n item: any,\n): ToolboxSearchPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** A toolbox search tool stored in a toolbox. */\nexport interface ToolSearchToolboxTool extends ToolboxTool {\n /** The type of the tool. Always `toolbox_search`. */\n type: \"toolbox_search\";\n}\n\nexport function toolSearchToolboxToolSerializer(item: ToolSearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolSearchToolboxToolDeserializer(item: any): ToolSearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolboxSkillUnionArraySerializer(result: Array<ToolboxSkillUnion>): any[] {\n return result.map((item) => {\n return toolboxSkillUnionSerializer(item);\n });\n}\n\nexport function toolboxSkillUnionArrayDeserializer(result: Array<ToolboxSkillUnion>): any[] {\n return result.map((item) => {\n return toolboxSkillUnionDeserializer(item);\n });\n}\n\n/** A skill source included in a toolbox. */\nexport interface ToolboxSkill {\n /** The type of skill source. */\n /** The discriminator possible values: skill_reference */\n type: string;\n}\n\nexport function toolboxSkillSerializer(item: ToolboxSkill): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolboxSkillDeserializer(item: any): ToolboxSkill {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolboxSkillUnion */\nexport type ToolboxSkillUnion = ToolboxSkillReference | ToolboxSkill;\n\nexport function toolboxSkillUnionSerializer(item: ToolboxSkillUnion): any {\n switch (item.type) {\n case \"skill_reference\":\n return toolboxSkillReferenceSerializer(item as ToolboxSkillReference);\n\n default:\n return toolboxSkillSerializer(item);\n }\n}\n\nexport function toolboxSkillUnionDeserializer(item: any): ToolboxSkillUnion {\n switch (item[\"type\"]) {\n case \"skill_reference\":\n return toolboxSkillReferenceDeserializer(item as ToolboxSkillReference);\n\n default:\n return toolboxSkillDeserializer(item);\n }\n}\n\n/** A reference to an existing skill to include in a toolbox. */\nexport interface ToolboxSkillReference extends ToolboxSkill {\n /** The type of skill source. */\n type: \"skill_reference\";\n /** The name of the skill. */\n name: string;\n /** The version of the skill. If not specified, the skill's default version is used. When a version is specified, the reference is pinned to that immutable version. */\n version?: string;\n}\n\nexport function toolboxSkillReferenceSerializer(item: ToolboxSkillReference): any {\n return { type: item[\"type\"], name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function toolboxSkillReferenceDeserializer(item: any): ToolboxSkillReference {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Policy configuration for a toolbox, including content safety and other governance settings. */\nexport interface ToolboxPolicies {\n /** Responsible AI content filtering configuration. */\n rai_config?: RaiConfig;\n}\n\nexport function toolboxPoliciesSerializer(item: ToolboxPolicies): any {\n return {\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n };\n}\n\nexport function toolboxPoliciesDeserializer(item: any): ToolboxPolicies {\n return {\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n };\n}\n\n/** A specific version of a toolbox. */\nexport interface ToolboxVersionObject {\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> | null;\n /** The unique identifier of the toolbox version. */\n id: string;\n /** The name of the toolbox. */\n name: string;\n /** The version identifier of the toolbox. Toolbox versions are immutable and every update creates a new version. */\n version: string;\n /** A human-readable description of the toolbox. */\n description?: string;\n /** The Unix timestamp (seconds) when the toolbox version was created. */\n created_at: Date;\n /** The list of tools contained in this toolbox version. */\n tools: ToolboxToolUnion[];\n /** The list of skill sources included in this toolbox version. */\n skills?: ToolboxSkillUnion[];\n /** Policy configuration for the toolbox version. */\n policies?: ToolboxPolicies;\n}\n\nexport function toolboxVersionObjectDeserializer(item: any): ToolboxVersionObject {\n return {\n metadata: !item[\"metadata\"]\n ? item[\"metadata\"]\n : Object.fromEntries(\n Object.entries(item[\"metadata\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\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 tools: toolboxToolUnionArrayDeserializer(item[\"tools\"]),\n skills: !item[\"skills\"] ? item[\"skills\"] : toolboxSkillUnionArrayDeserializer(item[\"skills\"]),\n policies: !item[\"policies\"] ? item[\"policies\"] : toolboxPoliciesDeserializer(item[\"policies\"]),\n };\n}\n\n/** A toolbox that stores reusable tool definitions for agents. */\nexport interface ToolboxObject {\n /** The unique identifier of the toolbox. */\n id: string;\n /** The name of the toolbox. */\n name: string;\n /** The version identifier that the toolbox currently points to. Defaults to the latest version. Can be changed via updateToolbox. */\n default_version: string;\n}\n\nexport function toolboxObjectDeserializer(item: any): ToolboxObject {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n default_version: item[\"default_version\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultToolboxObject {\n /** The requested list of items. */\n data: ToolboxObject[];\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 _agentsPagedResultToolboxObjectDeserializer(\n item: any,\n): _AgentsPagedResultToolboxObject {\n return {\n data: toolboxObjectArrayDeserializer(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 toolboxObjectArrayDeserializer(result: Array<ToolboxObject>): any[] {\n return result.map((item) => {\n return toolboxObjectDeserializer(item);\n });\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultToolboxVersionObject {\n /** The requested list of items. */\n data: ToolboxVersionObject[];\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 _agentsPagedResultToolboxVersionObjectDeserializer(\n item: any,\n): _AgentsPagedResultToolboxVersionObject {\n return {\n data: toolboxVersionObjectArrayDeserializer(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 toolboxVersionObjectArrayDeserializer(result: Array<ToolboxVersionObject>): any[] {\n return result.map((item) => {\n return toolboxVersionObjectDeserializer(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: EvaluationTargetUnion;\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: evaluationTargetUnionSerializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"],\n };\n}\n\nexport function agentTaxonomyInputDeserializer(item: any): AgentTaxonomyInput {\n return {\n type: item[\"type\"],\n target: evaluationTargetUnionDeserializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"],\n };\n}\n\n/** Base class for targets with discriminator support. */\nexport interface EvaluationTarget {\n /** The type of target. */\n /** The discriminator possible values: azure_ai_model, azure_ai_agent */\n type: string;\n}\n\nexport function evaluationTargetSerializer(item: EvaluationTarget): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluationTargetDeserializer(item: any): EvaluationTarget {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluationTargetUnion */\nexport type EvaluationTargetUnion = AzureAIModelTarget | AzureAIAgentTarget | EvaluationTarget;\n\nexport function evaluationTargetUnionSerializer(item: EvaluationTargetUnion): any {\n switch (item.type) {\n case \"azure_ai_model\":\n return azureAIModelTargetSerializer(item as AzureAIModelTarget);\n\n case \"azure_ai_agent\":\n return azureAIAgentTargetSerializer(item as AzureAIAgentTarget);\n\n default:\n return evaluationTargetSerializer(item);\n }\n}\n\nexport function evaluationTargetUnionDeserializer(item: any): EvaluationTargetUnion {\n switch (item[\"type\"]) {\n case \"azure_ai_model\":\n return azureAIModelTargetDeserializer(item as AzureAIModelTarget);\n\n case \"azure_ai_agent\":\n return azureAIAgentTargetDeserializer(item as AzureAIAgentTarget);\n\n default:\n return evaluationTargetDeserializer(item);\n }\n}\n\n/** Represents a target specifying an Azure AI model for operations requiring model selection. */\nexport interface AzureAIModelTarget extends EvaluationTarget {\n /** The type of target, always `azure_ai_model`. */\n type: \"azure_ai_model\";\n /** The unique identifier of the Azure AI model. */\n model?: string;\n /** The parameters used to control the sampling behavior of the model during text generation. */\n sampling_params?: ModelSamplingParams;\n}\n\nexport function azureAIModelTargetSerializer(item: AzureAIModelTarget): any {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n sampling_params: !item[\"sampling_params\"]\n ? item[\"sampling_params\"]\n : modelSamplingParamsSerializer(item[\"sampling_params\"]),\n };\n}\n\nexport function azureAIModelTargetDeserializer(item: any): AzureAIModelTarget {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n sampling_params: !item[\"sampling_params\"]\n ? item[\"sampling_params\"]\n : modelSamplingParamsDeserializer(item[\"sampling_params\"]),\n };\n}\n\n/** Represents a set of parameters used to control the sampling behavior of a language model during text generation. */\nexport interface ModelSamplingParams {\n /** The temperature parameter for sampling. Defaults to 1.0. */\n temperature?: number;\n /** The top-p parameter for nucleus sampling. Defaults to 1.0. */\n top_p?: number;\n /** The random seed for reproducibility. Defaults to 42. */\n seed?: number;\n /** The maximum number of tokens allowed in the completion. */\n max_completion_tokens?: number;\n}\n\nexport function modelSamplingParamsSerializer(item: ModelSamplingParams): any {\n return {\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n seed: item[\"seed\"],\n max_completion_tokens: item[\"max_completion_tokens\"],\n };\n}\n\nexport function modelSamplingParamsDeserializer(item: any): ModelSamplingParams {\n return {\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n seed: item[\"seed\"],\n max_completion_tokens: item[\"max_completion_tokens\"],\n };\n}\n\n/** Represents a target specifying an Azure AI agent. */\nexport interface AzureAIAgentTarget extends EvaluationTarget {\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 tools?: ToolUnion[];\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 tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\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 tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\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\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\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/** 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 AI 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 /** Evaluation levels this evaluator supports (e.g., `turn`, `conversation`). When omitted on create, the service defaults to `[\"turn\"]`. On update, omitting this field leaves it unchanged; an empty list is rejected. Custom code-based evaluators support only `turn`; custom prompt-based evaluators support exactly one level (`turn` or `conversation`). */\n supported_evaluation_levels?: EvaluationLevel[];\n /** Definition of the evaluator */\n definition: EvaluatorDefinitionUnion;\n /** Provenance artifacts from the generation pipeline. Read-only; present only on evaluator versions created via an EvaluatorGenerationJob. Each artifact resolves to a versioned Foundry Dataset. */\n readonly generation_artifacts?: EvaluatorGenerationArtifacts;\n /** Read-only provenance link back to the EvaluatorGenerationJob that produced this version. Present only on evaluator versions created via the generation pipeline; absent for manually-created versions and unaffected by subsequent `PATCH` calls. */\n readonly generation_job_id?: string;\n /** Categories of warnings surfaced on this generated evaluator version. Present only on versions created via an EvaluatorGenerationJob when the paired job produced non-empty warnings. Absent (treat as no warnings) when the version is not from generation, when the paired job was clean, or when a subsequent `PATCH` to `definition` cleared the paired job's advisories. Follow `generation_job_id` to fetch the detailed warning payloads. */\n readonly warnings?: GenerationWarningType[];\n /** Creator of the evaluator */\n readonly created_by?: string;\n /** Creation date/time of the evaluator */\n readonly created_at?: string;\n /** Last modified date/time of the evaluator */\n readonly modified_at?: 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 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\"],\n supported_evaluation_levels: item[\"supported_evaluation_levels\"],\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\"],\n supported_evaluation_levels: item[\"supported_evaluation_levels\"],\n definition: evaluatorDefinitionUnionDeserializer(item[\"definition\"]),\n generation_artifacts: !item[\"generation_artifacts\"]\n ? item[\"generation_artifacts\"]\n : evaluatorGenerationArtifactsDeserializer(item[\"generation_artifacts\"]),\n generation_job_id: item[\"generation_job_id\"],\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : item[\"warnings\"].map((p: any) => {\n return p;\n }),\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\n/** The category of the evaluator */\nexport type EvaluatorCategory = \"quality\" | \"safety\" | \"agents\";\n\n/** The level at which evaluation is performed. */\nexport type EvaluationLevel = \"turn\" | \"conversation\";\n\n/** Base evaluator configuration with discriminator */\nexport interface EvaluatorDefinition {\n /** The type of evaluator definition */\n /** The discriminator possible values: code, prompt, rubric, endpoint */\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?: Record<string, unknown>;\n /** The JSON schema (Draft 2020-12) for the evaluator's input data. This includes parameters like type, properties, required. */\n data_schema?: Record<string, 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 | RubricBasedEvaluatorDefinition\n | EndpointBasedEvaluatorDefinition\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 case \"rubric\":\n return rubricBasedEvaluatorDefinitionSerializer(item as RubricBasedEvaluatorDefinition);\n\n case \"endpoint\":\n return endpointBasedEvaluatorDefinitionSerializer(item as EndpointBasedEvaluatorDefinition);\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 case \"rubric\":\n return rubricBasedEvaluatorDefinitionDeserializer(item as RubricBasedEvaluatorDefinition);\n\n case \"endpoint\":\n return endpointBasedEvaluatorDefinitionDeserializer(item as EndpointBasedEvaluatorDefinition);\n\n default:\n return evaluatorDefinitionDeserializer(item);\n }\n}\n\n/** The type of evaluator definition */\nexport type EvaluatorDefinitionType =\n \"prompt\" | \"code\" | \"prompt_and_code\" | \"service\" | \"openai_graders\" | \"endpoint\" | \"rubric\";\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 /** Default pass/fail threshold for this metric. */\n threshold?: 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 threshold: item[\"threshold\"],\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 threshold: item[\"threshold\"],\n is_primary: item[\"is_primary\"],\n };\n}\n\n/** The type of the evaluator */\nexport type EvaluatorMetricType = \"ordinal\" | \"continuous\" | \"boolean\";\n\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 /** The type discriminator, always 'code'. */\n type: \"code\";\n /** Inline code text for the evaluator */\n code_text?: string;\n /** The entry point Python file name for the uploaded evaluator code (e.g. 'answer_length_evaluator.py') */\n entry_point?: string;\n /** The container image tag to use for evaluator code execution */\n image_tag?: string;\n /** The blob URI for the evaluator storage */\n blob_uri?: 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 entry_point: item[\"entry_point\"],\n image_tag: item[\"image_tag\"],\n blob_uri: item[\"blob_uri\"],\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 entry_point: item[\"entry_point\"],\n image_tag: item[\"image_tag\"],\n blob_uri: item[\"blob_uri\"],\n };\n}\n\n/** Prompt-based evaluator */\nexport interface PromptBasedEvaluatorDefinition extends EvaluatorDefinition {\n /** The type discriminator, always 'prompt'. */\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/** Rubric-based evaluator definition \u2014 stores dimensions produced by the generate API. Used for both quality and safety evaluators. */\nexport interface RubricBasedEvaluatorDefinition extends EvaluatorDefinition {\n type: \"rubric\";\n /** The set of dimensions \u2014 the scoring blueprint used by the LLM judge. Quality evaluators include a non-editable residual dimension with id 'general_quality' (always_applicable: true); safety evaluators include 'general_policy_compliance'. Both use the same Dimension structure. */\n dimensions: Dimension[];\n /** Pass/fail threshold for the aggregate rubric score, on the same normalized 0.0-1.0 scale as the emitted `score`. When the runtime weighted average meets or exceeds this value, the result is `pass`. Defaults to 0.5 (equivalent to a raw 1-5 weighted average of 3.0). The 'any dimension scored 1 \u2192 fail' rule still applies regardless of this threshold. */\n pass_threshold?: number;\n}\n\nexport function rubricBasedEvaluatorDefinitionSerializer(\n item: RubricBasedEvaluatorDefinition,\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 dimensions: dimensionArraySerializer(item[\"dimensions\"]),\n pass_threshold: item[\"pass_threshold\"],\n };\n}\n\nexport function rubricBasedEvaluatorDefinitionDeserializer(\n item: any,\n): RubricBasedEvaluatorDefinition {\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 dimensions: dimensionArrayDeserializer(item[\"dimensions\"]),\n pass_threshold: item[\"pass_threshold\"],\n };\n}\n\nexport function dimensionArraySerializer(result: Array<Dimension>): any[] {\n return result.map((item) => {\n return dimensionSerializer(item);\n });\n}\n\nexport function dimensionArrayDeserializer(result: Array<Dimension>): any[] {\n return result.map((item) => {\n return dimensionDeserializer(item);\n });\n}\n\n/** A single dimension \u2014 one independent, measurable quality dimension within a rubric evaluator's scoring blueprint. */\nexport interface Dimension {\n /** Stable identifier for this dimension (snake_case, e.g., `correct_resolution`). Required. Provided by the user when manually creating a rubric evaluator or during human-in-the-loop review of a generated set; the generation pipeline produces an initial value the user can edit. Editable when saving new versions. */\n id: string;\n /** What this dimension measures (e.g., 'Correctly identifies the user's reservation intent and pursues the appropriate workflow'). */\n description: string;\n /** Relative weight of this dimension (1-10). The generation pipeline assigns exactly one dimension weight 8-10; all others use 1-6. User edits are not constrained by this heuristic. */\n weight: number;\n /** When true, the LLM judge always scores this dimension regardless of relevance (skips applicability assessment). The service-generated general quality/policy dimension has this set to true and is non-editable. Users may set this on their own custom dimensions. The service defaults to `false` if a value is not specified by the caller. */\n always_applicable?: boolean;\n}\n\nexport function dimensionSerializer(item: Dimension): any {\n return {\n id: item[\"id\"],\n description: item[\"description\"],\n weight: item[\"weight\"],\n always_applicable: item[\"always_applicable\"],\n };\n}\n\nexport function dimensionDeserializer(item: any): Dimension {\n return {\n id: item[\"id\"],\n description: item[\"description\"],\n weight: item[\"weight\"],\n always_applicable: item[\"always_applicable\"],\n };\n}\n\n/** Endpoint-based evaluator definition. The customer owns and hosts an HTTP endpoint that implements the evaluation contract. The evaluator references a Project Connection by name; the connection stores the endpoint URL and credentials (API Key or Entra ID). At execution time, the service resolves the connection to obtain the endpoint URL and authentication details, then calls the endpoint for each evaluation row. */\nexport interface EndpointBasedEvaluatorDefinition extends EvaluatorDefinition {\n type: \"endpoint\";\n /** Name of the Project Connection that stores the endpoint URL and credentials. The connection must exist on the project and have a non-empty target URL. Supported auth types: ApiKey (sends `api-key` header) and AAD/Entra ID (acquires a bearer token via the project's Managed Identity). */\n connection_name: string;\n}\n\nexport function endpointBasedEvaluatorDefinitionSerializer(\n item: EndpointBasedEvaluatorDefinition,\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 connection_name: item[\"connection_name\"],\n };\n}\n\nexport function endpointBasedEvaluatorDefinitionDeserializer(\n item: any,\n): EndpointBasedEvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: !item[\"init_parameters\"]\n ? item[\"init_parameters\"]\n : Object.fromEntries(\n Object.entries(item[\"init_parameters\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n data_schema: !item[\"data_schema\"]\n ? item[\"data_schema\"]\n : Object.fromEntries(\n Object.entries(item[\"data_schema\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n connection_name: item[\"connection_name\"],\n };\n}\n\n/** Service-managed provenance artifacts produced by an evaluator generation job. Present only on EvaluatorVersion resources created via the generation pipeline. The combined-JSONL Foundry Dataset is read-only and resolves to a versioned dataset in a service-reserved namespace. */\nexport interface EvaluatorGenerationArtifacts {\n /** Reference to the single Foundry Dataset (one combined JSONL file, version-aligned to `EvaluatorVersion.version`) holding all artifacts produced by the generation pipeline. Each row in the JSONL carries a `kind` field discriminating its content (e.g. `spec`, `tools`, `context`). */\n dataset: DatasetReference;\n /** The kinds of rows present in `dataset`. Always contains `\"spec\"` (the generated evaluation specification, a Markdown document describing what the evaluator measures). May additionally contain `\"tools\"` (when the generation pipeline produced or inferred OpenAI tool schemas) and/or `\"context\"` (when supplementary materials such as file uploads or trace samples were used during generation). */\n kinds: string[];\n}\n\nexport function evaluatorGenerationArtifactsDeserializer(item: any): EvaluatorGenerationArtifacts {\n return {\n dataset: datasetReferenceDeserializer(item[\"dataset\"]),\n kinds: item[\"kinds\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Reference to a versioned Foundry Dataset. */\nexport interface DatasetReference {\n /** Dataset name. */\n name: string;\n /** Dataset version. */\n version: string;\n}\n\nexport function datasetReferenceDeserializer(item: any): DatasetReference {\n return {\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Category of a warning surfaced on a generated evaluator version. Extensible so new warning categories (e.g., safety, output quality) can be introduced without a breaking change. */\nexport type GenerationWarningType = \"input_quality\";\n\n/** Request body for getting evaluator credentials */\nexport interface EvaluatorCredentialRequest {\n /** The blob URI for the evaluator storage. Example: `https://account.blob.core.windows.net:443/container` */\n blob_uri: string;\n}\n\nexport function evaluatorCredentialRequestSerializer(item: EvaluatorCredentialRequest): any {\n return { blob_uri: item[\"blob_uri\"] };\n}\n\n/** Evaluator Generation Job resource \u2014 a long-running job that generates rubric-based evaluator definitions from source materials. On success, the result is the persisted EvaluatorVersion. */\nexport interface EvaluatorGenerationJob {\n /** Server-assigned unique identifier. */\n readonly id?: string;\n /** Caller-supplied inputs. */\n inputs?: EvaluatorGenerationInputs;\n /** Result produced on success. */\n readonly result?: EvaluatorVersion;\n /** Current lifecycle status. */\n readonly status?: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time (seconds since January 1, 1970). */\n readonly created_at?: Date;\n /** The timestamp when the job finished, represented in Unix time (seconds since January 1, 1970). */\n readonly finished_at?: Date;\n /** Token consumption summary. Populated when the job reaches a terminal state. */\n readonly usage?: EvaluatorGenerationTokenUsage;\n /** Non-fatal input-quality advisories produced by the generation pipeline. Read-only; service-generated; populated only on terminal jobs when advisories fired. Omitted when generation was clean. Cleared when a subsequent `PATCH` to the paired `EvaluatorVersion.definition` invalidates the advisories. */\n readonly input_quality_warnings?: RubricGenerationInputQualityWarning[];\n}\n\nexport function evaluatorGenerationJobSerializer(item: EvaluatorGenerationJob): any {\n if (!item[\"inputs\"]) {\n return {};\n }\n return evaluatorGenerationInputsSerializer(item[\"inputs\"]);\n}\n\nexport function evaluatorGenerationJobDeserializer(item: any): EvaluatorGenerationJob {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"]\n ? item[\"inputs\"]\n : evaluatorGenerationInputsDeserializer(item[\"inputs\"]),\n result: !item[\"result\"] ? item[\"result\"] : evaluatorVersionDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : apiErrorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n finished_at: !item[\"finished_at\"] ? item[\"finished_at\"] : new Date(item[\"finished_at\"] * 1000),\n usage: !item[\"usage\"]\n ? item[\"usage\"]\n : evaluatorGenerationTokenUsageDeserializer(item[\"usage\"]),\n input_quality_warnings: !item[\"input_quality_warnings\"]\n ? item[\"input_quality_warnings\"]\n : rubricGenerationInputQualityWarningArrayDeserializer(item[\"input_quality_warnings\"]),\n };\n}\n\n/** Caller-supplied inputs for an evaluator generation job. */\nexport interface EvaluatorGenerationInputs {\n /** Source materials for generation \u2014 agent descriptions, prompts, traces, or datasets. Each entry is an `EvaluatorGenerationJobSource` variant discriminated by `type`. */\n sources: EvaluatorGenerationJobSourceUnion[];\n /** The LLM model to use for rubric generation (e.g., 'gpt-4o'). Required \u2014 users must provide their own model rather than relying on service-owned capacity. */\n model: string;\n /** The evaluator name (immutable identifier). 1-256 characters; allowed characters are ASCII letters, digits, underscore (`_`), period (`.`), tilde (`~`), and hyphen (`-`). The prefix `builtin.` is reserved for system-managed evaluators and is rejected by the service. If an evaluator with this name already exists in the project (and is rubric-subtype), the service creates a new version under the same name and uses the prior version's `dimensions` as context for incremental improvement (foundation of the post-//build adaptive loop). Old versions remain queryable via `get_version(name, version)`. If the existing evaluator is not a rubric-subtype evaluator (built-in, prompt-based, code-based), the request is rejected with `400 Bad Request`. */\n evaluator_name: string;\n /** Optional human-friendly display name for the resulting evaluator. Surfaced as `EvaluatorVersion.display_name` on the persisted evaluator. When omitted, the service uses `evaluator_name` as the display name. The `evaluator_` prefix disambiguates this from the immutable `evaluator_name` identifier. */\n evaluator_display_name?: string;\n /** Optional human-friendly description for the resulting evaluator. Surfaced as `EvaluatorVersion.description` on the persisted evaluator. Typically collected from the UI alongside `evaluator_display_name`. The `evaluator_` prefix disambiguates this from any other description fields on related models. */\n evaluator_description?: string;\n}\n\nexport function evaluatorGenerationInputsSerializer(item: EvaluatorGenerationInputs): any {\n return {\n sources: evaluatorGenerationJobSourceUnionArraySerializer(item[\"sources\"]),\n model: item[\"model\"],\n evaluator_name: item[\"evaluator_name\"],\n evaluator_display_name: item[\"evaluator_display_name\"],\n evaluator_description: item[\"evaluator_description\"],\n };\n}\n\nexport function evaluatorGenerationInputsDeserializer(item: any): EvaluatorGenerationInputs {\n return {\n sources: evaluatorGenerationJobSourceUnionArrayDeserializer(item[\"sources\"]),\n model: item[\"model\"],\n evaluator_name: item[\"evaluator_name\"],\n evaluator_display_name: item[\"evaluator_display_name\"],\n evaluator_description: item[\"evaluator_description\"],\n };\n}\n\nexport function evaluatorGenerationJobSourceUnionArraySerializer(\n result: Array<EvaluatorGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobSourceUnionSerializer(item);\n });\n}\n\nexport function evaluatorGenerationJobSourceUnionArrayDeserializer(\n result: Array<EvaluatorGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobSourceUnionDeserializer(item);\n });\n}\n\n/** The base source model for evaluator generation jobs. Polymorphic over `type`. */\nexport interface EvaluatorGenerationJobSource {\n /** The type of source. */\n /** The discriminator possible values: prompt, agent, traces, dataset */\n type: EvaluatorGenerationJobSourceType;\n}\n\nexport function evaluatorGenerationJobSourceSerializer(item: EvaluatorGenerationJobSource): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluatorGenerationJobSourceDeserializer(item: any): EvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluatorGenerationJobSourceUnion */\nexport type EvaluatorGenerationJobSourceUnion =\n | PromptEvaluatorGenerationJobSource\n | AgentEvaluatorGenerationJobSource\n | TracesEvaluatorGenerationJobSource\n | DatasetEvaluatorGenerationJobSource\n | EvaluatorGenerationJobSource;\n\nexport function evaluatorGenerationJobSourceUnionSerializer(\n item: EvaluatorGenerationJobSourceUnion,\n): any {\n switch (item.type) {\n case \"prompt\":\n return promptEvaluatorGenerationJobSourceSerializer(\n item as PromptEvaluatorGenerationJobSource,\n );\n\n case \"agent\":\n return agentEvaluatorGenerationJobSourceSerializer(item as AgentEvaluatorGenerationJobSource);\n\n case \"traces\":\n return tracesEvaluatorGenerationJobSourceSerializer(\n item as TracesEvaluatorGenerationJobSource,\n );\n\n case \"dataset\":\n return datasetEvaluatorGenerationJobSourceSerializer(\n item as DatasetEvaluatorGenerationJobSource,\n );\n\n default:\n return evaluatorGenerationJobSourceSerializer(item);\n }\n}\n\nexport function evaluatorGenerationJobSourceUnionDeserializer(\n item: any,\n): EvaluatorGenerationJobSourceUnion {\n switch (item[\"type\"]) {\n case \"prompt\":\n return promptEvaluatorGenerationJobSourceDeserializer(\n item as PromptEvaluatorGenerationJobSource,\n );\n\n case \"agent\":\n return agentEvaluatorGenerationJobSourceDeserializer(\n item as AgentEvaluatorGenerationJobSource,\n );\n\n case \"traces\":\n return tracesEvaluatorGenerationJobSourceDeserializer(\n item as TracesEvaluatorGenerationJobSource,\n );\n\n case \"dataset\":\n return datasetEvaluatorGenerationJobSourceDeserializer(\n item as DatasetEvaluatorGenerationJobSource,\n );\n\n default:\n return evaluatorGenerationJobSourceDeserializer(item);\n }\n}\n\n/** The supported source types for evaluator generation jobs. */\nexport type EvaluatorGenerationJobSourceType = \"prompt\" | \"agent\" | \"traces\" | \"dataset\";\n\n/** Prompt source for evaluator generation jobs \u2014 inline text provided by the user. */\nexport interface PromptEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Prompt. */\n type: \"prompt\";\n /** Inline prompt text (e.g., agent description, policy text, supplementary context). */\n prompt: string;\n}\n\nexport function promptEvaluatorGenerationJobSourceSerializer(\n item: PromptEvaluatorGenerationJobSource,\n): any {\n return { type: item[\"type\"], description: item[\"description\"], prompt: item[\"prompt\"] };\n}\n\nexport function promptEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): PromptEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n prompt: item[\"prompt\"],\n };\n}\n\n/** Agent source for evaluator generation jobs \u2014 references an agent to fetch instructions and metadata from. */\nexport interface AgentEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Agent. */\n type: \"agent\";\n /** The agent name to fetch instructions from. */\n agent_name: string;\n /** The agent version. If not specified, the latest version is used. */\n agent_version?: string;\n}\n\nexport function agentEvaluatorGenerationJobSourceSerializer(\n item: AgentEvaluatorGenerationJobSource,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\nexport function agentEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): AgentEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Traces source for evaluator generation jobs \u2014 conversation traces from Application Insights. */\nexport interface TracesEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Traces. */\n type: \"traces\";\n /** The unique agent ID used to filter traces. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_id?: string;\n /** The agent name to fetch traces for. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_name?: string;\n /** The agent version. If not specified, traces for ALL versions of the agent are included within the time window. */\n agent_version?: string;\n /** Start of the time window (Unix timestamp in seconds) for fetching traces. */\n start_time?: Date;\n /** End of the time window (Unix timestamp in seconds). Defaults to current time. */\n end_time?: Date;\n}\n\nexport function tracesEvaluatorGenerationJobSourceSerializer(\n item: TracesEvaluatorGenerationJobSource,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: !item[\"start_time\"]\n ? item[\"start_time\"]\n : (item[\"start_time\"].getTime() / 1000) | 0,\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : (item[\"end_time\"].getTime() / 1000) | 0,\n };\n}\n\nexport function tracesEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): TracesEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: !item[\"start_time\"] ? item[\"start_time\"] : new Date(item[\"start_time\"] * 1000),\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : new Date(item[\"end_time\"] * 1000),\n };\n}\n\n/** Dataset source for evaluator generation jobs \u2014 reference to a dataset. */\nexport interface DatasetEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Dataset. */\n type: \"dataset\";\n /** The name of the dataset. */\n name: string;\n /** The version of the dataset. If not specified, the latest version is used. */\n version?: string;\n}\n\nexport function datasetEvaluatorGenerationJobSourceSerializer(\n item: DatasetEvaluatorGenerationJobSource,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\nexport function datasetEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): DatasetEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Extensible status values shared by Foundry jobs. */\nexport type JobStatus = \"queued\" | \"in_progress\" | \"succeeded\" | \"failed\" | \"cancelled\";\n\n/** Token consumption summary for an evaluator generation job. Populated when the job reaches a terminal state. */\nexport interface EvaluatorGenerationTokenUsage {\n /** Number of input (prompt) tokens consumed. */\n input_tokens: number;\n /** Number of output (completion) tokens generated. */\n output_tokens: number;\n /** Total tokens consumed (input + output). */\n total_tokens: number;\n}\n\nexport function evaluatorGenerationTokenUsageDeserializer(\n item: any,\n): EvaluatorGenerationTokenUsage {\n return {\n input_tokens: item[\"input_tokens\"],\n output_tokens: item[\"output_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\nexport function rubricGenerationInputQualityWarningArrayDeserializer(\n result: Array<RubricGenerationInputQualityWarning>,\n): any[] {\n return result.map((item) => {\n return rubricGenerationInputQualityWarningDeserializer(item);\n });\n}\n\n/** A non-fatal advisory produced during rubric evaluator generation when resolved inputs are technically valid but likely too weak to produce a high-quality rubric. Read-only; service-generated. Persisted with the terminal EvaluatorGenerationJob. */\nexport interface RubricGenerationInputQualityWarning {\n /** Stable searchable machine-readable warning code. */\n code: RubricGenerationInputQualityWarningCode;\n /** Advisory severity. Initial values: `warning`. */\n severity: RubricGenerationInputQualityWarningSeverity;\n /** Human-readable message suitable for direct SDK/CLI/UI display. Must not include raw prompt, instruction, dataset, or trace text. */\n message: string;\n /** Which source category the warning applies to. `aggregate` is used only for cross-source warnings. */\n source: RubricGenerationInputQualityWarningSource;\n /** Zero-based index into `EvaluatorGenerationJob.inputs.sources` when the warning applies to a specific source. Omitted for aggregate warnings and for warnings not tied to one source. */\n source_index?: number;\n}\n\nexport function rubricGenerationInputQualityWarningDeserializer(\n item: any,\n): RubricGenerationInputQualityWarning {\n return {\n code: item[\"code\"],\n severity: item[\"severity\"],\n message: item[\"message\"],\n source: item[\"source\"],\n source_index: item[\"source_index\"],\n };\n}\n\n/** Stable searchable machine-readable warning code for a rubric-generation input-quality warning. Values are `snake_case`; clients must tolerate additional service-defined identifiers. */\nexport type RubricGenerationInputQualityWarningCode =\n | \"empty_prompt\"\n | \"short_prompt\"\n | \"empty_agent_instructions\"\n | \"short_agent_instructions\"\n | \"empty_dataset_content\"\n | \"short_dataset_content\"\n | \"low_trace_count\"\n | \"insufficient_total_input\";\n\n/** Advisory severity for a rubric-generation input-quality warning. Initial value set: `warning`. */\nexport type RubricGenerationInputQualityWarningSeverity = \"warning\";\n\n/** Warning source attribution for a rubric-generation input-quality warning. Per-source values (`prompt`, `agent`, `dataset`) match the source category visible to the generation runtime. `aggregate` is a synthetic value used only for warnings computed across successfully resolved sources. `traces` is not exposed because trace sources resolve into dataset content upstream. */\nexport type RubricGenerationInputQualityWarningSource =\n \"prompt\" | \"agent\" | \"dataset\" | \"aggregate\";\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultEvaluatorGenerationJob {\n /** The requested list of items. */\n data: EvaluatorGenerationJob[];\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 _agentsPagedResultEvaluatorGenerationJobDeserializer(\n item: any,\n): _AgentsPagedResultEvaluatorGenerationJob {\n return {\n data: evaluatorGenerationJobArrayDeserializer(item[\"value\"] ?? item[\"data\"] ?? []),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"] ?? false,\n };\n}\n\nexport function evaluatorGenerationJobArraySerializer(\n result: Array<EvaluatorGenerationJob>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobSerializer(item);\n });\n}\n\nexport function evaluatorGenerationJobArrayDeserializer(\n result: Array<EvaluatorGenerationJob>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobDeserializer(item);\n });\n}\n\n/** The response body for cluster insights. */\nexport interface Insight {\n /** The unique identifier for the insights report. */\n readonly insight_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 insight_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 | EvaluationRunClusterInsightRequest\n | AgentClusterInsightRequest\n | EvaluationComparisonInsightRequest\n | InsightRequest;\n\nexport function insightRequestUnionSerializer(item: InsightRequestUnion): any {\n switch (item.type) {\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightRequestSerializer(\n item as EvaluationRunClusterInsightRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightRequestSerializer(item as AgentClusterInsightRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonInsightRequestSerializer(\n item as EvaluationComparisonInsightRequest,\n );\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 evaluationRunClusterInsightRequestDeserializer(\n item as EvaluationRunClusterInsightRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightRequestDeserializer(item as AgentClusterInsightRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonInsightRequestDeserializer(\n item as EvaluationComparisonInsightRequest,\n );\n\n default:\n return insightRequestDeserializer(item);\n }\n}\n\n/** The request of the insights. */\nexport type InsightType =\n \"EvaluationRunClusterInsight\" | \"AgentClusterInsight\" | \"EvaluationComparison\";\n\n/** Insights on set of Evaluation Results */\nexport interface EvaluationRunClusterInsightRequest 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 evaluationRunClusterInsightRequestSerializer(\n item: EvaluationRunClusterInsightRequest,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"],\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationSerializer(item[\"modelConfiguration\"]),\n };\n}\n\nexport function evaluationRunClusterInsightRequestDeserializer(\n item: any,\n): EvaluationRunClusterInsightRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"],\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 AgentClusterInsightRequest 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 agentClusterInsightRequestSerializer(item: AgentClusterInsightRequest): 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 agentClusterInsightRequestDeserializer(item: any): AgentClusterInsightRequest {\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 EvaluationComparisonInsightRequest 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 evaluationComparisonInsightRequestSerializer(\n item: EvaluationComparisonInsightRequest,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"],\n };\n}\n\nexport function evaluationComparisonInsightRequestDeserializer(\n item: any,\n): EvaluationComparisonInsightRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"],\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 | EvaluationComparisonInsightResult\n | EvaluationRunClusterInsightResult\n | AgentClusterInsightResult\n | InsightResult;\n\nexport function insightResultUnionDeserializer(item: any): InsightResultUnion {\n switch (item[\"type\"]) {\n case \"EvaluationComparison\":\n return evaluationComparisonInsightResultDeserializer(\n item as EvaluationComparisonInsightResult,\n );\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 EvaluationComparisonInsightResult 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 evaluationComparisonInsightResultDeserializer(\n item: any,\n): EvaluationComparisonInsightResult {\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\" | \"Inconclusive\" | \"Changed\" | \"Improved\" | \"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 /** The cluster insight details. */\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, unknown>;\n /** Info about the correlation for the analysis sample. */\n correlationInfo: Record<string, unknown>;\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).forEach((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 /** The cluster insight details. */\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/** 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. Defaults to `true`. */\n chat_summary_enabled: boolean;\n /** Whether to enable procedural memory extraction and storage. The service defaults to `true` if a value is not specified by the caller. */\n procedural_memory_enabled?: boolean;\n /** The default time-to-live for memories in seconds. A value of `0` indicates that memories do not expire. Defaults to `0`. */\n default_ttl_seconds?: number;\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 procedural_memory_enabled: item[\"procedural_memory_enabled\"],\n default_ttl_seconds: item[\"default_ttl_seconds\"],\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 procedural_memory_enabled: item[\"procedural_memory_enabled\"],\n default_ttl_seconds: item[\"default_ttl_seconds\"],\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 memoryStoreDeserializer(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 _AgentsPagedResultMemoryStoreObject {\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): _AgentsPagedResultMemoryStoreObject {\n return {\n data: memoryStoreArrayDeserializer(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 memoryStoreArrayDeserializer(result: Array<MemoryStore>): any[] {\n return result.map((item) => {\n return memoryStoreDeserializer(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/** 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\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 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, procedural */\n kind: MemoryItemKind;\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 =\n UserProfileMemoryItem | ChatSummaryMemoryItem | ProceduralMemoryItem | MemoryItem;\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 case \"procedural\":\n return proceduralMemoryItemDeserializer(item as ProceduralMemoryItem);\n\n default:\n return memoryItemDeserializer(item);\n }\n}\n\n/** Memory item kind. */\nexport type MemoryItemKind = \"user_profile\" | \"chat_summary\" | \"procedural\";\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 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 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\n/** A memory item containing a procedure extracted from conversations. */\nexport interface ProceduralMemoryItem extends MemoryItem {\n /** The kind of the memory item. */\n kind: \"procedural\";\n}\n\nexport function proceduralMemoryItemDeserializer(item: any): ProceduralMemoryItem {\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/** 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: ResponseUsageInputTokensDetails;\n /** The number of output tokens. */\n output_tokens: number;\n /** A detailed breakdown of the output tokens. */\n output_tokens_details: ResponseUsageOutputTokensDetails;\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: responseUsageInputTokensDetailsDeserializer(item[\"input_tokens_details\"]),\n output_tokens: item[\"output_tokens\"],\n output_tokens_details: responseUsageOutputTokensDetailsDeserializer(\n item[\"output_tokens_details\"],\n ),\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** model interface ResponseUsageInputTokensDetails */\nexport interface ResponseUsageInputTokensDetails {\n /** The number of cached input tokens used. */\n cached_tokens: number;\n /** The number of cache-write input tokens used. */\n cache_write_tokens?: number;\n}\n\nexport function responseUsageInputTokensDetailsDeserializer(\n item: any,\n): ResponseUsageInputTokensDetails {\n return {\n cached_tokens: item[\"cached_tokens\"],\n cache_write_tokens: item[\"cache_write_tokens\"],\n };\n}\n\n/** model interface ResponseUsageOutputTokensDetails */\nexport interface ResponseUsageOutputTokensDetails {\n reasoning_tokens: number;\n}\n\nexport function responseUsageOutputTokensDetailsDeserializer(\n item: any,\n): ResponseUsageOutputTokensDetails {\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?: MemoryStoreUpdateCompletedResult;\n /** Error object that describes the error when status is \"failed\". */\n error?: ErrorModel;\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\"]\n ? item[\"result\"]\n : memoryStoreUpdateCompletedResultDeserializer(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\" | \"in_progress\" | \"completed\" | \"failed\" | \"superseded\";\n\n/** Memory update result. */\nexport interface MemoryStoreUpdateCompletedResult {\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 memoryStoreUpdateCompletedResultDeserializer(\n item: any,\n): MemoryStoreUpdateCompletedResult {\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/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultMemoryItem {\n /** The requested list of items. */\n data: MemoryItemUnion[];\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 _agentsPagedResultMemoryItemDeserializer(item: any): _AgentsPagedResultMemoryItem {\n return {\n data: memoryItemUnionArrayDeserializer(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 memoryItemUnionArrayDeserializer(result: Array<MemoryItemUnion>): any[] {\n return result.map((item) => {\n return memoryItemUnionDeserializer(item);\n });\n}\n\n/** Response for deleting a memory item from a memory store. */\nexport interface DeleteMemoryResponse {\n /** The object type. Always 'memory_store.item.deleted'. */\n object: \"memory_store.item.deleted\";\n /** The unique ID of the deleted memory item. */\n memory_id: string;\n /** Whether the memory item was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteMemoryResponseDeserializer(item: any): DeleteMemoryResponse {\n return {\n object: item[\"object\"],\n memory_id: item[\"memory_id\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Paged collection of ModelVersion items */\nexport interface _PagedModelVersion {\n /** The ModelVersion items on this page */\n value: ModelVersion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedModelVersionDeserializer(item: any): _PagedModelVersion {\n return {\n value: modelVersionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function modelVersionArraySerializer(result: Array<ModelVersion>): any[] {\n return result.map((item) => {\n return modelVersionSerializer(item);\n });\n}\n\nexport function modelVersionArrayDeserializer(result: Array<ModelVersion>): any[] {\n return result.map((item) => {\n return modelVersionDeserializer(item);\n });\n}\n\n/** Model Version Definition */\nexport interface ModelVersion {\n /** URI of the model artifact in blob storage */\n blobUri: string;\n /** The weight type of the model */\n weightType?: FoundryModelWeightType;\n /** Base model asset ID */\n baseModel?: string;\n /** The source of the model */\n source?: ModelSourceData;\n /** Adapter-specific configuration. Required when weight_type is lora; ignored otherwise. May be auto-populated from adapter_config.json when present in the uploaded files \u2014 user-provided values take precedence over auto-detected values. */\n loraConfig?: LoraConfig;\n /** The artifact profile of the model */\n readonly artifactProfile?: ArtifactProfile;\n /** Service-computed advisory warnings derived from the artifact profile. */\n readonly warnings?: FoundryModelWarning[];\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 modelVersionSerializer(item: ModelVersion): any {\n return {\n blobUri: item[\"blobUri\"],\n weightType: item[\"weightType\"],\n baseModel: item[\"baseModel\"],\n source: !item[\"source\"] ? item[\"source\"] : modelSourceDataSerializer(item[\"source\"]),\n loraConfig: !item[\"loraConfig\"] ? item[\"loraConfig\"] : loraConfigSerializer(item[\"loraConfig\"]),\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function modelVersionDeserializer(item: any): ModelVersion {\n return {\n blobUri: item[\"blobUri\"],\n weightType: item[\"weightType\"],\n baseModel: item[\"baseModel\"],\n source: !item[\"source\"] ? item[\"source\"] : modelSourceDataDeserializer(item[\"source\"]),\n loraConfig: !item[\"loraConfig\"]\n ? item[\"loraConfig\"]\n : loraConfigDeserializer(item[\"loraConfig\"]),\n artifactProfile: !item[\"artifactProfile\"]\n ? item[\"artifactProfile\"]\n : artifactProfileDeserializer(item[\"artifactProfile\"]),\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : foundryModelWarningArrayDeserializer(item[\"warnings\"]),\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 weight type of the model. */\nexport type FoundryModelWeightType = \"FullWeight\" | \"LoRA\" | \"DraftModel\";\n\n/** Source information for the model */\nexport interface ModelSourceData {\n /** The source type of the model */\n sourceType?: FoundryModelSourceType;\n /** The job ID that produced this model */\n jobId?: string;\n}\n\nexport function modelSourceDataSerializer(item: ModelSourceData): any {\n return { sourceType: item[\"sourceType\"], jobId: item[\"jobId\"] };\n}\n\nexport function modelSourceDataDeserializer(item: any): ModelSourceData {\n return {\n sourceType: item[\"sourceType\"],\n jobId: item[\"jobId\"],\n };\n}\n\n/** The source type of the model. */\nexport type FoundryModelSourceType = \"LocalUpload\" | \"TrainingJob\";\n\n/** Adapter-specific metadata for LoRA models. Drives serving engine configuration at deployment time. */\nexport interface LoraConfig {\n /** LoRA rank (r). Positive integer. Common values: 8, 16, 32, 64. */\n rank?: number;\n /** LoRA scaling factor (\u03B1). Positive integer; typically 2\u00D7 the rank. */\n alpha?: number;\n /** Model layers modified by the adapter (e.g., q_proj, v_proj). Auto-detected from adapter_config.json if omitted. */\n targetModules?: string[];\n /** Dropout rate used during training. Informational \u2014 not used at serving time. */\n dropout?: number;\n}\n\nexport function loraConfigSerializer(item: LoraConfig): any {\n return {\n rank: item[\"rank\"],\n alpha: item[\"alpha\"],\n targetModules: !item[\"targetModules\"]\n ? item[\"targetModules\"]\n : item[\"targetModules\"].map((p: any) => {\n return p;\n }),\n dropout: item[\"dropout\"],\n };\n}\n\nexport function loraConfigDeserializer(item: any): LoraConfig {\n return {\n rank: item[\"rank\"],\n alpha: item[\"alpha\"],\n targetModules: !item[\"targetModules\"]\n ? item[\"targetModules\"]\n : item[\"targetModules\"].map((p: any) => {\n return p;\n }),\n dropout: item[\"dropout\"],\n };\n}\n\n/** Artifact profile of the model */\nexport interface ArtifactProfile {\n /** The category of the artifact profile */\n category: FoundryModelArtifactProfileCategory;\n /** Signals detected in the model artifact */\n signals?: FoundryModelArtifactProfileSignal[];\n}\n\nexport function artifactProfileDeserializer(item: any): ArtifactProfile {\n return {\n category: item[\"category\"],\n signals: !item[\"signals\"]\n ? item[\"signals\"]\n : item[\"signals\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The artifact profile category. */\nexport type FoundryModelArtifactProfileCategory = \"DataOnly\" | \"RuntimeDependent\" | \"Unknown\";\n\n/** Signals detected in the model artifact. */\nexport type FoundryModelArtifactProfileSignal =\n \"PickleDeserialization\" | \"CustomPythonCode\" | \"DynamicOps\" | \"NativeBinary\" | \"UnknownFormat\";\n\nexport function foundryModelWarningArrayDeserializer(result: Array<FoundryModelWarning>): any[] {\n return result.map((item) => {\n return foundryModelWarningDeserializer(item);\n });\n}\n\n/** A warning associated with a model. */\nexport interface FoundryModelWarning {\n /** The warning code. */\n code?: FoundryModelWarningCode;\n /** The warning message. */\n message?: string;\n}\n\nexport function foundryModelWarningDeserializer(item: any): FoundryModelWarning {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n };\n}\n\n/** Warning code for model artifacts. */\nexport type FoundryModelWarningCode = \"RuntimeDependentArtifact\" | \"UnclassifiedArtifact\";\n\n/** Request body for updating a model version. Only description and tags can be modified. */\nexport interface UpdateModelVersionRequest {\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 updateModelVersionRequestSerializer(item: UpdateModelVersionRequest): any {\n return { description: item[\"description\"], tags: item[\"tags\"] };\n}\n\n/** model interface _CreateAsyncResponse */\nexport interface _CreateAsyncResponse {\n /** URL to poll for operation status. */\n location?: string;\n /** URL to the operation result, or null if the operation is still in progress. */\n operationResult?: string;\n}\n\nexport function _createAsyncResponseDeserializer(item: any): _CreateAsyncResponse {\n return {\n location: item[\"location\"],\n operationResult: item[\"operationResult\"],\n };\n}\n\n/** Represents a request for a pending upload of a model version. */\nexport interface ModelPendingUploadRequest {\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 /** The type of pending upload. Only TemporaryBlobReference is supported for models. */\n pendingUploadType: \"TemporaryBlobReference\";\n}\n\nexport function modelPendingUploadRequestSerializer(item: ModelPendingUploadRequest): any {\n return {\n pendingUploadId: item[\"pendingUploadId\"],\n connectionName: item[\"connectionName\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Represents the response for a model pending upload request. */\nexport interface ModelPendingUploadResponse {\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 /** The type of pending upload. Only TemporaryBlobReference is supported for models. */\n pendingUploadType: \"TemporaryBlobReference\";\n}\n\nexport function modelPendingUploadResponseDeserializer(item: any): ModelPendingUploadResponse {\n return {\n blobReference: blobReferenceDeserializer(item[\"blobReference\"]),\n pendingUploadId: item[\"pendingUploadId\"],\n version: item[\"version\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Request to fetch credentials for a model asset. */\nexport interface ModelCredentialRequest {\n /** Blob URI of the model asset to fetch credentials for. */\n blobUri: string;\n}\n\nexport function modelCredentialRequestSerializer(item: ModelCredentialRequest): any {\n return { blobUri: item[\"blobUri\"] };\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. If `true` the scan outputs conversation not evaluation result. The service defaults to `false` if a value is not specified by the caller. */\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?: RedTeamTargetConfigUnion;\n}\n\nexport function redTeamSerializer(item: RedTeam): any {\n return {\n displayName: item[\"displayName\"],\n numTurns: item[\"numTurns\"],\n attackStrategies: item[\"attackStrategies\"],\n simulationOnly: item[\"simulationOnly\"],\n riskCategories: item[\"riskCategories\"],\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n target: item[\"target\"] ? redTeamTargetConfigUnionSerializer(item[\"target\"]) : undefined,\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 simulationOnly: item[\"simulationOnly\"],\n riskCategories: item[\"riskCategories\"],\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n status: item[\"status\"],\n target: item[\"target\"] ? redTeamTargetConfigUnionDeserializer(item[\"target\"]) : undefined,\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 | \"ansi_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\n/** Abstract class for target configuration. */\nexport interface RedTeamTargetConfig {\n /** Type of the model configuration. */\n /** The discriminator possible values: AzureOpenAIModel */\n type: string;\n}\n\nexport function redTeamTargetConfigSerializer(item: RedTeamTargetConfig): any {\n return { type: item[\"type\"] };\n}\n\nexport function redTeamTargetConfigDeserializer(item: any): RedTeamTargetConfig {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RedTeamTargetConfigUnion */\nexport type RedTeamTargetConfigUnion = AzureOpenAIModelConfiguration | RedTeamTargetConfig;\n\nexport function redTeamTargetConfigUnionSerializer(item: RedTeamTargetConfigUnion): any {\n switch (item.type) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationSerializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return redTeamTargetConfigSerializer(item);\n }\n}\n\nexport function redTeamTargetConfigUnionDeserializer(item: any): RedTeamTargetConfigUnion {\n switch (item[\"type\"]) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationDeserializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return redTeamTargetConfigDeserializer(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 RedTeamTargetConfig {\n /** The type discriminator, always 'AzureOpenAIModel'. */\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 { type: item[\"type\"], modelDeploymentName: item[\"modelDeploymentName\"] };\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\nexport function routineTriggerUnionRecordSerializer(\n item: Record<string, RoutineTrigger>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : routineTriggerUnionSerializer(item[key]);\n });\n return result;\n}\n\nexport function routineTriggerUnionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, RoutineTrigger> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : routineTriggerUnionDeserializer(item[key]);\n });\n return result;\n}\n\n/** Base model for a routine trigger. */\nexport interface RoutineTrigger {\n /** The trigger type. */\n /** The discriminator possible values: schedule, timer, github_issue, custom */\n type: RoutineTriggerType;\n}\n\nexport function routineTriggerSerializer(item: RoutineTrigger): any {\n return { type: item[\"type\"] };\n}\n\nexport function routineTriggerDeserializer(item: any): RoutineTrigger {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RoutineTriggerUnion */\nexport type RoutineTriggerUnion =\n | ScheduleRoutineTrigger\n | TimerRoutineTrigger\n | GitHubIssueRoutineTrigger\n | CustomRoutineTrigger\n | RoutineTrigger;\n\nexport function routineTriggerUnionSerializer(item: RoutineTriggerUnion): any {\n switch (item.type) {\n case \"schedule\":\n return scheduleRoutineTriggerSerializer(item as ScheduleRoutineTrigger);\n\n case \"timer\":\n return timerRoutineTriggerSerializer(item as TimerRoutineTrigger);\n\n case \"github_issue\":\n return gitHubIssueRoutineTriggerSerializer(item as GitHubIssueRoutineTrigger);\n\n case \"custom\":\n return customRoutineTriggerSerializer(item as CustomRoutineTrigger);\n\n default:\n return routineTriggerSerializer(item);\n }\n}\n\nexport function routineTriggerUnionDeserializer(item: any): RoutineTriggerUnion {\n switch (item[\"type\"]) {\n case \"schedule\":\n return scheduleRoutineTriggerDeserializer(item as ScheduleRoutineTrigger);\n\n case \"timer\":\n return timerRoutineTriggerDeserializer(item as TimerRoutineTrigger);\n\n case \"github_issue\":\n return gitHubIssueRoutineTriggerDeserializer(item as GitHubIssueRoutineTrigger);\n\n case \"custom\":\n return customRoutineTriggerDeserializer(item as CustomRoutineTrigger);\n\n default:\n return routineTriggerDeserializer(item);\n }\n}\n\n/** The discriminator values supported for routine triggers. */\nexport type RoutineTriggerType = \"custom\" | \"github_issue\" | \"schedule\" | \"timer\";\n\n/** A recurring cron-based routine trigger. */\nexport interface ScheduleRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"schedule\";\n /** A 5-field cron expression. The service enforces a minimum interval of five minutes by default. */\n cron_expression: string;\n /** An IANA or Windows time zone identifier for the schedule. */\n time_zone: string;\n}\n\nexport function scheduleRoutineTriggerSerializer(item: ScheduleRoutineTrigger): any {\n return {\n type: item[\"type\"],\n cron_expression: item[\"cron_expression\"],\n time_zone: item[\"time_zone\"],\n };\n}\n\nexport function scheduleRoutineTriggerDeserializer(item: any): ScheduleRoutineTrigger {\n return {\n type: item[\"type\"],\n cron_expression: item[\"cron_expression\"],\n time_zone: item[\"time_zone\"],\n };\n}\n\n/** A one-shot timer routine trigger. */\nexport interface TimerRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"timer\";\n /** The UTC date and time at which the timer fires. */\n at?: Date;\n}\n\nexport function timerRoutineTriggerSerializer(item: TimerRoutineTrigger): any {\n return { type: item[\"type\"], at: !item[\"at\"] ? item[\"at\"] : item[\"at\"].toISOString() };\n}\n\nexport function timerRoutineTriggerDeserializer(item: any): TimerRoutineTrigger {\n return {\n type: item[\"type\"],\n at: !item[\"at\"] ? item[\"at\"] : new Date(item[\"at\"]),\n };\n}\n\n/** A GitHub issue routine trigger. */\nexport interface GitHubIssueRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"github_issue\";\n /** The workspace connection identifier that resolves the GitHub configuration for the trigger. */\n connection_id: string;\n /** The GitHub owner or organization that scopes which issues can fire the trigger. */\n owner: string;\n /** The GitHub repository filter that scopes which issues can fire the trigger. */\n repository: string;\n /** The GitHub issue event that fires the routine. */\n issue_event: GitHubIssueEvent;\n}\n\nexport function gitHubIssueRoutineTriggerSerializer(item: GitHubIssueRoutineTrigger): any {\n return {\n type: item[\"type\"],\n connection_id: item[\"connection_id\"],\n owner: item[\"owner\"],\n repository: item[\"repository\"],\n issue_event: item[\"issue_event\"],\n };\n}\n\nexport function gitHubIssueRoutineTriggerDeserializer(item: any): GitHubIssueRoutineTrigger {\n return {\n type: item[\"type\"],\n connection_id: item[\"connection_id\"],\n owner: item[\"owner\"],\n repository: item[\"repository\"],\n issue_event: item[\"issue_event\"],\n };\n}\n\n/** Known GitHub issue events that can fire a routine. */\nexport type GitHubIssueEvent = \"opened\" | \"closed\";\n\n/** A custom event routine trigger. */\nexport interface CustomRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"custom\";\n /** The external provider that emits the custom event. */\n provider: string;\n /** The provider-specific event name that fires the routine. */\n event_name?: string;\n /** Provider-specific trigger parameters. */\n parameters: Record<string, any>;\n}\n\nexport function customRoutineTriggerSerializer(item: CustomRoutineTrigger): any {\n return {\n type: item[\"type\"],\n provider: item[\"provider\"],\n event_name: item[\"event_name\"],\n parameters: item[\"parameters\"],\n };\n}\n\nexport function customRoutineTriggerDeserializer(item: any): CustomRoutineTrigger {\n return {\n type: item[\"type\"],\n provider: item[\"provider\"],\n event_name: item[\"event_name\"],\n parameters: item[\"parameters\"],\n };\n}\n\n/** Base model for a routine action. */\nexport interface RoutineAction {\n /** The action type. */\n /** The discriminator possible values: invoke_agent_responses_api, invoke_agent_invocations_api */\n type: RoutineActionType;\n}\n\nexport function routineActionSerializer(item: RoutineAction): any {\n return { type: item[\"type\"] };\n}\n\nexport function routineActionDeserializer(item: any): RoutineAction {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RoutineActionUnion */\nexport type RoutineActionUnion =\n InvokeAgentResponsesApiRoutineAction | InvokeAgentInvocationsApiRoutineAction | RoutineAction;\n\nexport function routineActionUnionSerializer(item: RoutineActionUnion): any {\n switch (item.type) {\n case \"invoke_agent_responses_api\":\n return invokeAgentResponsesApiRoutineActionSerializer(\n item as InvokeAgentResponsesApiRoutineAction,\n );\n\n case \"invoke_agent_invocations_api\":\n return invokeAgentInvocationsApiRoutineActionSerializer(\n item as InvokeAgentInvocationsApiRoutineAction,\n );\n\n default:\n return routineActionSerializer(item);\n }\n}\n\nexport function routineActionUnionDeserializer(item: any): RoutineActionUnion {\n switch (item[\"type\"]) {\n case \"invoke_agent_responses_api\":\n return invokeAgentResponsesApiRoutineActionDeserializer(\n item as InvokeAgentResponsesApiRoutineAction,\n );\n\n case \"invoke_agent_invocations_api\":\n return invokeAgentInvocationsApiRoutineActionDeserializer(\n item as InvokeAgentInvocationsApiRoutineAction,\n );\n\n default:\n return routineActionDeserializer(item);\n }\n}\n\n/** The discriminator values supported for routine actions. */\nexport type RoutineActionType = \"invoke_agent_responses_api\" | \"invoke_agent_invocations_api\";\n\n/** Dispatches a routine through the responses API. Exactly one of agent_name or agent_endpoint_id must be provided. */\nexport interface InvokeAgentResponsesApiRoutineAction extends RoutineAction {\n /** The action type. */\n type: \"invoke_agent_responses_api\";\n /** The project-scoped agent name for routine dispatch. */\n agent_name?: string;\n /** Legacy endpoint-scoped agent identifier for routine dispatch. */\n agent_endpoint_id?: string;\n /** Static JSON value sent as the complete downstream input when the routine fires. The value is passed through as-is; no templating is applied. */\n input?: any;\n /** An optional existing conversation identifier to continue during the downstream dispatch. */\n conversation?: string;\n}\n\nexport function invokeAgentResponsesApiRoutineActionSerializer(\n item: InvokeAgentResponsesApiRoutineAction,\n): any {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n conversation: item[\"conversation\"],\n };\n}\n\nexport function invokeAgentResponsesApiRoutineActionDeserializer(\n item: any,\n): InvokeAgentResponsesApiRoutineAction {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n conversation: item[\"conversation\"],\n };\n}\n\n/** Dispatches a routine through the raw invocations API. Exactly one of agent_name or agent_endpoint_id must be provided. */\nexport interface InvokeAgentInvocationsApiRoutineAction extends RoutineAction {\n /** The action type. */\n type: \"invoke_agent_invocations_api\";\n /** The project-scoped agent name for routine dispatch. */\n agent_name?: string;\n /** Legacy endpoint-scoped agent identifier for routine dispatch. */\n agent_endpoint_id?: string;\n /** Static JSON value sent as the complete downstream input when the routine fires. The value is passed through as-is; no templating is applied. */\n input?: any;\n /** An optional existing hosted-agent session identifier to continue during the downstream dispatch. */\n session_id?: string;\n}\n\nexport function invokeAgentInvocationsApiRoutineActionSerializer(\n item: InvokeAgentInvocationsApiRoutineAction,\n): any {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n session_id: item[\"session_id\"],\n };\n}\n\nexport function invokeAgentInvocationsApiRoutineActionDeserializer(\n item: any,\n): InvokeAgentInvocationsApiRoutineAction {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n session_id: item[\"session_id\"],\n };\n}\n\n/** A routine definition returned by the service. */\nexport interface Routine {\n /** The routine name. */\n name?: string;\n /** A human-readable description of the routine. */\n description?: string;\n /** Whether the routine is enabled. */\n enabled: boolean;\n /** The triggers configured for the routine. */\n triggers?: Record<string, RoutineTriggerUnion>;\n /** The action executed when the routine fires. */\n action?: RoutineActionUnion;\n /** The time when the routine was created. */\n created_at?: Date;\n /** The time when the routine was last updated. */\n updated_at?: Date;\n}\n\nexport function routineDeserializer(item: any): Routine {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : routineTriggerUnionRecordDeserializer(item[\"triggers\"]),\n action: !item[\"action\"] ? item[\"action\"] : routineActionUnionDeserializer(item[\"action\"]),\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n updated_at: !item[\"updated_at\"] ? item[\"updated_at\"] : new Date(item[\"updated_at\"] * 1000),\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _PagedResultWithNextLinkRoutine {\n /** The requested list of items. */\n data: Routine[];\n /** The URL to fetch the next page of results, or absent if there are no additional pages. */\n next_link?: string;\n}\n\nexport function _pagedResultWithNextLinkRoutineDeserializer(\n item: any,\n): _PagedResultWithNextLinkRoutine {\n return {\n data: routineArrayDeserializer(item[\"data\"]),\n next_link: item[\"next_link\"],\n };\n}\n\nexport function routineArrayDeserializer(result: Array<Routine>): any[] {\n return (result ?? []).map((item) => {\n return routineDeserializer(item);\n });\n}\n\n/** The response data for a requested list of items. */\nexport interface _PagedResultWithNextLinkRoutineRun {\n /** The requested list of items. */\n data: RoutineRun[];\n /** The URL to fetch the next page of results, or absent if there are no additional pages. */\n next_link?: string;\n}\n\nexport function _pagedResultWithNextLinkRoutineRunDeserializer(\n item: any,\n): _PagedResultWithNextLinkRoutineRun {\n return {\n data: routineRunArrayDeserializer(item[\"data\"]),\n next_link: item[\"next_link\"],\n };\n}\n\nexport function routineRunArrayDeserializer(result: Array<RoutineRun>): any[] {\n return result.map((item) => {\n return routineRunDeserializer(item);\n });\n}\n\n/** A single routine run returned from the run history API. */\nexport interface RoutineRun {\n /** The unique run identifier for the routine attempt. */\n readonly id: string;\n /** The run status. */\n status?: RoutineRunStatus;\n /** The AgentExtensions lifecycle phase for the routine attempt. */\n phase?: RoutineRunPhase;\n /** The trigger type that produced the routine attempt. */\n trigger_type?: RoutineTriggerType;\n /** The configured trigger name that produced the routine attempt. */\n trigger_name?: string;\n /** The event payload captured from the event that triggered the routine attempt, when available. */\n trigger_event_payload?: Record<string, any>;\n /** The source path that created the routine attempt. */\n attempt_source?: RoutineAttemptSource;\n /** The action type dispatched for the routine attempt. */\n action_type?: RoutineActionType;\n /** The project-scoped agent identifier recorded for the routine attempt. */\n agent_id?: string;\n /** The legacy endpoint-scoped agent identifier recorded for the routine attempt. */\n agent_endpoint_id?: string;\n /** The conversation identifier used by a responses API dispatch. */\n conversation_id?: string;\n /** The hosted-agent session identifier used by an invocations API dispatch. */\n session_id?: string;\n /** The logical trigger time recorded for the routine attempt. */\n triggered_at?: Date;\n /** The scheduled fire time recorded for timer and schedule deliveries. */\n scheduled_fire_at?: Date;\n /** The time when the underlying run started. */\n started_at?: Date;\n /** The time when the underlying run reached a terminal state. */\n ended_at?: Date;\n /** The dispatch identifier associated with the routine attempt. */\n dispatch_id?: string;\n /** The downstream action correlation identifier, when available. */\n action_correlation_id?: string;\n /** The downstream response or invocation identifier, when available. */\n response_id?: string;\n /** The workspace task identifier linked to the routine attempt, when available. */\n task_id?: string;\n /** The downstream error status code captured for a failed attempt, when available. */\n error_status_code?: number;\n /** The fully qualified error type captured for a failed attempt, when available. */\n error_type?: string;\n /** The truncated failure message captured for a failed attempt, when available. */\n error_message?: string;\n}\n\nexport function routineRunDeserializer(item: any): RoutineRun {\n return {\n id: item[\"id\"],\n status: !item[\"status\"] ? item[\"status\"] : routineRunStatusDeserializer(item[\"status\"]),\n phase: item[\"phase\"],\n trigger_type: item[\"trigger_type\"],\n trigger_name: item[\"trigger_name\"],\n trigger_event_payload: !item[\"trigger_event_payload\"]\n ? item[\"trigger_event_payload\"]\n : Object.fromEntries(\n Object.entries(item[\"trigger_event_payload\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n attempt_source: item[\"attempt_source\"],\n action_type: item[\"action_type\"],\n agent_id: item[\"agent_id\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n conversation_id: item[\"conversation_id\"],\n session_id: item[\"session_id\"],\n triggered_at: !item[\"triggered_at\"]\n ? item[\"triggered_at\"]\n : new Date(item[\"triggered_at\"] * 1000),\n scheduled_fire_at: !item[\"scheduled_fire_at\"]\n ? item[\"scheduled_fire_at\"]\n : new Date(item[\"scheduled_fire_at\"] * 1000),\n started_at: !item[\"started_at\"] ? item[\"started_at\"] : new Date(item[\"started_at\"] * 1000),\n ended_at: !item[\"ended_at\"] ? item[\"ended_at\"] : new Date(item[\"ended_at\"] * 1000),\n dispatch_id: item[\"dispatch_id\"],\n action_correlation_id: item[\"action_correlation_id\"],\n response_id: item[\"response_id\"],\n task_id: item[\"task_id\"],\n error_status_code: item[\"error_status_code\"],\n error_type: item[\"error_type\"],\n error_message: item[\"error_message\"],\n };\n}\n\n/** The status of a routine run. */\nexport type RoutineRunStatus = string;\n\nexport function routineRunStatusDeserializer(item: any): RoutineRunStatus {\n return item;\n}\n\n/** Known lifecycle phases recorded for a routine run. */\nexport type RoutineRunPhase = \"queued\" | \"dispatching\" | \"completed\" | \"failed\";\n\n/** Known source paths that can produce a routine run. */\nexport type RoutineAttemptSource =\n \"event_fire\" | \"manual_dispatch\" | \"queued_dispatch\" | \"schedule_delivery\" | \"timer_delivery\";\n\n/** Base model for a manual dispatch payload. */\nexport interface RoutineDispatchPayload {\n /** The manual dispatch payload type. */\n /** The discriminator possible values: invoke_agent_responses_api, invoke_agent_invocations_api */\n type: RoutineDispatchPayloadType;\n}\n\nexport function routineDispatchPayloadSerializer(item: RoutineDispatchPayload): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for RoutineDispatchPayloadUnion */\nexport type RoutineDispatchPayloadUnion =\n | InvokeAgentResponsesApiDispatchPayload\n | InvokeAgentInvocationsApiDispatchPayload\n | RoutineDispatchPayload;\n\nexport function routineDispatchPayloadUnionSerializer(item: RoutineDispatchPayloadUnion): any {\n switch (item.type) {\n case \"invoke_agent_responses_api\":\n return invokeAgentResponsesApiDispatchPayloadSerializer(\n item as InvokeAgentResponsesApiDispatchPayload,\n );\n\n case \"invoke_agent_invocations_api\":\n return invokeAgentInvocationsApiDispatchPayloadSerializer(\n item as InvokeAgentInvocationsApiDispatchPayload,\n );\n\n default:\n return routineDispatchPayloadSerializer(item);\n }\n}\n\n/** The discriminator values supported for manual routine dispatch payloads. */\nexport type RoutineDispatchPayloadType =\n \"invoke_agent_responses_api\" | \"invoke_agent_invocations_api\";\n\n/** A manual payload used to test a responses API routine dispatch. */\nexport interface InvokeAgentResponsesApiDispatchPayload extends RoutineDispatchPayload {\n /** The manual dispatch payload type. */\n type: \"invoke_agent_responses_api\";\n /** The JSON value sent as the complete downstream responses input. The value is passed through as-is and can be an object, string, number, boolean, array, or null. */\n input: unknown;\n}\n\nexport function invokeAgentResponsesApiDispatchPayloadSerializer(\n item: InvokeAgentResponsesApiDispatchPayload,\n): any {\n return { type: item[\"type\"], input: item[\"input\"] };\n}\n\n/** A manual payload used to test an invocations API routine dispatch. */\nexport interface InvokeAgentInvocationsApiDispatchPayload extends RoutineDispatchPayload {\n /** The manual dispatch payload type. */\n type: \"invoke_agent_invocations_api\";\n /** The JSON value sent as the complete downstream invocations input. The value is passed through as-is and can be an object, string, number, boolean, array, or null. */\n input: unknown;\n}\n\nexport function invokeAgentInvocationsApiDispatchPayloadSerializer(\n item: InvokeAgentInvocationsApiDispatchPayload,\n): any {\n return { type: item[\"type\"], input: item[\"input\"] };\n}\n\n/** Identifiers returned after a routine dispatch is queued. */\nexport interface DispatchRoutineResponse {\n /** The dispatch identifier created for the routine dispatch. */\n dispatch_id?: string;\n /** A downstream action correlation identifier, when available. */\n action_correlation_id?: string;\n /** A workspace task identifier created for the dispatch, when available. */\n task_id?: string;\n}\n\nexport function dispatchRoutineResponseDeserializer(item: any): DispatchRoutineResponse {\n return {\n dispatch_id: item[\"dispatch_id\"],\n action_correlation_id: item[\"action_correlation_id\"],\n task_id: item[\"task_id\"],\n };\n}\n\n/** Schedule model. */\nexport interface Schedule {\n /** Identifier of the schedule. */\n readonly schedule_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 schedule_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\" | \"Updating\" | \"Deleting\" | \"Succeeded\" | \"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 /** The type discriminator, always 'Cron'. */\n type: \"Cron\";\n /** Cron expression that defines the schedule frequency. */\n expression: string;\n /** Time zone for the cron schedule. Defaults to `UTC`. */\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. Defaults to `UTC`. */\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 /** The type discriminator, always 'Hourly'. */\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\"],\n };\n}\n\nexport function dailyRecurrenceScheduleDeserializer(item: any): DailyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n hours: item[\"hours\"],\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\"],\n };\n}\n\nexport function weeklyRecurrenceScheduleDeserializer(item: any): WeeklyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfWeek: item[\"daysOfWeek\"],\n };\n}\n\n/** Days of the week for recurrence schedule. */\nexport type DayOfWeek =\n \"Sunday\" | \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"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\"],\n };\n}\n\nexport function monthlyRecurrenceScheduleDeserializer(item: any): MonthlyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfMonth: item[\"daysOfMonth\"],\n };\n}\n\n/** One-time trigger. */\nexport interface OneTimeTrigger extends Trigger {\n /** The type discriminator, always 'OneTime'. */\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. Defaults to `UTC`. */\n timeZone?: string;\n}\n\nexport function oneTimeTriggerSerializer(item: OneTimeTrigger): any {\n return { type: item[\"type\"], triggerAt: item[\"triggerAt\"], timeZone: item[\"timeZone\"] };\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 of the task, which is always 'Evaluation'. */\n type: \"Evaluation\";\n /** Identifier of the evaluation group. */\n evalId: string;\n /** The evaluation run payload. */\n evalRun: Record<string, unknown>;\n}\n\nexport function evaluationScheduleTaskSerializer(item: EvaluationScheduleTask): any {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n evalId: item[\"evalId\"],\n evalRun: 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: item[\"evalRun\"],\n };\n}\n\n/** Insight task for the schedule. */\nexport interface InsightScheduleTask extends ScheduleTask {\n /** Type of the task, which is always 'Insight'. */\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 runId: 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 runId: 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/** A skill resource. */\nexport interface Skill {\n /** The unique identifier of the skill. */\n id: string;\n /** The unique name of the skill. */\n name: string;\n /** A human-readable description of the skill. */\n description: string;\n /** The Unix timestamp (seconds) when the skill was created. */\n created_at: Date;\n /** The default version for the skill. Can be changed via updateSkill. */\n default_version: string;\n /** The latest version for the skill. */\n latest_version: string;\n}\n\nexport function skillDeserializer(item: any): Skill {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n default_version: item[\"default_version\"],\n latest_version: item[\"latest_version\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultSkill {\n /** The requested list of items. */\n data: Skill[];\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 _agentsPagedResultSkillDeserializer(item: any): _AgentsPagedResultSkill {\n return {\n data: skillArrayDeserializer(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 skillArrayDeserializer(result: Array<Skill>): any[] {\n return result.map((item) => {\n return skillDeserializer(item);\n });\n}\n\n/** A deleted skill. */\nexport interface DeleteSkillResponse {\n /** The unique identifier of the deleted skill. */\n id: string;\n /** The unique name of the skill. */\n name: string;\n /** Whether the skill was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteSkillResponseDeserializer(item: any): DeleteSkillResponse {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Inline content for defining a simple skill without uploading files. Follows the agentskills.io SKILL.md specification. */\nexport interface SkillInlineContent {\n /** A human-readable description of what the skill does and when to use it. */\n description: string;\n /** The skill instructions in markdown format. This is the body content of the SKILL.md file. */\n instructions: string;\n /** License name or reference to a bundled license file. */\n license?: string;\n /** Environment requirements or compatibility notes for the skill. */\n compatibility?: string;\n /** Arbitrary key-value metadata for additional properties. */\n metadata?: Record<string, string>;\n /** List of pre-approved tools the skill may use. Experimental. */\n allowed_tools?: string[];\n}\n\nexport function skillInlineContentSerializer(item: SkillInlineContent): any {\n return {\n description: item[\"description\"],\n instructions: item[\"instructions\"],\n license: item[\"license\"],\n compatibility: item[\"compatibility\"],\n metadata: item[\"metadata\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : item[\"allowed_tools\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** A specific version of a skill. */\nexport interface SkillVersion {\n /** The unique identifier of the skill version. */\n id: string;\n /** The identifier of the parent skill. */\n skill_id: string;\n /** The name of the skill version. */\n name: string;\n /** The version identifier. Skill versions are immutable. */\n version: string;\n /** A human-readable description of the skill version. */\n description: string;\n /** The Unix timestamp (seconds) when the skill version was created. */\n created_at: Date;\n}\n\nexport function skillVersionDeserializer(item: any): SkillVersion {\n return {\n id: item[\"id\"],\n skill_id: item[\"skill_id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n };\n}\n\n/** Multipart request body for creating a skill version from files. Accepts either a single zip file or multiple individual skill files (directory upload). For zip uploads, the server extracts and validates contents. For directory uploads, files are validated as-is. */\nexport interface CreateSkillVersionFromFilesBody {\n /** Skill files to upload. Upload a single zip file or multiple individual files with relative paths. */\n files: Array<FileContents | { contents: FileContents; contentType?: string; filename?: string }>;\n /** Whether to set this version as the default. Defaults to false. */\n default?: boolean;\n}\n\nexport function createSkillVersionFromFilesBodySerializer(\n item: CreateSkillVersionFromFilesBody,\n): any {\n return [\n ...item[\"files\"].map((x: any) => createFilePartDescriptor(\"files\", x)),\n ...(item[\"default\"] === undefined ? [] : [{ name: \"default\", body: item[\"default\"] }]),\n ];\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultSkillVersion {\n /** The requested list of items. */\n data: SkillVersion[];\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 _agentsPagedResultSkillVersionDeserializer(\n item: any,\n): _AgentsPagedResultSkillVersion {\n return {\n data: skillVersionArrayDeserializer(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 skillVersionArrayDeserializer(result: Array<SkillVersion>): any[] {\n return result.map((item) => {\n return skillVersionDeserializer(item);\n });\n}\n\n/** A deleted skill version. */\nexport interface DeleteSkillVersionResponse {\n /** The unique identifier of the deleted skill version. */\n id: string;\n /** The name of the skill. */\n name: string;\n /** Whether the skill version was successfully deleted. */\n deleted: boolean;\n /** The version that was deleted. */\n version: string;\n}\n\nexport function deleteSkillVersionResponseDeserializer(item: any): DeleteSkillVersionResponse {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n version: item[\"version\"],\n };\n}\n\n/** Data Generation Job resource. */\nexport interface DataGenerationJob {\n /** Server-assigned unique identifier. */\n readonly id?: string;\n /** Caller-supplied inputs. */\n inputs?: DataGenerationJobInputs;\n /** Result produced on success. */\n readonly result?: DataGenerationJobResult;\n /** Current lifecycle status. */\n readonly status?: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time (seconds since January 1, 1970). */\n readonly created_at?: Date;\n /** The timestamp when the job was finished, represented in Unix time (seconds since January 1, 1970). */\n readonly finished_at?: Date;\n}\n\nexport function dataGenerationJobSerializer(item: DataGenerationJob): any {\n return {\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : dataGenerationJobInputsSerializer(item[\"inputs\"]),\n };\n}\n\nexport function dataGenerationJobDeserializer(item: any): DataGenerationJob {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : dataGenerationJobInputsDeserializer(item[\"inputs\"]),\n result: !item[\"result\"] ? item[\"result\"] : dataGenerationJobResultDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : apiErrorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n finished_at: !item[\"finished_at\"] ? item[\"finished_at\"] : new Date(item[\"finished_at\"] * 1000),\n };\n}\n\n/** Caller-supplied inputs for a data generation job. */\nexport interface DataGenerationJobInputs {\n /** The display name of the data generation job. */\n name: string;\n /** The sources used for the data generation job. */\n sources: DataGenerationJobSourceUnion[];\n /** The options for the data generation job. */\n options: DataGenerationJobOptionsUnion;\n /** The scenario of the data generation job. Either for fine-tuning or evaluation. */\n scenario: DataGenerationJobScenario;\n /** Optional caller-supplied metadata for the job's output. See individual fields for whether they apply to file outputs (fine-tuning scenarios), dataset outputs (evaluation scenario), or both. */\n output_options?: DataGenerationJobOutputOptions;\n}\n\nexport function dataGenerationJobInputsSerializer(item: DataGenerationJobInputs): any {\n return {\n name: item[\"name\"],\n sources: dataGenerationJobSourceUnionArraySerializer(item[\"sources\"]),\n options: dataGenerationJobOptionsUnionSerializer(item[\"options\"]),\n scenario: item[\"scenario\"],\n output_options: !item[\"output_options\"]\n ? item[\"output_options\"]\n : dataGenerationJobOutputOptionsSerializer(item[\"output_options\"]),\n };\n}\n\nexport function dataGenerationJobInputsDeserializer(item: any): DataGenerationJobInputs {\n return {\n name: item[\"name\"],\n sources: dataGenerationJobSourceUnionArrayDeserializer(item[\"sources\"]),\n options: dataGenerationJobOptionsUnionDeserializer(item[\"options\"]),\n scenario: item[\"scenario\"],\n output_options: !item[\"output_options\"]\n ? item[\"output_options\"]\n : dataGenerationJobOutputOptionsDeserializer(item[\"output_options\"]),\n };\n}\n\nexport function dataGenerationJobSourceUnionArraySerializer(\n result: Array<DataGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return dataGenerationJobSourceUnionSerializer(item);\n });\n}\n\nexport function dataGenerationJobSourceUnionArrayDeserializer(\n result: Array<DataGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return dataGenerationJobSourceUnionDeserializer(item);\n });\n}\n\n/** The base source model for data generation jobs. */\nexport interface DataGenerationJobSource {\n /** The type of source. */\n /** The discriminator possible values: prompt, agent, traces, file */\n type: DataGenerationJobSourceType;\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n}\n\nexport function dataGenerationJobSourceSerializer(item: DataGenerationJobSource): any {\n return { type: item[\"type\"], description: item[\"description\"] };\n}\n\nexport function dataGenerationJobSourceDeserializer(item: any): DataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n };\n}\n\n/** Alias for DataGenerationJobSourceUnion */\nexport type DataGenerationJobSourceUnion =\n | PromptDataGenerationJobSource\n | AgentDataGenerationJobSource\n | TracesDataGenerationJobSource\n | FileDataGenerationJobSource\n | DataGenerationJobSource;\n\nexport function dataGenerationJobSourceUnionSerializer(item: DataGenerationJobSourceUnion): any {\n switch (item.type) {\n case \"prompt\":\n return promptDataGenerationJobSourceSerializer(item as PromptDataGenerationJobSource);\n\n case \"agent\":\n return agentDataGenerationJobSourceSerializer(item as AgentDataGenerationJobSource);\n\n case \"traces\":\n return tracesDataGenerationJobSourceSerializer(item as TracesDataGenerationJobSource);\n\n case \"file\":\n return fileDataGenerationJobSourceSerializer(item as FileDataGenerationJobSource);\n\n default:\n return dataGenerationJobSourceSerializer(item);\n }\n}\n\nexport function dataGenerationJobSourceUnionDeserializer(item: any): DataGenerationJobSourceUnion {\n switch (item[\"type\"]) {\n case \"prompt\":\n return promptDataGenerationJobSourceDeserializer(item as PromptDataGenerationJobSource);\n\n case \"agent\":\n return agentDataGenerationJobSourceDeserializer(item as AgentDataGenerationJobSource);\n\n case \"traces\":\n return tracesDataGenerationJobSourceDeserializer(item as TracesDataGenerationJobSource);\n\n case \"file\":\n return fileDataGenerationJobSourceDeserializer(item as FileDataGenerationJobSource);\n\n default:\n return dataGenerationJobSourceDeserializer(item);\n }\n}\n\n/** The supported source types for data generation jobs. */\nexport type DataGenerationJobSourceType = \"prompt\" | \"agent\" | \"traces\" | \"file\";\n\n/** Prompt source for data generation jobs \u2014 inline text provided by the user. */\nexport interface PromptDataGenerationJobSource extends DataGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Prompt. */\n type: \"prompt\";\n /** Inline prompt text (e.g., agent description, policy text, supplementary context). */\n prompt: string;\n}\n\nexport function promptDataGenerationJobSourceSerializer(item: PromptDataGenerationJobSource): any {\n return { type: item[\"type\"], description: item[\"description\"], prompt: item[\"prompt\"] };\n}\n\nexport function promptDataGenerationJobSourceDeserializer(\n item: any,\n): PromptDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n prompt: item[\"prompt\"],\n };\n}\n\n/** Agent source for data generation jobs \u2014 references an agent to fetch instructions and metadata from. */\nexport interface AgentDataGenerationJobSource extends DataGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Agent. */\n type: \"agent\";\n /** The agent name to fetch instructions from. */\n agent_name: string;\n /** The agent version. If not specified, the latest version is used. */\n agent_version?: string;\n}\n\nexport function agentDataGenerationJobSourceSerializer(item: AgentDataGenerationJobSource): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\nexport function agentDataGenerationJobSourceDeserializer(item: any): AgentDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Traces source for data generation jobs \u2014 conversation traces from Application Insights. */\nexport interface TracesDataGenerationJobSource extends DataGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Traces. */\n type: \"traces\";\n /** The unique agent ID used to filter traces. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_id?: string;\n /** The agent name to fetch traces for. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_name?: string;\n /** The agent version. If not specified, traces for ALL versions of the agent are included within the time window. */\n agent_version?: string;\n /** Start of the time window (Unix timestamp in seconds) for fetching traces. */\n start_time: Date;\n /** End of the time window (Unix timestamp in seconds). Defaults to current time. */\n end_time?: Date;\n}\n\nexport function tracesDataGenerationJobSourceSerializer(item: TracesDataGenerationJobSource): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: !item[\"start_time\"]\n ? item[\"start_time\"]\n : (item[\"start_time\"].getTime() / 1000) | 0,\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : (item[\"end_time\"].getTime() / 1000) | 0,\n };\n}\n\nexport function tracesDataGenerationJobSourceDeserializer(\n item: any,\n): TracesDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: new Date(item[\"start_time\"] * 1000),\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : new Date(item[\"end_time\"] * 1000),\n };\n}\n\n/** File source for data generation jobs \u2014 Azure OpenAI file input. */\nexport interface FileDataGenerationJobSource extends DataGenerationJobSource {\n /** The source type for this job, which is File. */\n type: \"file\";\n /** Input Azure Open AI file id used for data generation. */\n id: string;\n}\n\nexport function fileDataGenerationJobSourceSerializer(item: FileDataGenerationJobSource): any {\n return { type: item[\"type\"], description: item[\"description\"], id: item[\"id\"] };\n}\n\nexport function fileDataGenerationJobSourceDeserializer(item: any): FileDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n id: item[\"id\"],\n };\n}\n\n/** Options for managing data generation jobs. */\nexport interface DataGenerationJobOptions {\n /** The data generation job type. */\n /** The discriminator possible values: simple_qna, traces, task_generation, simulation_seed, tool_use */\n type: DataGenerationJobType;\n /** Maximum number of samples to generate. */\n max_samples: number;\n /** The proportion of the generated data to be used for training when the data is used for fine-tuning. The rest will be used for validation. Value should be between 0 and 1. */\n train_split?: number;\n /** The LLM model options. */\n model_options?: DataGenerationModelOptions;\n}\n\nexport function dataGenerationJobOptionsSerializer(item: DataGenerationJobOptions): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function dataGenerationJobOptionsDeserializer(item: any): DataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** Alias for DataGenerationJobOptionsUnion */\nexport type DataGenerationJobOptionsUnion =\n | SimpleQnADataGenerationJobOptions\n | TracesDataGenerationJobOptions\n | TaskGenerationDataGenerationJobOptions\n | SimulationSeedDataGenerationJobOptions\n | ToolUseFineTuningDataGenerationJobOptions\n | DataGenerationJobOptions;\n\nexport function dataGenerationJobOptionsUnionSerializer(item: DataGenerationJobOptionsUnion): any {\n switch (item.type) {\n case \"simple_qna\":\n return simpleQnADataGenerationJobOptionsSerializer(item as SimpleQnADataGenerationJobOptions);\n\n case \"traces\":\n return tracesDataGenerationJobOptionsSerializer(item as TracesDataGenerationJobOptions);\n\n case \"simulation_seed\":\n return simulationSeedDataGenerationJobOptionsSerializer(\n item as SimulationSeedDataGenerationJobOptions,\n );\n\n case \"task_generation\":\n return taskGenerationDataGenerationJobOptionsSerializer(\n item as TaskGenerationDataGenerationJobOptions,\n );\n\n case \"tool_use\":\n return toolUseFineTuningDataGenerationJobOptionsSerializer(\n item as ToolUseFineTuningDataGenerationJobOptions,\n );\n\n default:\n return dataGenerationJobOptionsSerializer(item);\n }\n}\n\nexport function dataGenerationJobOptionsUnionDeserializer(\n item: any,\n): DataGenerationJobOptionsUnion {\n switch (item[\"type\"]) {\n case \"simple_qna\":\n return simpleQnADataGenerationJobOptionsDeserializer(\n item as SimpleQnADataGenerationJobOptions,\n );\n\n case \"traces\":\n return tracesDataGenerationJobOptionsDeserializer(item as TracesDataGenerationJobOptions);\n\n case \"simulation_seed\":\n return simulationSeedDataGenerationJobOptionsDeserializer(\n item as SimulationSeedDataGenerationJobOptions,\n );\n\n case \"task_generation\":\n return taskGenerationDataGenerationJobOptionsDeserializer(\n item as TaskGenerationDataGenerationJobOptions,\n );\n\n case \"tool_use\":\n return toolUseFineTuningDataGenerationJobOptionsDeserializer(\n item as ToolUseFineTuningDataGenerationJobOptions,\n );\n\n default:\n return dataGenerationJobOptionsDeserializer(item);\n }\n}\n\n/** The supported data generation job types. */\nexport type DataGenerationJobType =\n \"simple_qna\" | \"traces\" | \"tool_use\" | \"task_generation\" | \"simulation_seed\";\n\n/** LLM model options for data generation jobs. */\nexport interface DataGenerationModelOptions {\n /** Base model name used to generate data. */\n model: string;\n}\n\nexport function dataGenerationModelOptionsSerializer(item: DataGenerationModelOptions): any {\n return { model: item[\"model\"] };\n}\n\nexport function dataGenerationModelOptionsDeserializer(item: any): DataGenerationModelOptions {\n return {\n model: item[\"model\"],\n };\n}\n\n/** The options for a data generation job with SimpleQnA type. */\nexport interface SimpleQnADataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is SimpleQnA for this model. */\n type: \"simple_qna\";\n /** The question types to generate. Used only for fine-tuning scenarios. */\n question_types?: SimpleQnAFineTuningQuestionType[];\n}\n\nexport function simpleQnADataGenerationJobOptionsSerializer(\n item: SimpleQnADataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n question_types: !item[\"question_types\"]\n ? item[\"question_types\"]\n : item[\"question_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function simpleQnADataGenerationJobOptionsDeserializer(\n item: any,\n): SimpleQnADataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n question_types: !item[\"question_types\"]\n ? item[\"question_types\"]\n : item[\"question_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The supported question types for SimpleQnA data generation jobs used for fine-tuning scenarios. */\nexport type SimpleQnAFineTuningQuestionType = \"short_answer\" | \"long_answer\";\n\n/** The options for a data generation job with Traces type. */\nexport interface TracesDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is Traces for this model. */\n type: \"traces\";\n /** Whether to redact private content from traces. When omitted or set to true, private content is redacted. Set to false to opt out of redaction. */\n redact_private_content?: boolean;\n}\n\nexport function tracesDataGenerationJobOptionsSerializer(\n item: TracesDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n redact_private_content: item[\"redact_private_content\"],\n };\n}\n\nexport function tracesDataGenerationJobOptionsDeserializer(\n item: any,\n): TracesDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n redact_private_content: item[\"redact_private_content\"],\n };\n}\n\n/** The options for a simulation seed data generation job. Use with multiturn evaluation scenarios and with prompt, file, or agent sources. Generated dataset rows include fields such as `id`, `category`, `test_case_description`, and `desired_num_turns`. */\nexport interface SimulationSeedDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is SimulationSeed for this model. */\n type: \"simulation_seed\";\n}\n\nexport function simulationSeedDataGenerationJobOptionsSerializer(\n item: SimulationSeedDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function simulationSeedDataGenerationJobOptionsDeserializer(\n item: any,\n): SimulationSeedDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** @deprecated Use `SimulationSeedDataGenerationJobOptions` instead. */\nexport interface TaskGenerationDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type. */\n type: \"task_generation\";\n}\n\nexport function taskGenerationDataGenerationJobOptionsSerializer(\n item: TaskGenerationDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function taskGenerationDataGenerationJobOptionsDeserializer(\n item: any,\n): TaskGenerationDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** The options for a data generation job with ToolUse type. Used only for fine-tuning scenarios. */\nexport interface ToolUseFineTuningDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is ToolUse for this model. */\n type: \"tool_use\";\n}\n\nexport function toolUseFineTuningDataGenerationJobOptionsSerializer(\n item: ToolUseFineTuningDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function toolUseFineTuningDataGenerationJobOptionsDeserializer(\n item: any,\n): ToolUseFineTuningDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** The supported scenarios for a data generation job. */\nexport type DataGenerationJobScenario =\n \"supervised_finetuning\" | \"reinforcement_finetuning\" | \"evaluation\";\n\n/** Output options for data generation job. */\nexport interface DataGenerationJobOutputOptions {\n /** Name to assign to the output. Used as the filename for Azure OpenAI file outputs (fine-tuning scenarios) and as the dataset name for dataset outputs (evaluation scenario). */\n name?: string;\n /** Description to assign to the output. Applies only to dataset outputs (evaluation scenario); ignored for Azure OpenAI file outputs. */\n description?: string;\n /** Tags to assign to the output. Applies only to dataset outputs (evaluation scenario); ignored for Azure OpenAI file outputs. */\n tags?: Record<string, string>;\n}\n\nexport function dataGenerationJobOutputOptionsSerializer(\n item: DataGenerationJobOutputOptions,\n): any {\n return { name: item[\"name\"], description: item[\"description\"], tags: item[\"tags\"] };\n}\n\nexport function dataGenerationJobOutputOptionsDeserializer(\n item: any,\n): DataGenerationJobOutputOptions {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\n/** Result produced by a successful data generation job. */\nexport interface DataGenerationJobResult {\n /** The final job outputs: Azure OpenAI files for fine-tuning, or datasets for evaluation. */\n outputs?: DataGenerationJobOutputUnion[];\n /** The number of samples actually generated. */\n generated_samples: number;\n /** The token usage information for the data generation job. */\n token_usage?: DataGenerationTokenUsage;\n}\n\nexport function dataGenerationJobResultDeserializer(item: any): DataGenerationJobResult {\n return {\n outputs: !item[\"outputs\"]\n ? item[\"outputs\"]\n : dataGenerationJobOutputUnionArrayDeserializer(item[\"outputs\"]),\n generated_samples: item[\"generated_samples\"],\n token_usage: !item[\"token_usage\"]\n ? item[\"token_usage\"]\n : dataGenerationTokenUsageDeserializer(item[\"token_usage\"]),\n };\n}\n\nexport function dataGenerationJobOutputUnionArrayDeserializer(\n result: Array<DataGenerationJobOutputUnion>,\n): any[] {\n return result.map((item) => {\n return dataGenerationJobOutputUnionDeserializer(item);\n });\n}\n\n/** Output information for a data generation job. */\nexport interface DataGenerationJobOutput {\n /** The type of the output. */\n /** The discriminator possible values: file, dataset */\n type: DataGenerationJobOutputType;\n}\n\nexport function dataGenerationJobOutputDeserializer(item: any): DataGenerationJobOutput {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for DataGenerationJobOutputUnion */\nexport type DataGenerationJobOutputUnion =\n FileDataGenerationJobOutput | DatasetDataGenerationJobOutput | DataGenerationJobOutput;\n\nexport function dataGenerationJobOutputUnionDeserializer(item: any): DataGenerationJobOutputUnion {\n switch (item[\"type\"]) {\n case \"file\":\n return fileDataGenerationJobOutputDeserializer(item as FileDataGenerationJobOutput);\n\n case \"dataset\":\n return datasetDataGenerationJobOutputDeserializer(item as DatasetDataGenerationJobOutput);\n\n default:\n return dataGenerationJobOutputDeserializer(item);\n }\n}\n\n/** The supported output file types for a data generation job. */\nexport type DataGenerationJobOutputType = \"file\" | \"dataset\";\n\n/** Azure OpenAI file output for a data generation job. */\nexport interface FileDataGenerationJobOutput extends DataGenerationJobOutput {\n /** Azure OpenAI file output. */\n type: \"file\";\n /** The id of the output Azure OpenAI file. */\n readonly id: string;\n /** The filename of the output Azure OpenAI file. */\n readonly filename: string;\n}\n\nexport function fileDataGenerationJobOutputDeserializer(item: any): FileDataGenerationJobOutput {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n filename: item[\"filename\"],\n };\n}\n\n/** Dataset output for a data generation job. */\nexport interface DatasetDataGenerationJobOutput extends DataGenerationJobOutput {\n /** Dataset output. */\n type: \"dataset\";\n /** The id of the output dataset created. */\n readonly id?: string;\n /** The name of the output dataset. */\n readonly name?: string;\n /** The version of the output dataset. */\n readonly version?: string;\n /** Description of the output dataset. */\n readonly description?: string;\n /** Tag dictionary of the output dataset. */\n readonly tags?: Record<string, string>;\n}\n\nexport function datasetDataGenerationJobOutputDeserializer(\n item: any,\n): DatasetDataGenerationJobOutput {\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/** Token usage information for a data generation job. */\nexport interface DataGenerationTokenUsage {\n /** The number of prompt tokens used. */\n readonly prompt_tokens: number;\n /** The number of completion tokens generated. */\n readonly completion_tokens: number;\n /** Total number of tokens used. */\n readonly total_tokens: number;\n}\n\nexport function dataGenerationTokenUsageDeserializer(item: any): DataGenerationTokenUsage {\n return {\n prompt_tokens: item[\"prompt_tokens\"],\n completion_tokens: item[\"completion_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultDataGenerationJob {\n /** The requested list of items. */\n data: DataGenerationJob[];\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 _agentsPagedResultDataGenerationJobDeserializer(\n item: any,\n): _AgentsPagedResultDataGenerationJob {\n return {\n data: dataGenerationJobArrayDeserializer(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 dataGenerationJobArraySerializer(result: Array<DataGenerationJob>): any[] {\n return result.map((item) => {\n return dataGenerationJobSerializer(item);\n });\n}\n\nexport function dataGenerationJobArrayDeserializer(result: Array<DataGenerationJob>): any[] {\n return result.map((item) => {\n return dataGenerationJobDeserializer(item);\n });\n}\n\n/** Agent optimization job resource \u2014 a long-running job that optimizes an agent's configuration (instructions, model, skills, tools) to maximize evaluation scores. On success, the result contains scored candidates. */\nexport interface AgentOptimizationJob {\n /** Server-assigned unique identifier. */\n readonly id: string;\n /** Caller-supplied inputs. */\n inputs?: AgentOptimizationJobInputs;\n /** Result produced on success. */\n readonly result?: AgentOptimizationJobResult;\n /** Current lifecycle status. */\n readonly status: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time. */\n readonly created_at: Date;\n /** The timestamp when the job was last updated, represented in Unix time. */\n readonly updated_at: Date;\n /** Progress snapshot. May be present in terminal states reflecting last-known progress. */\n readonly progress?: AgentOptimizationJobProgress;\n /** Non-fatal warnings emitted at any point during optimization. */\n readonly warnings?: string[];\n}\n\nexport function agentOptimizationJobSerializer(item: AgentOptimizationJob): any {\n return {\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : agentOptimizationJobInputsSerializer(item[\"inputs\"]),\n };\n}\n\nexport function agentOptimizationJobDeserializer(item: any): AgentOptimizationJob {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"]\n ? item[\"inputs\"]\n : agentOptimizationJobInputsDeserializer(item[\"inputs\"]),\n result: !item[\"result\"]\n ? item[\"result\"]\n : agentOptimizationJobResultDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : apiErrorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n progress: !item[\"progress\"]\n ? item[\"progress\"]\n : agentOptimizationJobProgressDeserializer(item[\"progress\"]),\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : item[\"warnings\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Caller-supplied inputs for an optimization job. */\nexport interface AgentOptimizationJobInputs {\n /** The agent (and pinned version) being optimized. */\n agent: OptimizedAgentIdentifier;\n /** Training dataset \u2014 either inline items or a reference to a registered dataset. Required. */\n train_dataset: AgentOptimizationDatasetInputUnion;\n /** Optional held-out validation dataset for measuring generalization of the final candidate. */\n validation_dataset?: AgentOptimizationDatasetInputUnion;\n /** Job-level evaluators referenced by name and optional version. Required; at least one must be provided. */\n evaluators: AgentOptimizationEvaluatorRef[];\n /** Tuning knobs and run-mode. */\n options?: AgentOptimizationOptions;\n}\n\nexport function agentOptimizationJobInputsSerializer(item: AgentOptimizationJobInputs): any {\n return {\n agent: optimizedAgentIdentifierSerializer(item[\"agent\"]),\n train_dataset: agentOptimizationDatasetInputUnionSerializer(item[\"train_dataset\"]),\n validation_dataset: !item[\"validation_dataset\"]\n ? item[\"validation_dataset\"]\n : agentOptimizationDatasetInputUnionSerializer(item[\"validation_dataset\"]),\n evaluators: agentOptimizationEvaluatorRefArraySerializer(item[\"evaluators\"]),\n options: !item[\"options\"]\n ? item[\"options\"]\n : agentOptimizationOptionsSerializer(item[\"options\"]),\n };\n}\n\nexport function agentOptimizationJobInputsDeserializer(item: any): AgentOptimizationJobInputs {\n return {\n agent: optimizedAgentIdentifierDeserializer(item[\"agent\"]),\n train_dataset: agentOptimizationDatasetInputUnionDeserializer(item[\"train_dataset\"]),\n validation_dataset: !item[\"validation_dataset\"]\n ? item[\"validation_dataset\"]\n : agentOptimizationDatasetInputUnionDeserializer(item[\"validation_dataset\"]),\n evaluators: agentOptimizationEvaluatorRefArrayDeserializer(item[\"evaluators\"]),\n options: !item[\"options\"]\n ? item[\"options\"]\n : agentOptimizationOptionsDeserializer(item[\"options\"]),\n };\n}\n\n/** Identifies the registered Foundry agent to optimize (request-only). Skills, tools, and system_prompt are specified in options.optimization_config. */\nexport interface OptimizedAgentIdentifier {\n /** Registered Foundry agent name (required). */\n agent_name: string;\n /** Pinned agent version. Defaults to latest if omitted. */\n agent_version?: string;\n}\n\nexport function optimizedAgentIdentifierSerializer(item: OptimizedAgentIdentifier): any {\n return { agent_name: item[\"agent_name\"], agent_version: item[\"agent_version\"] };\n}\n\nexport function optimizedAgentIdentifierDeserializer(item: any): OptimizedAgentIdentifier {\n return {\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Base discriminated model for dataset input. Either inline items or a registered reference. */\nexport interface AgentOptimizationDatasetInput {\n /** Dataset input type discriminator. */\n /** The discriminator possible values: inline, reference */\n type: AgentOptimizationDatasetInputType;\n}\n\nexport function agentOptimizationDatasetInputSerializer(item: AgentOptimizationDatasetInput): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentOptimizationDatasetInputDeserializer(\n item: any,\n): AgentOptimizationDatasetInput {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentOptimizationDatasetInputUnion */\nexport type AgentOptimizationDatasetInputUnion =\n | AgentOptimizationInlineDatasetInput\n | AgentOptimizationReferenceDatasetInput\n | AgentOptimizationDatasetInput;\n\nexport function agentOptimizationDatasetInputUnionSerializer(\n item: AgentOptimizationDatasetInputUnion,\n): any {\n switch (item.type) {\n case \"inline\":\n return agentOptimizationInlineDatasetInputSerializer(\n item as AgentOptimizationInlineDatasetInput,\n );\n\n case \"reference\":\n return agentOptimizationReferenceDatasetInputSerializer(\n item as AgentOptimizationReferenceDatasetInput,\n );\n\n default:\n return agentOptimizationDatasetInputSerializer(item);\n }\n}\n\nexport function agentOptimizationDatasetInputUnionDeserializer(\n item: any,\n): AgentOptimizationDatasetInputUnion {\n switch (item[\"type\"]) {\n case \"inline\":\n return agentOptimizationInlineDatasetInputDeserializer(\n item as AgentOptimizationInlineDatasetInput,\n );\n\n case \"reference\":\n return agentOptimizationReferenceDatasetInputDeserializer(\n item as AgentOptimizationReferenceDatasetInput,\n );\n\n default:\n return agentOptimizationDatasetInputDeserializer(item);\n }\n}\n\n/** Discriminator values for the dataset input union. */\nexport type AgentOptimizationDatasetInputType = \"inline\" | \"reference\";\n\n/** Inline dataset \u2014 items supplied directly in the request body. */\nexport interface AgentOptimizationInlineDatasetInput extends AgentOptimizationDatasetInput {\n /** Dataset input type discriminator. */\n type: \"inline\";\n /** Dataset items. */\n items: AgentOptimizationDatasetItem[];\n}\n\nexport function agentOptimizationInlineDatasetInputSerializer(\n item: AgentOptimizationInlineDatasetInput,\n): any {\n return { type: item[\"type\"], items: agentOptimizationDatasetItemArraySerializer(item[\"items\"]) };\n}\n\nexport function agentOptimizationInlineDatasetInputDeserializer(\n item: any,\n): AgentOptimizationInlineDatasetInput {\n return {\n type: item[\"type\"],\n items: agentOptimizationDatasetItemArrayDeserializer(item[\"items\"]),\n };\n}\n\nexport function agentOptimizationDatasetItemArraySerializer(\n result: Array<AgentOptimizationDatasetItem>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetItemSerializer(item);\n });\n}\n\nexport function agentOptimizationDatasetItemArrayDeserializer(\n result: Array<AgentOptimizationDatasetItem>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetItemDeserializer(item);\n });\n}\n\n/** A single item in an inline dataset. */\nexport interface AgentOptimizationDatasetItem {\n /** The user query / prompt. */\n query?: string;\n /** Expected ground truth answer. */\n ground_truth?: string;\n /** Desired number of conversation turns for simulation mode (1-20). */\n desired_num_turns?: number;\n /** Per-item evaluation criteria. */\n criteria?: AgentOptimizationDatasetCriterion[];\n}\n\nexport function agentOptimizationDatasetItemSerializer(item: AgentOptimizationDatasetItem): any {\n return {\n query: item[\"query\"],\n ground_truth: item[\"ground_truth\"],\n desired_num_turns: item[\"desired_num_turns\"],\n criteria: !item[\"criteria\"]\n ? item[\"criteria\"]\n : agentOptimizationDatasetCriterionArraySerializer(item[\"criteria\"]),\n };\n}\n\nexport function agentOptimizationDatasetItemDeserializer(item: any): AgentOptimizationDatasetItem {\n return {\n query: item[\"query\"],\n ground_truth: item[\"ground_truth\"],\n desired_num_turns: item[\"desired_num_turns\"],\n criteria: !item[\"criteria\"]\n ? item[\"criteria\"]\n : agentOptimizationDatasetCriterionArrayDeserializer(item[\"criteria\"]),\n };\n}\n\nexport function agentOptimizationDatasetCriterionArraySerializer(\n result: Array<AgentOptimizationDatasetCriterion>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetCriterionSerializer(item);\n });\n}\n\nexport function agentOptimizationDatasetCriterionArrayDeserializer(\n result: Array<AgentOptimizationDatasetCriterion>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetCriterionDeserializer(item);\n });\n}\n\n/** Evaluation criterion: a name + instruction pair used for per-item scoring. */\nexport interface AgentOptimizationDatasetCriterion {\n /** Criterion name. */\n name: string;\n /** Criterion instruction / description. */\n instruction: string;\n}\n\nexport function agentOptimizationDatasetCriterionSerializer(\n item: AgentOptimizationDatasetCriterion,\n): any {\n return { name: item[\"name\"], instruction: item[\"instruction\"] };\n}\n\nexport function agentOptimizationDatasetCriterionDeserializer(\n item: any,\n): AgentOptimizationDatasetCriterion {\n return {\n name: item[\"name\"],\n instruction: item[\"instruction\"],\n };\n}\n\n/** Reference to a registered Foundry dataset. */\nexport interface AgentOptimizationReferenceDatasetInput extends AgentOptimizationDatasetInput {\n /** Dataset input type discriminator. */\n type: \"reference\";\n /** Registered dataset name. */\n name: string;\n /** Dataset version. If not specified, the latest version is used. */\n version?: string;\n}\n\nexport function agentOptimizationReferenceDatasetInputSerializer(\n item: AgentOptimizationReferenceDatasetInput,\n): any {\n return { type: item[\"type\"], name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function agentOptimizationReferenceDatasetInputDeserializer(\n item: any,\n): AgentOptimizationReferenceDatasetInput {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\nexport function agentOptimizationEvaluatorRefArraySerializer(\n result: Array<AgentOptimizationEvaluatorRef>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationEvaluatorRefSerializer(item);\n });\n}\n\nexport function agentOptimizationEvaluatorRefArrayDeserializer(\n result: Array<AgentOptimizationEvaluatorRef>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationEvaluatorRefDeserializer(item);\n });\n}\n\n/** Reference to a named evaluator, optionally pinned to a version. */\nexport interface AgentOptimizationEvaluatorRef {\n /** Evaluator name. */\n name: string;\n /** Evaluator version. If not specified, the latest version is used. */\n version?: string;\n}\n\nexport function agentOptimizationEvaluatorRefSerializer(item: AgentOptimizationEvaluatorRef): any {\n return { name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function agentOptimizationEvaluatorRefDeserializer(\n item: any,\n): AgentOptimizationEvaluatorRef {\n return {\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Tuning knobs and run-mode for an optimization job. */\nexport interface AgentOptimizationOptions {\n /** Maximum number of optimization candidates to generate. Must be >= 1. Default: 5. */\n max_candidates?: number;\n /** Per-target-attribute configuration overrides. Contains skills, tools, system_prompt for the agent, plus model space for model optimization. */\n optimization_config?: Record<string, any>;\n /** Model deployment used for evaluation. Defaults to server config (typically 'gpt-4o'). */\n eval_model?: string;\n /** Model deployment for optimization reasoning (must be gpt-5 family). Falls back to the default eval model when not set. */\n optimization_model?: string;\n /** Evaluation granularity. Null/omitted means per-item single-turn. Set to 'conversation' for per-conversation multi-turn simulation scoring. */\n evaluation_level?: EvaluationLevel;\n /** Maximum number of consecutive reflective minibatch rejections before stopping early. A 'stall' occurs when the optimizer proposes a prompt change, evaluates it on a small subset, and the score does not improve \u2014 so no full validation-set evaluation is triggered. The counter resets whenever a minibatch passes and its full-validation score beats the current best. Only a sustained plateau of `max_stalls` consecutive minibatch failures triggers the stop. The service defaults to 5 if a value is not specified by the caller. Must be >= 1 when set. */\n max_stalls?: number;\n}\n\nexport function agentOptimizationOptionsSerializer(item: AgentOptimizationOptions): any {\n return {\n max_candidates: item[\"max_candidates\"],\n optimization_config: item[\"optimization_config\"],\n eval_model: item[\"eval_model\"],\n optimization_model: item[\"optimization_model\"],\n evaluation_level: item[\"evaluation_level\"],\n max_stalls: item[\"max_stalls\"],\n };\n}\n\nexport function agentOptimizationOptionsDeserializer(item: any): AgentOptimizationOptions {\n return {\n max_candidates: item[\"max_candidates\"],\n optimization_config: !item[\"optimization_config\"]\n ? item[\"optimization_config\"]\n : Object.fromEntries(\n Object.entries(item[\"optimization_config\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n eval_model: item[\"eval_model\"],\n optimization_model: item[\"optimization_model\"],\n evaluation_level: item[\"evaluation_level\"],\n max_stalls: item[\"max_stalls\"],\n };\n}\n\n/** Terminal-state result body. Populated when status is succeeded or failed. */\nexport interface AgentOptimizationJobResult {\n /** Candidate ID of the original (un-optimized) baseline evaluation. */\n baseline?: string;\n /** Candidate ID of the highest-scoring candidate found during optimization. */\n best?: string;\n /** All evaluated candidates including baseline. */\n candidates?: AgentOptimizationCandidate[];\n}\n\nexport function agentOptimizationJobResultDeserializer(item: any): AgentOptimizationJobResult {\n return {\n baseline: item[\"baseline\"],\n best: item[\"best\"],\n candidates: !item[\"candidates\"]\n ? item[\"candidates\"]\n : agentOptimizationCandidateArrayDeserializer(item[\"candidates\"]),\n };\n}\n\nexport function agentOptimizationCandidateArrayDeserializer(\n result: Array<AgentOptimizationCandidate>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationCandidateDeserializer(item);\n });\n}\n\n/** Aggregated evaluation result for a single candidate agent configuration across all tasks. */\nexport interface AgentOptimizationCandidate {\n /** Server-assigned candidate identifier. Use with GET /candidates/{id} sub-endpoints. */\n candidate_id?: string;\n /** Display name of the candidate (e.g., 'baseline', 'instruction-v2'). */\n name: string;\n /** What was mutated from the baseline (e.g., {system_prompt: 'new prompt'}). */\n mutations?: Record<string, any>;\n /** Average composite score across all tasks. */\n avg_score: number;\n /** Average token usage across all tasks. */\n avg_tokens: number;\n /** Foundry evaluation identifier used to score this candidate. */\n eval_id?: string;\n /** Foundry evaluation run identifier for this candidate's scoring run. */\n eval_run_id?: string;\n /** Promotion metadata. Null if the candidate has not been promoted. */\n promotion?: PromotionInfo;\n}\n\nexport function agentOptimizationCandidateDeserializer(item: any): AgentOptimizationCandidate {\n return {\n candidate_id: item[\"candidate_id\"],\n name: item[\"name\"],\n mutations: !item[\"mutations\"]\n ? item[\"mutations\"]\n : Object.fromEntries(\n Object.entries(item[\"mutations\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n avg_score: item[\"avg_score\"],\n avg_tokens: item[\"avg_tokens\"],\n eval_id: item[\"eval_id\"],\n eval_run_id: item[\"eval_run_id\"],\n promotion: !item[\"promotion\"]\n ? item[\"promotion\"]\n : promotionInfoDeserializer(item[\"promotion\"]),\n };\n}\n\n/** Promotion metadata recorded when a candidate is deployed to a Foundry agent. */\nexport interface PromotionInfo {\n /** Timestamp when promotion occurred, represented in Unix time. */\n promoted_at: Date;\n /** Name of the Foundry agent this candidate was promoted to. */\n agent_name: string;\n /** Version of the Foundry agent this candidate was promoted to. */\n agent_version: string;\n}\n\nexport function promotionInfoDeserializer(item: any): PromotionInfo {\n return {\n promoted_at: new Date(item[\"promoted_at\"] * 1000),\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** In-flight progress; only populated while status is queued or in_progress. */\nexport interface AgentOptimizationJobProgress {\n /** Number of candidates whose evaluation has completed so far. */\n candidates_completed: number;\n /** Best score observed so far across all candidates. */\n best_score: number;\n /** Wall-clock time elapsed in seconds since the job began executing. */\n elapsed_seconds: number;\n}\n\nexport function agentOptimizationJobProgressDeserializer(item: any): AgentOptimizationJobProgress {\n return {\n candidates_completed: item[\"candidates_completed\"],\n best_score: item[\"best_score\"],\n elapsed_seconds: item[\"elapsed_seconds\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentOptimizationJobListItem {\n /** The requested list of items. */\n data: AgentOptimizationJobListItem[];\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 _agentsPagedResultAgentOptimizationJobListItemDeserializer(\n item: any,\n): _AgentsPagedResultAgentOptimizationJobListItem {\n return {\n data: agentOptimizationJobListItemArrayDeserializer(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 agentOptimizationJobListItemArrayDeserializer(\n result: Array<AgentOptimizationJobListItem>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationJobListItemDeserializer(item);\n });\n}\n\n/** Slim job representation returned by the LIST endpoint. */\nexport interface AgentOptimizationJobListItem {\n /** Server-assigned unique identifier. */\n readonly id: string;\n /** Current lifecycle status. */\n readonly status: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time. */\n readonly created_at: Date;\n /** The timestamp when the job was last updated, represented in Unix time. */\n readonly updated_at: Date;\n /** Progress snapshot. May be present in terminal states reflecting last-known progress. */\n readonly progress?: AgentOptimizationJobProgress;\n /** The agent targeted by this optimization job. */\n readonly agent?: OptimizedAgentIdentifier;\n}\n\n/** @deprecated Use `AgentOptimizationJob` instead. */\nexport type OptimizationJob = AgentOptimizationJob;\n/** @deprecated Use `AgentOptimizationJobInputs` instead. */\nexport type OptimizationJobInputs = AgentOptimizationJobInputs;\n/** @deprecated Use `OptimizedAgentIdentifier` instead. */\nexport type OptimizationAgentIdentifier = OptimizedAgentIdentifier;\n/** @deprecated Use `AgentOptimizationDatasetInput` instead. */\nexport type OptimizationDatasetInput = AgentOptimizationDatasetInput;\n/** @deprecated Use `AgentOptimizationDatasetInputUnion` instead. */\nexport type OptimizationDatasetInputUnion = AgentOptimizationDatasetInputUnion;\n/** @deprecated Use `AgentOptimizationDatasetInputType` instead. */\nexport type OptimizationDatasetInputType = AgentOptimizationDatasetInputType;\n/** @deprecated Use `AgentOptimizationInlineDatasetInput` instead. */\nexport type OptimizationInlineDatasetInput = AgentOptimizationInlineDatasetInput;\n/** @deprecated Use `AgentOptimizationDatasetItem` instead. */\nexport type OptimizationDatasetItem = AgentOptimizationDatasetItem;\n/** @deprecated Use `AgentOptimizationDatasetCriterion` instead. */\nexport type OptimizationDatasetCriterion = AgentOptimizationDatasetCriterion;\n/** @deprecated Use `AgentOptimizationReferenceDatasetInput` instead. */\nexport type OptimizationReferenceDatasetInput = AgentOptimizationReferenceDatasetInput;\n/** @deprecated Use `AgentOptimizationEvaluatorRef` instead. */\nexport type OptimizationEvaluatorRef = AgentOptimizationEvaluatorRef;\n/** @deprecated Use `AgentOptimizationOptions` instead. */\nexport type OptimizationOptions = AgentOptimizationOptions;\n/** @deprecated Use `AgentOptimizationJobResult` instead. */\nexport type OptimizationJobResult = AgentOptimizationJobResult;\n/** @deprecated Use `AgentOptimizationCandidate` instead. */\nexport type OptimizationCandidate = AgentOptimizationCandidate;\n/** @deprecated Use `AgentOptimizationJobProgress` instead. */\nexport type OptimizationJobProgress = AgentOptimizationJobProgress;\n/** @deprecated Use `AgentOptimizationJobListItem` instead. */\nexport type OptimizationJobListItem = AgentOptimizationJobListItem;\n\nexport function agentOptimizationJobListItemDeserializer(item: any): AgentOptimizationJobListItem {\n return {\n id: item[\"id\"],\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : apiErrorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n progress: !item[\"progress\"]\n ? item[\"progress\"]\n : agentOptimizationJobProgressDeserializer(item[\"progress\"]),\n agent: !item[\"agent\"] ? item[\"agent\"] : optimizedAgentIdentifierDeserializer(item[\"agent\"]),\n };\n}\n\n/** model interface UpdateToolboxRequest */\nexport interface UpdateToolboxRequest {\n /** The name of the toolbox to update. */\n name: string;\n /** The version identifier that the toolbox should point to. When set, the toolbox's default version will resolve to this version instead of the latest. */\n default_version: string;\n}\n\nexport function updateToolboxRequestSerializer(item: UpdateToolboxRequest): any {\n return { default_version: item[\"default_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/** Type of AgentType */\nexport type AgentType =\n \"agent\" | \"agent.version\" | \"agent.deleted\" | \"agent.version.deleted\" | \"agent.container\";\n/** Feature opt-in keys for agent definition operations supporting hosted or workflow agents. */\nexport type AgentDefinitionOptInKeys =\n | \"WorkflowAgents=V1Preview\"\n | \"ExternalAgents=V1Preview\"\n | \"DraftAgents=V1Preview\"\n | \"VoiceAgents=V1Preview\";\n\n/** Type of PageOrder */\nexport type PageOrder = \"asc\" | \"desc\";\n\n/** Type of FoundryFeaturesOptInKeys */\nexport type FoundryFeaturesOptInKeys =\n | \"Evaluations=V1Preview\"\n | \"Schedules=V1Preview\"\n | \"RedTeams=V1Preview\"\n | \"Insights=V1Preview\"\n | \"MemoryStores=V1Preview\"\n | \"Routines=V1Preview\"\n | \"Routines=V2Preview\"\n | \"Skills=V1Preview\"\n | \"DataGenerationJobs=V1Preview\"\n | \"Models=V1Preview\"\n | \"AgentsOptimization=V2Preview\";\n\n/** The type of pending upload. */\nexport type PendingUploadType = \"None\" | \"BlobReference\" | \"TemporaryBlobReference\";\n/** Type of MemoryStoreType */\nexport type MemoryStoreType =\n | \"memory_store\"\n | \"memory_store.deleted\"\n | \"memory_store.scope.deleted\"\n | \"memory_store.item.deleted\";\n\n/** Microsoft Foundry API versions */\nexport enum KnownApiVersions {\n /** Microsoft Foundry API version v1. */\n v1 = \"v1\",\n}\n\nexport type AgentsDownloadSessionFileResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\nexport type AgentsDownloadAgentCodeResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\nexport type DownloadVersionResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\nexport type BetaSkillsDownloadResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/** Type of CallableToolAllowedCaller */\nexport type CallableToolAllowedCaller = \"direct\" | \"programmatic\";\n\n/** model interface ProgrammaticToolCallingParam */\nexport interface ProgrammaticToolCallingParam extends Tool {\n /** The type of the tool. Always `programmatic_tool_calling`. */\n type: \"programmatic_tool_calling\";\n}\n\n/** model interface SpecificProgrammaticToolCallingParam */\nexport interface SpecificProgrammaticToolCallingParam extends ToolChoiceParam {\n /** The tool to call. Always `programmatic_tool_calling`. */\n type: \"programmatic_tool_calling\";\n}\n\n/** Alias for ReasoningModeEnum */\nexport type ReasoningModeEnum = string | \"standard\" | \"pro\";\n\nexport function programmaticToolCallingParamDeserializer(item: any): ProgrammaticToolCallingParam {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function programmaticToolCallingParamSerializer(item: ProgrammaticToolCallingParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function reasoningModeEnumDeserializer(item: any): ReasoningModeEnum {\n return item;\n}\n\nexport function reasoningModeEnumSerializer(item: ReasoningModeEnum): any {\n return item;\n}\n\nexport function specificProgrammaticToolCallingParamDeserializer(\n item: any,\n): SpecificProgrammaticToolCallingParam {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function specificProgrammaticToolCallingParamSerializer(\n item: SpecificProgrammaticToolCallingParam,\n): any {\n return { type: item[\"type\"] };\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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",
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { NodeReadableStream } from \"#platform/static-helpers/platform-types\";\nimport type { FileContents } from \"../static-helpers/multipartHelpers.js\";\nimport { createFilePartDescriptor } from \"../static-helpers/multipartHelpers.js\";\nimport { serializeRecord } from \"../static-helpers/serialization/serialize-record.js\";\nimport { uint8ArrayToString, stringToUint8Array } from \"@azure/core-util\";\n\n/**\n * This file contains only generated model types and their (de)serializers.\n * Disable the following rules for internal models with '_' prefix and deserializers which require 'any' for raw JSON input.\n */\n/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable tsdoc/syntax */\n\n/** model interface Agent */\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 operational state of the agent. Controls whether the agent endpoint accepts or rejects requests. */\n readonly state: AgentState;\n /** The administrative configuration state of the agent. This reflects whether the agent was explicitly enabled or disabled, independently of identity-derived operational state. */\n readonly configuration_state?: AgentState;\n /** The source of the agent's operational state. When the agent is disabled, indicates where the disabled state originates from. Empty when not derived from a specific source. */\n readonly state_source?: AgentStateSource;\n /** The latest version of the agent. */\n versions: {\n latest: AgentVersion;\n };\n /** The endpoint configuration for the agent */\n agent_endpoint?: AgentEndpointConfig;\n /** (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. */\n digital_worker_type?: DigitalWorkerType;\n /** The instance identity of the agent */\n readonly instance_identity?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint_reference?: AgentBlueprintReferenceUnion;\n /** The agent card describing the agent and the skills it can perform. */\n agent_card?: AgentCard;\n}\n\nexport function agentDeserializer(item: any): Agent {\n return {\n object: item[\"object\"],\n id: item[\"id\"],\n name: item[\"name\"],\n state: item[\"state\"],\n configuration_state: item[\"configuration_state\"],\n state_source: item[\"state_source\"],\n versions: _agentVersionsDeserializer(item[\"versions\"]),\n agent_endpoint: !item[\"agent_endpoint\"]\n ? item[\"agent_endpoint\"]\n : agentEndpointConfigDeserializer(item[\"agent_endpoint\"]),\n digital_worker_type: item[\"digital_worker_type\"],\n instance_identity: !item[\"instance_identity\"]\n ? item[\"instance_identity\"]\n : agentIdentityDeserializer(item[\"instance_identity\"]),\n blueprint: !item[\"blueprint\"]\n ? item[\"blueprint\"]\n : agentIdentityDeserializer(item[\"blueprint\"]),\n blueprint_reference: !item[\"blueprint_reference\"]\n ? item[\"blueprint_reference\"]\n : agentBlueprintReferenceUnionDeserializer(item[\"blueprint_reference\"]),\n agent_card: !item[\"agent_card\"]\n ? item[\"agent_card\"]\n : agentCardDeserializer(item[\"agent_card\"]),\n };\n}\n\n/** The operational state of an agent. */\nexport type AgentState = \"enabled\" | \"disabled\";\n/** Indicates the source of an agent's operational state. Empty when the state is not derived from a specific source. */\nexport type AgentStateSource = \"agent_instance_identity\" | \"agent_blueprint\";\n\n/**\n * Helper interface for agent version references.\n */\nexport interface _AgentVersions {\n latest: AgentVersion;\n}\n\nexport function _agentVersionsDeserializer(item: any): _AgentVersions {\n return {\n latest: agentVersionDeserializer(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 /** Whether this agent version is a draft (candidate) rather than a release. Draft versions are recorded but excluded from default 'latest' resolution and are not auto-promoted. Defaults to false. */\n draft?: boolean;\n /** The provisioning status of the agent version. Defaults to 'active' for non-hosted agents. For hosted agents, reflects infrastructure readiness. */\n status?: AgentVersionStatus;\n /** The instance identity of the agent */\n readonly instance_identity?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint?: AgentIdentity;\n /** The blueprint for the agent */\n readonly blueprint_reference?: AgentBlueprintReferenceUnion;\n /** The unique GUID identifier of the agent. */\n readonly agent_guid?: string;\n}\n\nexport function agentVersionDeserializer(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 status: item[\"status\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n definition: agentDefinitionUnionDeserializer(item[\"definition\"]),\n draft: item[\"draft\"],\n instance_identity: !item[\"instance_identity\"]\n ? item[\"instance_identity\"]\n : agentIdentityDeserializer(item[\"instance_identity\"]),\n blueprint: !item[\"blueprint\"]\n ? item[\"blueprint\"]\n : agentIdentityDeserializer(item[\"blueprint\"]),\n blueprint_reference: !item[\"blueprint_reference\"]\n ? item[\"blueprint_reference\"]\n : agentBlueprintReferenceUnionDeserializer(item[\"blueprint_reference\"]),\n agent_guid: item[\"agent_guid\"],\n };\n}\n\n/**\n * Base definition interface for agents.\n * Contains the agent kind and optional RAI configuration.\n */\nexport interface AgentDefinition {\n /** The kind of agent. */\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, prompt, and external agents.\n */\nexport type AgentDefinitionUnion =\n | HostedAgentDefinition\n | PromptAgentDefinition\n | WorkflowAgentDefinition\n | ExternalAgentDefinition\n | AgentDefinition\n | VoiceAgentDefinition;\n\nexport function agentDefinitionUnionSerializer(item: AgentDefinitionUnion): any {\n switch (item.kind) {\n case \"hosted\":\n return hostedAgentDefinitionSerializer(item as HostedAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionSerializer(item as PromptAgentDefinition);\n\n case \"workflow\":\n return workflowAgentDefinitionSerializer(item as WorkflowAgentDefinition);\n\n case \"external\":\n return externalAgentDefinitionSerializer(item as ExternalAgentDefinition);\n\n case \"voice\":\n return voiceAgentDefinitionSerializer(item as VoiceAgentDefinition);\n\n default:\n return agentDefinitionSerializer(item);\n }\n}\n\nexport function agentDefinitionUnionDeserializer(item: any): AgentDefinitionUnion {\n switch (item[\"kind\"]) {\n case \"hosted\":\n return hostedAgentDefinitionDeserializer(item as HostedAgentDefinition);\n\n case \"prompt\":\n return promptAgentDefinitionDeserializer(item as PromptAgentDefinition);\n\n case \"workflow\":\n return workflowAgentDefinitionDeserializer(item as WorkflowAgentDefinition);\n\n case \"external\":\n return externalAgentDefinitionDeserializer(item as ExternalAgentDefinition);\n\n case \"voice\":\n return voiceAgentDefinitionDeserializer(item as VoiceAgentDefinition);\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\" | \"workflow\" | \"external\" | \"voice\";\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 * Author-declared configuration telling the platform where user/agent text lives in the\n * agent-defined invocations request/response bodies, so content-safety guardrails can extract\n * and moderate it. Optional; a rai_config without it leaves the invocations path without\n * content-safety moderation.\n */\n invocations_moderation?: RaiInvocationModeration;\n}\n\nexport function raiConfigSerializer(item: RaiConfig): any {\n return {\n rai_policy_name: item[\"rai_policy_name\"],\n invocations_moderation: !item[\"invocations_moderation\"]\n ? item[\"invocations_moderation\"]\n : raiInvocationModerationSerializer(item[\"invocations_moderation\"]),\n };\n}\n\nexport function raiConfigDeserializer(item: any): RaiConfig {\n return {\n rai_policy_name: item[\"rai_policy_name\"],\n invocations_moderation: !item[\"invocations_moderation\"]\n ? item[\"invocations_moderation\"]\n : raiInvocationModerationDeserializer(item[\"invocations_moderation\"]),\n };\n}\n\n/** Declares where request/response text lives so content-safety guardrails can extract it. */\nexport interface RaiInvocationModeration {\n /** How the REQUEST body is parsed. When omitted, the service defaults to `json`. */\n input_content_type?: RaiInvocationContentType;\n /** How the RESPONSE body is parsed. When omitted, the service defaults to `json`. */\n output_content_type?: RaiInvocationContentType;\n /** Author-declared response shape; drives which output gate runs and which fields are required. */\n response_mode: RaiInvocationMode;\n /** Path(s) to user text in the REQUEST body. Required when input_content_type is `json`. */\n input_paths?: string[];\n /** Path(s) to agent text in a NON-STREAMING response body. Required when response_mode is non_streaming/both and output_content_type is `json`. */\n output_paths?: string[];\n /** One SSE event->field selector per event type carrying text. Required when response_mode is streaming/both and output_content_type is `json`. */\n stream_selectors?: RaiSseTextSelector[];\n}\n\nexport function raiInvocationModerationSerializer(item: RaiInvocationModeration): any {\n return {\n input_content_type: item[\"input_content_type\"],\n output_content_type: item[\"output_content_type\"],\n response_mode: item[\"response_mode\"],\n input_paths: !item[\"input_paths\"]\n ? item[\"input_paths\"]\n : item[\"input_paths\"].map((p: any) => {\n return p;\n }),\n output_paths: !item[\"output_paths\"]\n ? item[\"output_paths\"]\n : item[\"output_paths\"].map((p: any) => {\n return p;\n }),\n stream_selectors: !item[\"stream_selectors\"]\n ? item[\"stream_selectors\"]\n : raiSseTextSelectorArraySerializer(item[\"stream_selectors\"]),\n };\n}\n\nexport function raiInvocationModerationDeserializer(item: any): RaiInvocationModeration {\n return {\n input_content_type: item[\"input_content_type\"],\n output_content_type: item[\"output_content_type\"],\n response_mode: item[\"response_mode\"],\n input_paths: !item[\"input_paths\"]\n ? item[\"input_paths\"]\n : item[\"input_paths\"].map((p: any) => {\n return p;\n }),\n output_paths: !item[\"output_paths\"]\n ? item[\"output_paths\"]\n : item[\"output_paths\"].map((p: any) => {\n return p;\n }),\n stream_selectors: !item[\"stream_selectors\"]\n ? item[\"stream_selectors\"]\n : raiSseTextSelectorArrayDeserializer(item[\"stream_selectors\"]),\n };\n}\n\n/** How an invocations request/response body is parsed to locate text for content-safety moderation. */\nexport type RaiInvocationContentType = \"json\" | \"text\";\n\n/** Author-declared response shape for the invocations protocol. */\nexport type RaiInvocationMode = \"non_streaming\" | \"streaming\" | \"both\";\n\nexport function raiSseTextSelectorArraySerializer(result: Array<RaiSseTextSelector>): any[] {\n return result.map((item) => {\n return raiSseTextSelectorSerializer(item);\n });\n}\n\nexport function raiSseTextSelectorArrayDeserializer(result: Array<RaiSseTextSelector>): any[] {\n return result.map((item) => {\n return raiSseTextSelectorDeserializer(item);\n });\n}\n\n/** An SSE event-type to text-field selector for streaming invocation output. */\nexport interface RaiSseTextSelector {\n /** The SSE event `type` value that carries text. */\n event_type: string;\n /** The field on a matched event holding the text delta. When omitted, the service defaults to `delta`. */\n text_field?: string;\n}\n\nexport function raiSseTextSelectorSerializer(item: RaiSseTextSelector): any {\n return { event_type: item[\"event_type\"], text_field: item[\"text_field\"] };\n}\n\nexport function raiSseTextSelectorDeserializer(item: any): RaiSseTextSelector {\n return {\n event_type: item[\"event_type\"],\n text_field: item[\"text_field\"],\n };\n}\n\n/** The hosted agent definition. */\nexport interface HostedAgentDefinition extends AgentDefinition {\n /** The kind of agent definition. Always `hosted` for an agent deployed to the hosted runtime. */\n kind: \"hosted\";\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 /** Container-based deployment configuration. Provide this for image-based deployments. Mutually exclusive with code_configuration \u2014 the service validates that exactly one is set. */\n container_configuration?: ContainerConfiguration;\n /** The protocols that the agent supports for ingress communication. */\n protocol_versions?: ProtocolVersionRecord[];\n /** Code-based deployment configuration. Provide this for code-based deployments. Mutually exclusive with container_configuration \u2014 the service validates that exactly one is set. */\n code_configuration?: CodeConfiguration;\n /** Optional customer-supplied telemetry configuration for exporting container logs, traces, and metrics. */\n telemetry_config?: TelemetryConfig;\n /** Optional session defaults (for example, the idle timeout) applied to sessions created for this agent version. */\n session_configuration?: SessionConfiguration;\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 cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n container_configuration: !item[\"container_configuration\"]\n ? item[\"container_configuration\"]\n : containerConfigurationSerializer(item[\"container_configuration\"]),\n protocol_versions: !item[\"protocol_versions\"]\n ? item[\"protocol_versions\"]\n : protocolVersionRecordArraySerializer(item[\"protocol_versions\"]),\n code_configuration: !item[\"code_configuration\"]\n ? item[\"code_configuration\"]\n : codeConfigurationSerializer(item[\"code_configuration\"]),\n telemetry_config: !item[\"telemetry_config\"]\n ? item[\"telemetry_config\"]\n : telemetryConfigSerializer(item[\"telemetry_config\"]),\n session_configuration: !item[\"session_configuration\"]\n ? item[\"session_configuration\"]\n : sessionConfigurationSerializer(item[\"session_configuration\"]),\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 cpu: item[\"cpu\"],\n memory: item[\"memory\"],\n environment_variables: item[\"environment_variables\"],\n container_configuration: !item[\"container_configuration\"]\n ? item[\"container_configuration\"]\n : containerConfigurationDeserializer(item[\"container_configuration\"]),\n protocol_versions: !item[\"protocol_versions\"]\n ? item[\"protocol_versions\"]\n : protocolVersionRecordArrayDeserializer(item[\"protocol_versions\"]),\n code_configuration: !item[\"code_configuration\"]\n ? item[\"code_configuration\"]\n : codeConfigurationDeserializer(item[\"code_configuration\"]),\n telemetry_config: !item[\"telemetry_config\"]\n ? item[\"telemetry_config\"]\n : telemetryConfigDeserializer(item[\"telemetry_config\"]),\n session_configuration: !item[\"session_configuration\"]\n ? item[\"session_configuration\"]\n : sessionConfigurationDeserializer(item[\"session_configuration\"]),\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/** A tool that can be used to generate a response. */\nexport interface Tool {\n /** The tool type identifier. */\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 | GitHubCopilotToolsetPreview\n | BingGroundingTool\n | MicrosoftFabricPreviewTool\n | SharepointPreviewTool\n | AzureAISearchTool\n | OpenApiTool\n | BingCustomSearchPreviewTool\n | BrowserAutomationPreviewTool\n | AzureFunctionTool\n | CaptureStructuredOutputsTool\n | A2APreviewTool\n | A2ATool\n | WorkIQPreviewTool\n | FabricIQPreviewTool\n | WebIQPreviewTool\n | MemorySearchPreviewTool\n | CodeInterpreterTool\n | FileSearchTool\n | WebSearchTool\n | MCPTool\n | FunctionTool\n | ComputerUsePreviewTool\n | ProgrammaticToolCallingParam\n | ImageGenTool\n | LocalShellToolParam\n | FunctionShellToolParam\n | CustomToolParam\n | WebSearchPreviewTool\n | ApplyPatchToolParam\n | ComputerTool\n | NamespaceToolParam\n | ToolSearchToolParam\n | Tool;\n\nexport function toolUnionSerializer(item: ToolUnion): any {\n switch (item.type) {\n case \"github_copilot_toolset_preview\":\n return gitHubCopilotToolsetPreviewSerializer(item as GitHubCopilotToolsetPreview);\n\n case \"bing_grounding\":\n return bingGroundingToolSerializer(item as BingGroundingTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricPreviewToolSerializer(item as MicrosoftFabricPreviewTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointPreviewToolSerializer(item as SharepointPreviewTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolSerializer(item as AzureAISearchTool);\n\n case \"openapi\":\n return openApiToolSerializer(item as OpenApiTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchPreviewToolSerializer(item as BingCustomSearchPreviewTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolSerializer(item as BrowserAutomationPreviewTool);\n\n case \"azure_function\":\n return azureFunctionToolSerializer(item as AzureFunctionTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolSerializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2APreviewToolSerializer(item as A2APreviewTool);\n\n case \"a2a\":\n return a2AToolSerializer(item as A2ATool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolSerializer(item as WorkIQPreviewTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolSerializer(item as FabricIQPreviewTool);\n\n case \"web_iq_preview\":\n return webIQPreviewToolSerializer(item as WebIQPreviewTool);\n\n case \"memory_search_preview\":\n return memorySearchPreviewToolSerializer(item as MemorySearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolSerializer(item as CodeInterpreterTool);\n\n case \"file_search\":\n return fileSearchToolSerializer(item as FileSearchTool);\n\n case \"web_search\":\n return webSearchToolSerializer(item as WebSearchTool);\n\n case \"mcp\":\n return mcpToolSerializer(item as MCPTool);\n\n case \"function\":\n return functionToolSerializer(item as FunctionTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolSerializer(item as ComputerUsePreviewTool);\n\n case \"programmatic_tool_calling\":\n return programmaticToolCallingParamSerializer(item as ProgrammaticToolCallingParam);\n\n case \"image_generation\":\n return imageGenToolSerializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolParamSerializer(item as LocalShellToolParam);\n\n case \"shell\":\n return functionShellToolParamSerializer(item as FunctionShellToolParam);\n\n case \"custom\":\n return customToolParamSerializer(item as CustomToolParam);\n\n case \"web_search_preview\":\n return webSearchPreviewToolSerializer(item as WebSearchPreviewTool);\n\n case \"apply_patch\":\n return applyPatchToolParamSerializer(item as ApplyPatchToolParam);\n\n case \"computer\":\n return computerToolSerializer(item as ComputerTool);\n\n case \"namespace\":\n return namespaceToolParamSerializer(item as NamespaceToolParam);\n\n case \"tool_search\":\n return toolSearchToolParamSerializer(item as ToolSearchToolParam);\n\n default:\n return toolSerializer(item);\n }\n}\n\nexport function toolUnionDeserializer(item: any): ToolUnion {\n switch (item[\"type\"]) {\n case \"github_copilot_toolset_preview\":\n return gitHubCopilotToolsetPreviewDeserializer(item as GitHubCopilotToolsetPreview);\n\n case \"bing_grounding\":\n return bingGroundingToolDeserializer(item as BingGroundingTool);\n\n case \"fabric_dataagent_preview\":\n return microsoftFabricPreviewToolDeserializer(item as MicrosoftFabricPreviewTool);\n\n case \"sharepoint_grounding_preview\":\n return sharepointPreviewToolDeserializer(item as SharepointPreviewTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolDeserializer(item as AzureAISearchTool);\n\n case \"openapi\":\n return openApiToolDeserializer(item as OpenApiTool);\n\n case \"bing_custom_search_preview\":\n return bingCustomSearchPreviewToolDeserializer(item as BingCustomSearchPreviewTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolDeserializer(item as BrowserAutomationPreviewTool);\n\n case \"azure_function\":\n return azureFunctionToolDeserializer(item as AzureFunctionTool);\n\n case \"capture_structured_outputs\":\n return captureStructuredOutputsToolDeserializer(item as CaptureStructuredOutputsTool);\n\n case \"a2a_preview\":\n return a2APreviewToolDeserializer(item as A2APreviewTool);\n\n case \"a2a\":\n return a2AToolDeserializer(item as A2ATool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolDeserializer(item as WorkIQPreviewTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolDeserializer(item as FabricIQPreviewTool);\n\n case \"web_iq_preview\":\n return webIQPreviewToolDeserializer(item as WebIQPreviewTool);\n\n case \"memory_search_preview\":\n return memorySearchPreviewToolDeserializer(item as MemorySearchPreviewTool);\n\n case \"code_interpreter\":\n return codeInterpreterToolDeserializer(item as CodeInterpreterTool);\n\n case \"file_search\":\n return fileSearchToolDeserializer(item as FileSearchTool);\n\n case \"web_search\":\n return webSearchToolDeserializer(item as WebSearchTool);\n\n case \"mcp\":\n return mcpToolDeserializer(item as MCPTool);\n\n case \"function\":\n return functionToolDeserializer(item as FunctionTool);\n\n case \"computer_use_preview\":\n return computerUsePreviewToolDeserializer(item as ComputerUsePreviewTool);\n\n case \"programmatic_tool_calling\":\n return programmaticToolCallingParamDeserializer(item as ProgrammaticToolCallingParam);\n\n case \"image_generation\":\n return imageGenToolDeserializer(item as ImageGenTool);\n\n case \"local_shell\":\n return localShellToolParamDeserializer(item as LocalShellToolParam);\n\n case \"shell\":\n return functionShellToolParamDeserializer(item as FunctionShellToolParam);\n\n case \"custom\":\n return customToolParamDeserializer(item as CustomToolParam);\n\n case \"web_search_preview\":\n return webSearchPreviewToolDeserializer(item as WebSearchPreviewTool);\n\n case \"apply_patch\":\n return applyPatchToolParamDeserializer(item as ApplyPatchToolParam);\n\n case \"computer\":\n return computerToolDeserializer(item as ComputerTool);\n\n case \"namespace\":\n return namespaceToolParamDeserializer(item as NamespaceToolParam);\n\n case \"tool_search\":\n return toolSearchToolParamDeserializer(item as ToolSearchToolParam);\n\n default:\n return toolDeserializer(item);\n }\n}\n\n/** Type of ToolType */\nexport type ToolType =\n | \"function\"\n | \"file_search\"\n | \"computer\"\n | \"computer_use_preview\"\n | \"web_search\"\n | \"mcp\"\n | \"code_interpreter\"\n | \"programmatic_tool_calling\"\n | \"image_generation\"\n | \"local_shell\"\n | \"shell\"\n | \"custom\"\n | \"namespace\"\n | \"tool_search\"\n | \"web_search_preview\"\n | \"apply_patch\"\n | \"a2a_preview\"\n | \"bing_custom_search_preview\"\n | \"browser_automation_preview\"\n | \"fabric_dataagent_preview\"\n | \"sharepoint_grounding_preview\"\n | \"memory_search_preview\"\n | \"work_iq_preview\"\n | \"fabric_iq_preview\"\n | \"toolbox_search_preview\"\n | \"web_iq_preview\"\n | \"github_copilot_toolset_preview\"\n | \"a2a\"\n | \"azure_ai_search\"\n | \"azure_function\"\n | \"bing_grounding\"\n | \"capture_structured_outputs\"\n | \"openapi\"\n | \"browser_automation\";\n\n/** The input definition information for a bing grounding search tool as used to configure an agent. */\nexport interface BingGroundingTool extends Tool {\n /** The object type, which is always 'bing_grounding'. */\n type: \"bing_grounding\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The bing grounding search tool parameters. */\n bing_grounding: BingGroundingSearchToolParameters;\n}\n\nexport function bingGroundingToolSerializer(item: BingGroundingTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n bing_grounding: bingGroundingSearchToolParametersSerializer(item[\"bing_grounding\"]),\n };\n}\n\nexport function bingGroundingToolDeserializer(item: any): BingGroundingTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n bing_grounding: bingGroundingSearchToolParametersDeserializer(item[\"bing_grounding\"]),\n };\n}\n\nexport function toolConfigRecordSerializer(item: Record<string, ToolConfig>): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : toolConfigSerializer(item[key]);\n });\n return result;\n}\n\nexport function toolConfigRecordDeserializer(\n item: Record<string, any>,\n): Record<string, ToolConfig> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : toolConfigDeserializer(item[key]);\n });\n return result;\n}\n\n/** Per-tool configuration that controls tool visibility and search behavior. */\nexport interface ToolConfig {\n /**\n * When true, the tool is always included in agent context and visible in `tools/list`.\n * When false (default), the tool is hidden from `tools/list` and only discoverable via `tool_search`.\n */\n pin?: boolean;\n /**\n * Additional text indexed for tool_search. Supplements the native tool description\n * to improve discoverability. Does not alter `tools/list` output.\n */\n additional_search_text?: string;\n}\n\nexport function toolConfigSerializer(item: ToolConfig): any {\n return { pin: item[\"pin\"], additional_search_text: item[\"additional_search_text\"] };\n}\n\nexport function toolConfigDeserializer(item: any): ToolConfig {\n return {\n pin: item[\"pin\"],\n additional_search_text: item[\"additional_search_text\"],\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 MicrosoftFabricPreviewTool extends Tool {\n /** The object type, which is always 'fabric_dataagent_preview'. */\n type: \"fabric_dataagent_preview\";\n /** The fabric data agent tool parameters. */\n fabric_dataagent_preview: FabricDataAgentToolParameters;\n}\n\nexport function microsoftFabricPreviewToolSerializer(item: MicrosoftFabricPreviewTool): any {\n return {\n type: item[\"type\"],\n fabric_dataagent_preview: fabricDataAgentToolParametersSerializer(\n item[\"fabric_dataagent_preview\"],\n ),\n };\n}\n\nexport function microsoftFabricPreviewToolDeserializer(item: any): MicrosoftFabricPreviewTool {\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 SharepointPreviewTool extends Tool {\n /** The object type, which is always 'sharepoint_grounding_preview'. */\n type: \"sharepoint_grounding_preview\";\n /** The sharepoint grounding tool parameters. */\n sharepoint_grounding_preview: SharepointGroundingToolParameters;\n}\n\nexport function sharepointPreviewToolSerializer(item: SharepointPreviewTool): any {\n return {\n type: item[\"type\"],\n sharepoint_grounding_preview: sharepointGroundingToolParametersSerializer(\n item[\"sharepoint_grounding_preview\"],\n ),\n };\n}\n\nexport function sharepointPreviewToolDeserializer(item: any): SharepointPreviewTool {\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 AzureAISearchTool extends Tool {\n /** The object type, which is always 'azure_ai_search'. */\n type: \"azure_ai_search\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The azure ai search index resource. */\n azure_ai_search: AzureAISearchToolResource;\n}\n\nexport function azureAISearchToolSerializer(item: AzureAISearchTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n azure_ai_search: azureAISearchToolResourceSerializer(item[\"azure_ai_search\"]),\n };\n}\n\nexport function azureAISearchToolDeserializer(item: any): AzureAISearchTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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\" | \"semantic\" | \"vector\" | \"vector_simple_hybrid\" | \"vector_semantic_hybrid\";\n\n/** The input definition information for an OpenAPI tool as used to configure an agent. */\nexport interface OpenApiTool extends Tool {\n /** The object type, which is always 'openapi'. */\n type: \"openapi\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The openapi function definition. */\n openapi: OpenApiFunctionDefinition;\n}\n\nexport function openApiToolSerializer(item: OpenApiTool): any {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n openapi: openApiFunctionDefinitionSerializer(item[\"openapi\"]),\n };\n}\n\nexport function openApiToolDeserializer(item: any): OpenApiTool {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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: Record<string, 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 };\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 AI 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: Record<string, 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 BingCustomSearchPreviewTool extends Tool {\n /** The object type, which is always 'bing_custom_search_preview'. */\n type: \"bing_custom_search_preview\";\n /** The bing custom search tool parameters. */\n bing_custom_search_preview: BingCustomSearchToolParameters;\n}\n\nexport function bingCustomSearchPreviewToolSerializer(item: BingCustomSearchPreviewTool): 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 bingCustomSearchPreviewToolDeserializer(item: any): BingCustomSearchPreviewTool {\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 BrowserAutomationPreviewTool extends Tool {\n /** The object type, which is always 'browser_automation_preview'. */\n type: \"browser_automation_preview\";\n /** The Browser Automation Tool parameters. */\n browser_automation_preview: BrowserAutomationToolParameters;\n}\n\nexport function browserAutomationPreviewToolSerializer(item: BrowserAutomationPreviewTool): any {\n return {\n type: item[\"type\"],\n browser_automation_preview: browserAutomationToolParametersSerializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\nexport function browserAutomationPreviewToolDeserializer(item: any): BrowserAutomationPreviewTool {\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 { connection: browserAutomationToolConnectionParametersSerializer(item[\"connection\"]) };\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 AzureFunctionTool extends Tool {\n /** The object type, which is always 'browser_automation'. */\n type: \"azure_function\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The Azure Function Tool definition. */\n azure_function: AzureFunctionDefinition;\n}\n\nexport function azureFunctionToolSerializer(item: AzureFunctionTool): any {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n azure_function: azureFunctionDefinitionSerializer(item[\"azure_function\"]),\n };\n}\n\nexport function azureFunctionToolDeserializer(item: any): AzureFunctionTool {\n return {\n type: item[\"type\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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: Record<string, 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: Record<string, unknown>;\n}\n\nexport function _azureFunctionDefinitionFunctionSerializer(\n item: _AzureFunctionDefinitionFunction,\n): any {\n return { name: item[\"name\"], description: item[\"description\"], parameters: item[\"parameters\"] };\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 { queue_service_endpoint: item[\"queue_service_endpoint\"], queue_name: item[\"queue_name\"] };\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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 name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n outputs: structuredOutputDefinitionSerializer(item[\"outputs\"]),\n };\n}\n\nexport function captureStructuredOutputsToolDeserializer(item: any): CaptureStructuredOutputsTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n outputs: structuredOutputDefinitionDeserializer(item[\"outputs\"]),\n };\n}\n\n/** A structured output that can be produced by the agent. */\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, unknown>;\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 A2APreviewTool extends Tool {\n /** The type of the tool. Always `\"a2a_preview`. */\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 * When `true`, Foundry sends its credentials when fetching the remote\n * agent's Agent Card. The service defaults to `false` if a value is not\n * specified by the caller (anonymous fetch).\n */\n send_credentials_for_agent_card?: boolean;\n}\n\nexport function a2APreviewToolSerializer(item: A2APreviewTool): 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 send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\nexport function a2APreviewToolDeserializer(item: any): A2APreviewTool {\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 send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\n/** A WorkIQ server-side tool. */\nexport interface WorkIQPreviewTool extends Tool {\n /** The object type, which is always 'work_iq_preview'. */\n type: \"work_iq_preview\";\n /** The ID of the WorkIQ project connection. */\n project_connection_id: string;\n}\n\nexport function workIQPreviewToolSerializer(item: WorkIQPreviewTool): any {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function workIQPreviewToolDeserializer(item: any): WorkIQPreviewTool {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** A FabricIQ server-side tool. */\nexport interface FabricIQPreviewTool extends Tool {\n /** The object type, which is always 'fabric_iq_preview'. */\n type: \"fabric_iq_preview\";\n /** The ID of the FabricIQ project connection. */\n project_connection_id: string;\n /** (Optional) The label of the FabricIQ MCP server to connect to. */\n server_label?: string;\n /** (Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used. */\n server_url?: string;\n /** (Optional) Whether the agent requires approval before executing actions. Default is always. */\n require_approval?: MCPToolRequireApproval | string;\n}\n\nexport function fabricIQPreviewToolSerializer(item: FabricIQPreviewTool): any {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalSerializer(item[\"require_approval\"]),\n };\n}\n\nexport function fabricIQPreviewToolDeserializer(item: any): FabricIQPreviewTool {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalDeserializer(item[\"require_approval\"]),\n };\n}\n\n/** Alias for _FabricIQPreviewToolRequireApproval */\nexport type _FabricIQPreviewToolRequireApproval = MCPToolRequireApproval | string;\n\nexport function _fabricIQPreviewToolRequireApprovalSerializer(\n item: _FabricIQPreviewToolRequireApproval,\n): any {\n return item;\n}\n\nexport function _fabricIQPreviewToolRequireApprovalDeserializer(\n item: any,\n): _FabricIQPreviewToolRequireApproval {\n return item;\n}\n\n/** model interface MCPToolRequireApproval */\nexport interface MCPToolRequireApproval {\n /** The filter selecting MCP tools whose calls always require approval. */\n always?: MCPToolFilter;\n /** The filter selecting MCP tools whose calls never require approval. */\n never?: MCPToolFilter;\n}\n\nexport function mcpToolRequireApprovalSerializer(item: MCPToolRequireApproval): any {\n return {\n always: !item[\"always\"] ? item[\"always\"] : mcpToolFilterSerializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : mcpToolFilterSerializer(item[\"never\"]),\n };\n}\n\nexport function mcpToolRequireApprovalDeserializer(item: any): MCPToolRequireApproval {\n return {\n always: !item[\"always\"] ? item[\"always\"] : mcpToolFilterDeserializer(item[\"always\"]),\n never: !item[\"never\"] ? item[\"never\"] : mcpToolFilterDeserializer(item[\"never\"]),\n };\n}\n\n/** A filter object to specify which tools are allowed. */\nexport interface MCPToolFilter {\n /** List of allowed tool names. */\n tool_names?: string[];\n /**\n * Indicates whether or not a tool modifies data or is read-only. If an\n * MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint),\n * it will match this filter.\n */\n read_only?: boolean;\n}\n\nexport function mcpToolFilterSerializer(item: MCPToolFilter): 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 read_only: item[\"read_only\"],\n };\n}\n\nexport function mcpToolFilterDeserializer(item: any): MCPToolFilter {\n return {\n tool_names: !item[\"tool_names\"]\n ? item[\"tool_names\"]\n : item[\"tool_names\"].map((p: any) => {\n return p;\n }),\n read_only: item[\"read_only\"],\n };\n}\n\n/** A tool for integrating memories into the agent. */\nexport interface MemorySearchPreviewTool extends Tool {\n /** The type of the tool. Always `memory_search_preview`. */\n type: \"memory_search_preview\";\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 memorySearchPreviewToolSerializer(item: MemorySearchPreviewTool): 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 memorySearchPreviewToolDeserializer(item: any): MemorySearchPreviewTool {\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\n/** A tool that runs Python code to help generate a response to a prompt. */\nexport interface CodeInterpreterTool extends Tool {\n /** The type of the code interpreter tool. Always `code_interpreter`. */\n type: \"code_interpreter\";\n /**\n * The callers that may invoke this code interpreter tool, either directly or programmatically.\n */\n allowed_callers?: CallableToolAllowedCaller[];\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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, along with an\n * optional `memory_limit` setting.\n * If not provided, the service assumes auto.\n */\n container?: string | AutoCodeInterpreterToolParam;\n}\n\nexport function codeInterpreterToolSerializer(item: CodeInterpreterTool): any {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerSerializer(item[\"container\"]),\n };\n}\n\nexport function codeInterpreterToolDeserializer(item: any): CodeInterpreterTool {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerDeserializer(item[\"container\"]),\n };\n}\n\n/** Alias for _CodeInterpreterToolContainer */\nexport type _CodeInterpreterToolContainer = string | AutoCodeInterpreterToolParam;\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/** Configuration for a code interpreter container. Optionally specify the IDs of the files to run the code on. */\nexport interface AutoCodeInterpreterToolParam {\n /** Always `auto`. */\n type: \"auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n /** The memory limit for the code interpreter container, in bytes. */\n memory_limit?: ContainerMemoryLimit;\n /** The network access policy for the code interpreter container. */\n network_policy?: ContainerNetworkPolicyParamUnion;\n}\n\nexport function autoCodeInterpreterToolParamSerializer(item: AutoCodeInterpreterToolParam): 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 memory_limit: item[\"memory_limit\"],\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionSerializer(item[\"network_policy\"]),\n };\n}\n\nexport function autoCodeInterpreterToolParamDeserializer(item: any): AutoCodeInterpreterToolParam {\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 memory_limit: item[\"memory_limit\"],\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionDeserializer(item[\"network_policy\"]),\n };\n}\n\n/** Type of ContainerMemoryLimit */\nexport type ContainerMemoryLimit = \"1g\" | \"4g\" | \"16g\" | \"64g\";\n\n/** Network access policy for the container. */\nexport interface ContainerNetworkPolicyParam {\n /** The network policy type. */\n type: ContainerNetworkPolicyParamType;\n}\n\nexport function containerNetworkPolicyParamSerializer(item: ContainerNetworkPolicyParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function containerNetworkPolicyParamDeserializer(item: any): ContainerNetworkPolicyParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ContainerNetworkPolicyParamUnion */\nexport type ContainerNetworkPolicyParamUnion =\n | ContainerNetworkPolicyDisabledParam\n | ContainerNetworkPolicyAllowlistParam\n | ContainerNetworkPolicyParam;\n\nexport function containerNetworkPolicyParamUnionSerializer(\n item: ContainerNetworkPolicyParamUnion,\n): any {\n switch (item.type) {\n case \"disabled\":\n return containerNetworkPolicyDisabledParamSerializer(\n item as ContainerNetworkPolicyDisabledParam,\n );\n\n case \"allowlist\":\n return containerNetworkPolicyAllowlistParamSerializer(\n item as ContainerNetworkPolicyAllowlistParam,\n );\n\n default:\n return containerNetworkPolicyParamSerializer(item);\n }\n}\n\nexport function containerNetworkPolicyParamUnionDeserializer(\n item: any,\n): ContainerNetworkPolicyParamUnion {\n switch (item[\"type\"]) {\n case \"disabled\":\n return containerNetworkPolicyDisabledParamDeserializer(\n item as ContainerNetworkPolicyDisabledParam,\n );\n\n case \"allowlist\":\n return containerNetworkPolicyAllowlistParamDeserializer(\n item as ContainerNetworkPolicyAllowlistParam,\n );\n\n default:\n return containerNetworkPolicyParamDeserializer(item);\n }\n}\n\n/** Type of ContainerNetworkPolicyParamType */\nexport type ContainerNetworkPolicyParamType = \"disabled\" | \"allowlist\";\n\n/** model interface ContainerNetworkPolicyDisabledParam */\nexport interface ContainerNetworkPolicyDisabledParam extends ContainerNetworkPolicyParam {\n /** Disable outbound network access. Always `disabled`. */\n type: \"disabled\";\n}\n\nexport function containerNetworkPolicyDisabledParamSerializer(\n item: ContainerNetworkPolicyDisabledParam,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function containerNetworkPolicyDisabledParamDeserializer(\n item: any,\n): ContainerNetworkPolicyDisabledParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface ContainerNetworkPolicyAllowlistParam */\nexport interface ContainerNetworkPolicyAllowlistParam extends ContainerNetworkPolicyParam {\n /** Allow outbound network access only to specified domains. Always `allowlist`. */\n type: \"allowlist\";\n /** A list of allowed domains when type is `allowlist`. */\n allowed_domains: string[];\n /** Optional domain-scoped secrets for allowlisted domains. */\n domain_secrets?: ContainerNetworkPolicyDomainSecretParam[];\n}\n\nexport function containerNetworkPolicyAllowlistParamSerializer(\n item: ContainerNetworkPolicyAllowlistParam,\n): any {\n return {\n type: item[\"type\"],\n allowed_domains: item[\"allowed_domains\"],\n domain_secrets: !item[\"domain_secrets\"]\n ? item[\"domain_secrets\"]\n : containerNetworkPolicyDomainSecretParamArraySerializer(item[\"domain_secrets\"]),\n };\n}\n\nexport function containerNetworkPolicyAllowlistParamDeserializer(\n item: any,\n): ContainerNetworkPolicyAllowlistParam {\n return {\n type: item[\"type\"],\n allowed_domains: item[\"allowed_domains\"],\n domain_secrets: !item[\"domain_secrets\"]\n ? item[\"domain_secrets\"]\n : containerNetworkPolicyDomainSecretParamArrayDeserializer(item[\"domain_secrets\"]),\n };\n}\n\nexport function containerNetworkPolicyDomainSecretParamArraySerializer(\n result: Array<ContainerNetworkPolicyDomainSecretParam>,\n): any[] {\n return result.map((item) => {\n return containerNetworkPolicyDomainSecretParamSerializer(item);\n });\n}\n\nexport function containerNetworkPolicyDomainSecretParamArrayDeserializer(\n result: Array<ContainerNetworkPolicyDomainSecretParam>,\n): any[] {\n return result.map((item) => {\n return containerNetworkPolicyDomainSecretParamDeserializer(item);\n });\n}\n\n/** model interface ContainerNetworkPolicyDomainSecretParam */\nexport interface ContainerNetworkPolicyDomainSecretParam {\n /** The domain associated with the secret. */\n domain: string;\n /** The name of the secret to inject for the domain. */\n name: string;\n /** The secret value to inject for the domain. */\n value: string;\n}\n\nexport function containerNetworkPolicyDomainSecretParamSerializer(\n item: ContainerNetworkPolicyDomainSecretParam,\n): any {\n return { domain: item[\"domain\"], name: item[\"name\"], value: item[\"value\"] };\n}\n\nexport function containerNetworkPolicyDomainSecretParamDeserializer(\n item: any,\n): ContainerNetworkPolicyDomainSecretParam {\n return {\n domain: item[\"domain\"],\n name: item[\"name\"],\n value: item[\"value\"],\n };\n}\n\n/** Defines a function in your own code the model can choose to call. Learn more about [function calling](https://platform.openai.com/docs/guides/function-calling). */\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 tool. */\n description?: string;\n /** The parameters schema for the function. */\n parameters?: Record<string, unknown>;\n /** The schema for the function output. */\n output_schema?: Record<string, unknown>;\n /** Whether the function arguments must strictly match the parameters schema. */\n strict?: boolean;\n /** Whether this function is deferred and loaded via tool search. */\n defer_loading?: boolean;\n /** The callers that may invoke this tool. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** Whether the tool response can be returned asynchronously versus immediately returned on next response creation. */\n async?: 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 output_schema: item[\"output_schema\"],\n strict: item[\"strict\"],\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n async: item[\"async\"],\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 output_schema: !item[\"output_schema\"]\n ? item[\"output_schema\"]\n : Object.fromEntries(\n Object.entries(item[\"output_schema\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n strict: item[\"strict\"],\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n async: item[\"async\"],\n };\n}\n\n/** A tool that searches for relevant content from uploaded files. Learn more about the [file search tool](https://platform.openai.com/docs/guides/tools-file-search). */\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 /** Filters to apply to the file search. */\n filters?: Filters;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function fileSearchToolSerializer(item: FileSearchTool): any {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"],\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 name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function fileSearchToolDeserializer(item: any): FileSearchTool {\n return {\n type: item[\"type\"],\n vector_store_ids: item[\"vector_store_ids\"],\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 name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** model interface RankingOptions */\nexport interface RankingOptions {\n /** The ranker to use for the file search. */\n ranker?: RankerVersionType;\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 /** Weights that control how reciprocal rank fusion balances semantic embedding matches versus sparse keyword matches when hybrid search is enabled. */\n hybrid_search?: HybridSearchOptions;\n}\n\nexport function rankingOptionsSerializer(item: RankingOptions): any {\n return {\n ranker: item[\"ranker\"],\n score_threshold: item[\"score_threshold\"],\n hybrid_search: !item[\"hybrid_search\"]\n ? item[\"hybrid_search\"]\n : hybridSearchOptionsSerializer(item[\"hybrid_search\"]),\n };\n}\n\nexport function rankingOptionsDeserializer(item: any): RankingOptions {\n return {\n ranker: item[\"ranker\"],\n score_threshold: item[\"score_threshold\"],\n hybrid_search: !item[\"hybrid_search\"]\n ? item[\"hybrid_search\"]\n : hybridSearchOptionsDeserializer(item[\"hybrid_search\"]),\n };\n}\n\n/** Type of RankerVersionType */\nexport type RankerVersionType = \"auto\" | \"default-2024-11-15\";\n\n/** model interface HybridSearchOptions */\nexport interface HybridSearchOptions {\n /** The weight of the embedding in the reciprocal ranking fusion. */\n embedding_weight: number;\n /** The weight of the text in the reciprocal ranking fusion. */\n text_weight: number;\n}\n\nexport function hybridSearchOptionsSerializer(item: HybridSearchOptions): any {\n return { embedding_weight: item[\"embedding_weight\"], text_weight: item[\"text_weight\"] };\n}\n\nexport function hybridSearchOptionsDeserializer(item: any): HybridSearchOptions {\n return {\n embedding_weight: item[\"embedding_weight\"],\n text_weight: item[\"text_weight\"],\n };\n}\n\n/** Alias for Filters */\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/** A filter used to compare a specified attribute key to a given value using a defined comparison operation. */\nexport interface ComparisonFilter {\n /**\n * Specifies the comparison operator: `eq`, `ne`, `gt`, `gte`, `lt`, `lte`, `in`, `nin`.\n * - `eq`: equals\n * - `ne`: not equal\n * - `gt`: greater than\n * - `gte`: greater than or equal\n * - `lt`: less than\n * - `lte`: less than or equal\n * - `in`: in\n * - `nin`: not in\n */\n type: \"eq\" | \"ne\" | \"gt\" | \"gte\" | \"lt\" | \"lte\" | \"in\" | \"nin\";\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 | _FileSearchToolFiltersValue[];\n}\n\nexport function comparisonFilterSerializer(item: ComparisonFilter): any {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _fileSearchToolFiltersValueSerializer(item[\"value\"]),\n };\n}\n\nexport function comparisonFilterDeserializer(item: any): ComparisonFilter {\n return {\n type: item[\"type\"],\n key: item[\"key\"],\n value: _fileSearchToolFiltersValueDeserializer(item[\"value\"]),\n };\n}\n\n/** Alias for FileSearchToolFiltersValue */\nexport type FileSearchToolFiltersValue = string | number | boolean | _FileSearchToolFiltersValue[];\n\nexport function _fileSearchToolFiltersValueSerializer(item: FileSearchToolFiltersValue): any {\n return item;\n}\n\nexport function _fileSearchToolFiltersValueDeserializer(item: any): FileSearchToolFiltersValue {\n return item;\n}\n\nexport function _fileSearchToolFiltersValue1ArraySerializer(\n result: Array<_FileSearchToolFiltersValue>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersValue1Serializer(item);\n });\n}\n\nexport function _fileSearchToolFiltersValue1ArrayDeserializer(\n result: Array<_FileSearchToolFiltersValue>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersValue1Deserializer(item);\n });\n}\n\n/** Alias for _FileSearchToolFiltersValue */\nexport type _FileSearchToolFiltersValue = string | number;\n/** Alias for ComparisonFilterValueItems */\nexport type ComparisonFilterValueItems = _FileSearchToolFiltersValue;\n\nexport function _fileSearchToolFiltersValue1Serializer(item: _FileSearchToolFiltersValue): any {\n return item;\n}\n\nexport function _fileSearchToolFiltersValue1Deserializer(item: any): _FileSearchToolFiltersValue {\n return item;\n}\n\n/** Combine multiple filters using `and` or `or`. */\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: _fileSearchToolFiltersFilterArraySerializer(item[\"filters\"]),\n };\n}\n\nexport function compoundFilterDeserializer(item: any): CompoundFilter {\n return {\n type: item[\"type\"],\n filters: _fileSearchToolFiltersFilterArrayDeserializer(item[\"filters\"]),\n };\n}\n\nexport function _fileSearchToolFiltersFilterArraySerializer(\n result: Array<_FileSearchToolFiltersFilter>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersFilterSerializer(item);\n });\n}\n\nexport function _fileSearchToolFiltersFilterArrayDeserializer(\n result: Array<_FileSearchToolFiltersFilter>,\n): any[] {\n return result.map((item) => {\n return _fileSearchToolFiltersFilterDeserializer(item);\n });\n}\n\n/** Alias for _FileSearchToolFiltersFilter */\nexport type _FileSearchToolFiltersFilter = ComparisonFilter | CompoundFilter;\n\nexport function _fileSearchToolFiltersFilterSerializer(item: _FileSearchToolFiltersFilter): any {\n return item;\n}\n\nexport function _fileSearchToolFiltersFilterDeserializer(item: any): _FileSearchToolFiltersFilter {\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: ComputerEnvironment;\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/** Type of ComputerEnvironment */\nexport type ComputerEnvironment = \"windows\" | \"mac\" | \"linux\" | \"ubuntu\" | \"browser\";\n\n/**\n * Search the Internet for sources related to the prompt. Learn more about the\n * [web search tool](https://platform.openai.com/docs/guides/tools-web-search).\n */\nexport interface WebSearchTool extends Tool {\n /** The type of the web search tool. One of `web_search` or `web_search_2025_08_26`. */\n type: \"web_search\";\n /** Filters to apply to web search results. */\n filters?: WebSearchToolFilters;\n /** The approximate location of the user for search relevance. */\n user_location?: WebSearchApproximateLocation;\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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 custom_search_configuration?: WebSearchConfiguration;\n /** Allow live internet access for web search. Defaults to true when omitted. When false, the web search tool runs in offline/cache-only mode and will not fetch new external content. */\n external_web_access?: boolean;\n}\n\nexport function webSearchToolSerializer(item: WebSearchTool): any {\n return {\n type: item[\"type\"],\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersSerializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationSerializer(item[\"custom_search_configuration\"]),\n external_web_access: item[\"external_web_access\"],\n };\n}\n\nexport function webSearchToolDeserializer(item: any): WebSearchTool {\n return {\n type: item[\"type\"],\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersDeserializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationDeserializer(item[\"custom_search_configuration\"]),\n external_web_access: item[\"external_web_access\"],\n };\n}\n\n/** model interface WebSearchToolFilters */\nexport interface WebSearchToolFilters {\n /** The list of allowed domains for web search results. */\n allowed_domains?: string[];\n}\n\nexport function webSearchToolFiltersSerializer(item: WebSearchToolFilters): any {\n return {\n allowed_domains: item[\"allowed_domains\"],\n };\n}\n\nexport function webSearchToolFiltersDeserializer(item: any): WebSearchToolFilters {\n return {\n allowed_domains: item[\"allowed_domains\"],\n };\n}\n\n/** The approximate location of the user. */\nexport interface WebSearchApproximateLocation {\n /** The type of location approximation. Always `approximate`. */\n type?: \"approximate\";\n /** The two-letter ISO country code. */\n country?: string;\n /** The region or state for the approximate location. */\n region?: string;\n /** The city for the approximate location. */\n city?: string;\n /** The IANA timezone identifier (e.g. 'America/New_York'). */\n timezone?: string;\n}\n\nexport function webSearchApproximateLocationSerializer(item: WebSearchApproximateLocation): 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 webSearchApproximateLocationDeserializer(item: any): WebSearchApproximateLocation {\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/** A web search configuration for bing custom search */\nexport interface WebSearchConfiguration {\n /** Project connection id for grounding with bing custom search */\n project_connection_id: string;\n /** Name of the custom configuration instance given to config. */\n instance_name: string;\n}\n\nexport function webSearchConfigurationSerializer(item: WebSearchConfiguration): any {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n };\n}\n\nexport function webSearchConfigurationDeserializer(item: any): WebSearchConfiguration {\n return {\n project_connection_id: item[\"project_connection_id\"],\n instance_name: item[\"instance_name\"],\n };\n}\n\n/**\n * Give the model access to additional tools via remote Model Context Protocol\n * (MCP) servers. [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 /**\n * The URL for the MCP server. One of `server_url`, `connector_id`, or\n * `tunnel_id` must be provided.\n */\n server_url?: string;\n /**\n * Identifier for service connectors, like those available in ChatGPT. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more\n * about service connectors [here](https://platform.openai.com/docs/guides/tools-remote-mcp#connectors).\n * Currently supported `connector_id` values are:\n * - Dropbox: `connector_dropbox`\n * - Gmail: `connector_gmail`\n * - Google Calendar: `connector_googlecalendar`\n * - Google Drive: `connector_googledrive`\n * - Microsoft Teams: `connector_microsoftteams`\n * - Outlook Calendar: `connector_outlookcalendar`\n * - Outlook Email: `connector_outlookemail`\n * - SharePoint: `connector_sharepoint`\n */\n connector_id?:\n | \"connector_dropbox\"\n | \"connector_gmail\"\n | \"connector_googlecalendar\"\n | \"connector_googledrive\"\n | \"connector_microsoftteams\"\n | \"connector_outlookcalendar\"\n | \"connector_outlookemail\"\n | \"connector_sharepoint\";\n /**\n * The Secure MCP Tunnel ID to use instead of a direct server URL. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided.\n */\n tunnel_id?: string;\n /**\n * An OAuth access token that can be used with a remote MCP server, either\n * with a custom MCP server URL or a service connector. Your application\n * must handle the OAuth authorization flow and provide the token here.\n */\n authorization?: string;\n /** Optional description of the MCP server, used to provide more context. */\n server_description?: string;\n /** Custom headers to include in requests to the MCP server. */\n headers?: Record<string, string>;\n /** The list of allowed tool names for the MCP server. */\n allowed_tools?: string[] | MCPToolFilter;\n /** The callers that may invoke this tool. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** The approval requirements for the MCP tool. */\n require_approval?: MCPToolRequireApproval | \"always\" | \"never\";\n /** Whether this MCP tool is deferred and discovered via tool search. */\n defer_loading?: boolean;\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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 connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\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 connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** Alias for _MCPToolAllowedTools */\nexport type _MCPToolAllowedTools = string[] | MCPToolFilter;\n\nexport function _mcpToolAllowedToolsSerializer(item: _MCPToolAllowedTools): any {\n return item;\n}\n\nexport function _mcpToolAllowedToolsDeserializer(item: any): _MCPToolAllowedTools {\n return item;\n}\n\n/** Alias for _MCPToolRequireApproval */\nexport type _MCPToolRequireApproval = MCPToolRequireApproval | \"always\" | \"never\";\n\nexport function _mcpToolRequireApprovalSerializer(item: _MCPToolRequireApproval): any {\n return item;\n}\n\nexport function _mcpToolRequireApprovalDeserializer(item: any): _MCPToolRequireApproval {\n return item;\n}\n\n/** A tool that generates images using the GPT image models. */\nexport interface ImageGenTool extends Tool {\n /** The type of the image generation tool. Always `image_generation`. */\n type: \"image_generation\";\n /** The model to use for image generation. */\n model?:\n \"gpt-image-1\" | \"gpt-image-1-mini\" | \"gpt-image-1.5\" | \"gpt-image-2\" | \"gpt-image-2-2026-04-21\";\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 /** The size of the generated images. For `gpt-image-2` and `gpt-image-2-2026-04-21`, arbitrary resolutions are supported as `WIDTHxHEIGHT` strings, for example `1536x864`. Width and height must both be divisible by 16 and the requested aspect ratio must be between 1:3 and 3:1. Resolutions above `2560x1440` are experimental, and the maximum supported resolution is `3840x2160`. The requested size must also satisfy the model's current pixel and edge limits. The standard sizes `1024x1024`, `1536x1024`, and `1024x1536` are supported by the GPT image models; `auto` is supported for models that allow automatic sizing. For `dall-e-2`, use one of `256x256`, `512x512`, or `1024x1024`. For `dall-e-3`, use one of `1024x1024`, `1792x1024`, or `1024x1792`. */\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 /** The fidelity level for input image processing. */\n input_fidelity?: InputFidelity;\n /**\n * Optional mask for inpainting. Contains `image_url`\n * (string, optional) and `file_id` (string, optional).\n */\n input_image_mask?: ImageGenToolInputImageMask;\n /** Number of partial images to generate in streaming mode, from 0 (default value) to 3. */\n partial_images?: number;\n /** Whether to generate a new image or edit an existing image. Default: `auto`. */\n action?: ImageGenAction;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\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_fidelity: item[\"input_fidelity\"],\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 action: item[\"action\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\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_fidelity: item[\"input_fidelity\"],\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 action: item[\"action\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** Control how much effort the model will exert to match the style and features, especially facial features, of input images. This parameter is only supported for `gpt-image-1` and `gpt-image-1.5` and later models, unsupported for `gpt-image-1-mini`. Supports `high` and `low`. Defaults to `low`. */\nexport type InputFidelity = \"high\" | \"low\";\n\n/** model interface ImageGenToolInputImageMask */\nexport interface ImageGenToolInputImageMask {\n /** The URL of the mask image. */\n image_url?: string;\n /** The file identifier 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/** Type of ImageGenAction */\nexport type ImageGenAction = \"generate\" | \"edit\" | \"auto\";\n\n/** A tool that allows the model to execute shell commands in a local environment. */\nexport interface LocalShellToolParam extends Tool {\n /** The type of the local shell tool. Always `local_shell`. */\n type: \"local_shell\";\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function localShellToolParamSerializer(item: LocalShellToolParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function localShellToolParamDeserializer(item: any): LocalShellToolParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** A tool that allows the model to execute shell commands. */\nexport interface FunctionShellToolParam extends Tool {\n /** The type of the shell tool. Always `shell`. */\n type: \"shell\";\n /** The environment configuration for the function shell tool. */\n environment?: FunctionShellToolParamEnvironmentUnion;\n /** The callers that may invoke this tool. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n name?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n description?: string;\n /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function functionShellToolParamSerializer(item: FunctionShellToolParam): any {\n return {\n type: item[\"type\"],\n environment: !item[\"environment\"]\n ? item[\"environment\"]\n : functionShellToolParamEnvironmentUnionSerializer(item[\"environment\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function functionShellToolParamDeserializer(item: any): FunctionShellToolParam {\n return {\n type: item[\"type\"],\n environment: !item[\"environment\"]\n ? item[\"environment\"]\n : functionShellToolParamEnvironmentUnionDeserializer(item[\"environment\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** model interface FunctionShellToolParamEnvironment */\nexport interface FunctionShellToolParamEnvironment {\n /** The environment type. */\n type: FunctionShellToolParamEnvironmentType;\n}\n\nexport function functionShellToolParamEnvironmentSerializer(\n item: FunctionShellToolParamEnvironment,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function functionShellToolParamEnvironmentDeserializer(\n item: any,\n): FunctionShellToolParamEnvironment {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for FunctionShellToolParamEnvironmentUnion */\nexport type FunctionShellToolParamEnvironmentUnion =\n | FunctionShellToolParamEnvironmentLocalEnvironmentParam\n | FunctionShellToolParamEnvironmentContainerReferenceParam\n | ContainerAutoParam\n | FunctionShellToolParamEnvironment;\n\nexport function functionShellToolParamEnvironmentUnionSerializer(\n item: FunctionShellToolParamEnvironmentUnion,\n): any {\n switch (item.type) {\n case \"local\":\n return functionShellToolParamEnvironmentLocalEnvironmentParamSerializer(\n item as FunctionShellToolParamEnvironmentLocalEnvironmentParam,\n );\n\n case \"container_reference\":\n return functionShellToolParamEnvironmentContainerReferenceParamSerializer(\n item as FunctionShellToolParamEnvironmentContainerReferenceParam,\n );\n\n case \"container_auto\":\n return containerAutoParamSerializer(item as ContainerAutoParam);\n\n default:\n return functionShellToolParamEnvironmentSerializer(item);\n }\n}\n\nexport function functionShellToolParamEnvironmentUnionDeserializer(\n item: any,\n): FunctionShellToolParamEnvironmentUnion {\n switch (item[\"type\"]) {\n case \"local\":\n return functionShellToolParamEnvironmentLocalEnvironmentParamDeserializer(\n item as FunctionShellToolParamEnvironmentLocalEnvironmentParam,\n );\n\n case \"container_reference\":\n return functionShellToolParamEnvironmentContainerReferenceParamDeserializer(\n item as FunctionShellToolParamEnvironmentContainerReferenceParam,\n );\n\n case \"container_auto\":\n return containerAutoParamDeserializer(item as ContainerAutoParam);\n\n default:\n return functionShellToolParamEnvironmentDeserializer(item);\n }\n}\n\n/** Type of FunctionShellToolParamEnvironmentType */\nexport type FunctionShellToolParamEnvironmentType =\n \"container_auto\" | \"local\" | \"container_reference\";\n\n/** model interface FunctionShellToolParamEnvironmentLocalEnvironmentParam */\nexport interface FunctionShellToolParamEnvironmentLocalEnvironmentParam extends FunctionShellToolParamEnvironment {\n /** Use a local computer environment. */\n type: \"local\";\n /** An optional list of skills. */\n skills?: LocalSkillParam[];\n}\n\nexport function functionShellToolParamEnvironmentLocalEnvironmentParamSerializer(\n item: FunctionShellToolParamEnvironmentLocalEnvironmentParam,\n): any {\n return {\n type: item[\"type\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : localSkillParamArraySerializer(item[\"skills\"]),\n };\n}\n\nexport function functionShellToolParamEnvironmentLocalEnvironmentParamDeserializer(\n item: any,\n): FunctionShellToolParamEnvironmentLocalEnvironmentParam {\n return {\n type: item[\"type\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : localSkillParamArrayDeserializer(item[\"skills\"]),\n };\n}\n\nexport function localSkillParamArraySerializer(result: Array<LocalSkillParam>): any[] {\n return result.map((item) => {\n return localSkillParamSerializer(item);\n });\n}\n\nexport function localSkillParamArrayDeserializer(result: Array<LocalSkillParam>): any[] {\n return result.map((item) => {\n return localSkillParamDeserializer(item);\n });\n}\n\n/** model interface LocalSkillParam */\nexport interface LocalSkillParam {\n /** The name of the skill. */\n name: string;\n /** The description of the skill. */\n description: string;\n /** The path to the directory containing the skill. */\n path: string;\n}\n\nexport function localSkillParamSerializer(item: LocalSkillParam): any {\n return { name: item[\"name\"], description: item[\"description\"], path: item[\"path\"] };\n}\n\nexport function localSkillParamDeserializer(item: any): LocalSkillParam {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n path: item[\"path\"],\n };\n}\n\n/** model interface FunctionShellToolParamEnvironmentContainerReferenceParam */\nexport interface FunctionShellToolParamEnvironmentContainerReferenceParam extends FunctionShellToolParamEnvironment {\n /** References a container created with the /v1/containers endpoint */\n type: \"container_reference\";\n /** The ID of the referenced container. */\n container_id: string;\n}\n\nexport function functionShellToolParamEnvironmentContainerReferenceParamSerializer(\n item: FunctionShellToolParamEnvironmentContainerReferenceParam,\n): any {\n return { type: item[\"type\"], container_id: item[\"container_id\"] };\n}\n\nexport function functionShellToolParamEnvironmentContainerReferenceParamDeserializer(\n item: any,\n): FunctionShellToolParamEnvironmentContainerReferenceParam {\n return {\n type: item[\"type\"],\n container_id: item[\"container_id\"],\n };\n}\n\n/** model interface ContainerAutoParam */\nexport interface ContainerAutoParam extends FunctionShellToolParamEnvironment {\n /** Automatically creates a container for this request */\n type: \"container_auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n /** The memory limit for the container, in bytes. */\n memory_limit?: ContainerMemoryLimit;\n /** An optional list of skills referenced by id or inline data. */\n skills?: ContainerSkillUnion[];\n /** The network access policy for the container. */\n network_policy?: ContainerNetworkPolicyParamUnion;\n}\n\nexport function containerAutoParamSerializer(item: ContainerAutoParam): any {\n return {\n type: item[\"type\"],\n file_ids: item[\"file_ids\"],\n memory_limit: item[\"memory_limit\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : containerSkillUnionArraySerializer(item[\"skills\"]),\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionSerializer(item[\"network_policy\"]),\n };\n}\n\nexport function containerAutoParamDeserializer(item: any): ContainerAutoParam {\n return {\n type: item[\"type\"],\n file_ids: item[\"file_ids\"],\n memory_limit: item[\"memory_limit\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : containerSkillUnionArrayDeserializer(item[\"skills\"]),\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : containerNetworkPolicyParamUnionDeserializer(item[\"network_policy\"]),\n };\n}\n\nexport function containerSkillUnionArraySerializer(result: Array<ContainerSkillUnion>): any[] {\n return result.map((item) => {\n return containerSkillUnionSerializer(item);\n });\n}\n\nexport function containerSkillUnionArrayDeserializer(result: Array<ContainerSkillUnion>): any[] {\n return result.map((item) => {\n return containerSkillUnionDeserializer(item);\n });\n}\n\n/** model interface ContainerSkill */\nexport interface ContainerSkill {\n /** The type discriminator for the container skill. */\n type: ContainerSkillType;\n}\n\nexport function containerSkillSerializer(item: ContainerSkill): any {\n return { type: item[\"type\"] };\n}\n\nexport function containerSkillDeserializer(item: any): ContainerSkill {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ContainerSkillUnion */\nexport type ContainerSkillUnion = SkillReferenceParam | InlineSkillParam | ContainerSkill;\n\nexport function containerSkillUnionSerializer(item: ContainerSkillUnion): any {\n switch (item.type) {\n case \"skill_reference\":\n return skillReferenceParamSerializer(item as SkillReferenceParam);\n\n case \"inline\":\n return inlineSkillParamSerializer(item as InlineSkillParam);\n\n default:\n return containerSkillSerializer(item);\n }\n}\n\nexport function containerSkillUnionDeserializer(item: any): ContainerSkillUnion {\n switch (item[\"type\"]) {\n case \"skill_reference\":\n return skillReferenceParamDeserializer(item as SkillReferenceParam);\n\n case \"inline\":\n return inlineSkillParamDeserializer(item as InlineSkillParam);\n\n default:\n return containerSkillDeserializer(item);\n }\n}\n\n/** Type of ContainerSkillType */\nexport type ContainerSkillType = \"skill_reference\" | \"inline\";\n\n/** model interface SkillReferenceParam */\nexport interface SkillReferenceParam extends ContainerSkill {\n /** References a skill created with the /v1/skills endpoint. */\n type: \"skill_reference\";\n /** The ID of the referenced skill. */\n skill_id: string;\n /** Optional skill version. Use a positive integer or 'latest'. Omit for default. */\n version?: string;\n}\n\nexport function skillReferenceParamSerializer(item: SkillReferenceParam): any {\n return { type: item[\"type\"], skill_id: item[\"skill_id\"], version: item[\"version\"] };\n}\n\nexport function skillReferenceParamDeserializer(item: any): SkillReferenceParam {\n return {\n type: item[\"type\"],\n skill_id: item[\"skill_id\"],\n version: item[\"version\"],\n };\n}\n\n/** model interface InlineSkillParam */\nexport interface InlineSkillParam extends ContainerSkill {\n /** Defines an inline skill for this request. */\n type: \"inline\";\n /** The name of the skill. */\n name: string;\n /** The description of the skill. */\n description: string;\n /** Inline skill payload */\n source: InlineSkillSourceParam;\n}\n\nexport function inlineSkillParamSerializer(item: InlineSkillParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n source: inlineSkillSourceParamSerializer(item[\"source\"]),\n };\n}\n\nexport function inlineSkillParamDeserializer(item: any): InlineSkillParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n source: inlineSkillSourceParamDeserializer(item[\"source\"]),\n };\n}\n\n/** Inline skill payload */\nexport interface InlineSkillSourceParam {\n /** The type of the inline skill source. Must be `base64`. */\n type: \"base64\";\n /** The media type of the inline skill payload. Must be `application/zip`. */\n media_type: \"application/zip\";\n /** Base64-encoded skill zip bundle. */\n data: string;\n}\n\nexport function inlineSkillSourceParamSerializer(item: InlineSkillSourceParam): any {\n return { type: item[\"type\"], media_type: item[\"media_type\"], data: item[\"data\"] };\n}\n\nexport function inlineSkillSourceParamDeserializer(item: any): InlineSkillSourceParam {\n return {\n type: item[\"type\"],\n media_type: item[\"media_type\"],\n data: item[\"data\"],\n };\n}\n\n/** A custom tool that processes input using a specified format. Learn more about [custom tools](https://platform.openai.com/docs/guides/function-calling#custom-tools) */\nexport interface CustomToolParam extends Tool {\n /** The type of the custom tool. Always `custom`. */\n type: \"custom\";\n /** The name of the custom tool, used to identify it in tool calls. */\n name: string;\n /** Optional description of the custom tool, used to provide more context. */\n description?: string;\n /** The input format for the custom tool. Default is unconstrained text. */\n format?: CustomToolParamFormatUnion;\n /** Whether this tool should be deferred and discovered via tool search. */\n defer_loading?: boolean;\n /** The callers that may invoke this custom tool, either directly or programmatically. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** Whether the tool response can be returned asynchronously versus immediately returned on next response creation. */\n async?: boolean;\n}\n\nexport function customToolParamSerializer(item: CustomToolParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n format: !item[\"format\"] ? item[\"format\"] : customToolParamFormatUnionSerializer(item[\"format\"]),\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n async: item[\"async\"],\n };\n}\n\nexport function customToolParamDeserializer(item: any): CustomToolParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n format: !item[\"format\"]\n ? item[\"format\"]\n : customToolParamFormatUnionDeserializer(item[\"format\"]),\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n async: item[\"async\"],\n };\n}\n\n/** The input format for the custom tool. Default is unconstrained text. */\nexport interface CustomToolParamFormat {\n /** The custom tool parameter format type. */\n type: CustomToolParamFormatType;\n}\n\nexport function customToolParamFormatSerializer(item: CustomToolParamFormat): any {\n return { type: item[\"type\"] };\n}\n\nexport function customToolParamFormatDeserializer(item: any): CustomToolParamFormat {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for CustomToolParamFormatUnion */\nexport type CustomToolParamFormatUnion =\n CustomTextFormatParam | CustomGrammarFormatParam | CustomToolParamFormat;\n\nexport function customToolParamFormatUnionSerializer(item: CustomToolParamFormatUnion): any {\n switch (item.type) {\n case \"text\":\n return customTextFormatParamSerializer(item as CustomTextFormatParam);\n\n case \"grammar\":\n return customGrammarFormatParamSerializer(item as CustomGrammarFormatParam);\n\n default:\n return customToolParamFormatSerializer(item);\n }\n}\n\nexport function customToolParamFormatUnionDeserializer(item: any): CustomToolParamFormatUnion {\n switch (item[\"type\"]) {\n case \"text\":\n return customTextFormatParamDeserializer(item as CustomTextFormatParam);\n\n case \"grammar\":\n return customGrammarFormatParamDeserializer(item as CustomGrammarFormatParam);\n\n default:\n return customToolParamFormatDeserializer(item);\n }\n}\n\n/** Type of CustomToolParamFormatType */\nexport type CustomToolParamFormatType = \"text\" | \"grammar\";\n\n/** Unconstrained free-form text. */\nexport interface CustomTextFormatParam extends CustomToolParamFormat {\n /** Unconstrained text format. Always `text`. */\n type: \"text\";\n}\n\nexport function customTextFormatParamSerializer(item: CustomTextFormatParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function customTextFormatParamDeserializer(item: any): CustomTextFormatParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** A grammar defined by the user. */\nexport interface CustomGrammarFormatParam extends CustomToolParamFormat {\n /** Grammar format. Always `grammar`. */\n type: \"grammar\";\n /** The syntax of the grammar definition. One of `lark` or `regex`. */\n syntax: GrammarSyntax;\n /** The grammar definition. */\n definition: string;\n}\n\nexport function customGrammarFormatParamSerializer(item: CustomGrammarFormatParam): any {\n return { type: item[\"type\"], syntax: item[\"syntax\"], definition: item[\"definition\"] };\n}\n\nexport function customGrammarFormatParamDeserializer(item: any): CustomGrammarFormatParam {\n return {\n type: item[\"type\"],\n syntax: item[\"syntax\"],\n definition: item[\"definition\"],\n };\n}\n\n/** Type of GrammarSyntax */\nexport type GrammarSyntax = \"lark\" | \"regex\";\n\n/** This tool searches the web for relevant results to use in a response. Learn more about the [web search tool](https://platform.openai.com/docs/guides/tools-web-search). */\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 approximate location of the user for search relevance. */\n user_location?: ApproximateLocation;\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?: SearchContextSize;\n /** The content types to include in web search results, such as text or images. */\n search_content_types?: SearchContentType[];\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 : approximateLocationSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n search_content_types: !item[\"search_content_types\"]\n ? item[\"search_content_types\"]\n : item[\"search_content_types\"].map((p: any) => {\n return p;\n }),\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 : approximateLocationDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n search_content_types: !item[\"search_content_types\"]\n ? item[\"search_content_types\"]\n : item[\"search_content_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** model interface ApproximateLocation */\nexport interface ApproximateLocation {\n /** The type of location approximation. Always `approximate`. */\n type: \"approximate\";\n /** The two-letter ISO country code. */\n country?: string;\n /** The region or state for the approximate location. */\n region?: string;\n /** The city for the approximate location. */\n city?: string;\n /** The IANA timezone identifier (e.g. 'America/New_York'). */\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/** Type of SearchContextSize */\nexport type SearchContextSize = \"low\" | \"medium\" | \"high\";\n\n/** Type of SearchContentType */\nexport type SearchContentType = \"text\" | \"image\";\n\n/** Allows the assistant to create, delete, or update files using unified diffs. */\nexport interface ApplyPatchToolParam extends Tool {\n /** The type of the tool. Always `apply_patch`. */\n type: \"apply_patch\";\n /** The callers that may invoke this apply-patch tool, either directly or programmatically. */\n allowed_callers?: CallableToolAllowedCaller[];\n}\n\nexport function applyPatchToolParamSerializer(item: ApplyPatchToolParam): any {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function applyPatchToolParamDeserializer(item: any): ApplyPatchToolParam {\n return {\n type: item[\"type\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n };\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 ComputerTool extends Tool {\n /** The type of the computer tool. Always `computer`. */\n type: \"computer\";\n}\n\nexport function computerToolSerializer(item: ComputerTool): any {\n return { type: item[\"type\"] };\n}\n\nexport function computerToolDeserializer(item: any): ComputerTool {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Groups function/custom tools under a shared namespace. */\nexport interface NamespaceToolParam extends Tool {\n /** The type of the tool. Always `namespace`. */\n type: \"namespace\";\n /** The namespace name used in tool calls (for example, `crm`). */\n name: string;\n /** A description of the namespace shown to the model. */\n description: string;\n /** The function/custom tools available inside this namespace. */\n tools: (FunctionToolParam | CustomToolParam)[];\n}\n\nexport function namespaceToolParamSerializer(item: NamespaceToolParam): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tools: _namespaceToolParamToolArraySerializer(item[\"tools\"]),\n };\n}\n\nexport function namespaceToolParamDeserializer(item: any): NamespaceToolParam {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tools: _namespaceToolParamToolArrayDeserializer(item[\"tools\"]),\n };\n}\n\nexport function _namespaceToolParamToolArraySerializer(\n result: Array<_NamespaceToolParamTool>,\n): any[] {\n return result.map((item) => {\n return _namespaceToolParamToolSerializer(item);\n });\n}\n\nexport function _namespaceToolParamToolArrayDeserializer(\n result: Array<_NamespaceToolParamTool>,\n): any[] {\n return result.map((item) => {\n return _namespaceToolParamToolDeserializer(item);\n });\n}\n\n/** Alias for _NamespaceToolParamTool */\nexport type _NamespaceToolParamTool = FunctionToolParam | CustomToolParam;\n\nexport function _namespaceToolParamToolSerializer(item: _NamespaceToolParamTool): any {\n return item;\n}\n\nexport function _namespaceToolParamToolDeserializer(item: any): _NamespaceToolParamTool {\n return item;\n}\n\n/** model interface FunctionToolParam */\nexport interface FunctionToolParam {\n /** The name used to identify the function in tool calls. */\n name: string;\n /** A description of the function that helps the model decide when and how to call it. */\n description?: string;\n /** The JSON Schema describing the arguments accepted by the function. */\n parameters?: EmptyModelParam;\n /** Whether function arguments must strictly match the parameters schema. */\n strict?: boolean;\n /** The type of the function tool. Always `function`. */\n type: \"function\";\n /** The JSON Schema describing the function output. */\n output_schema?: Record<string, any>;\n /** Whether this function should be deferred and discovered via tool search. */\n defer_loading?: boolean;\n /** The callers that may invoke this function tool, either directly or programmatically. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** Whether the tool response can be returned asynchronously versus immediately returned on next response creation. */\n async?: boolean;\n}\n\nexport function functionToolParamSerializer(item: FunctionToolParam): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamSerializer(item[\"parameters\"]),\n strict: item[\"strict\"],\n type: item[\"type\"],\n output_schema: item[\"output_schema\"],\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n async: item[\"async\"],\n };\n}\n\nexport function functionToolParamDeserializer(item: any): FunctionToolParam {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamDeserializer(item[\"parameters\"]),\n strict: item[\"strict\"],\n type: item[\"type\"],\n output_schema: !item[\"output_schema\"]\n ? item[\"output_schema\"]\n : Object.fromEntries(\n Object.entries(item[\"output_schema\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n defer_loading: item[\"defer_loading\"],\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n async: item[\"async\"],\n };\n}\n\n/** model interface EmptyModelParam */\nexport interface EmptyModelParam {}\n\nexport function emptyModelParamSerializer(_item: EmptyModelParam): any {\n return {};\n}\n\nexport function emptyModelParamDeserializer(item: any): EmptyModelParam {\n return item;\n}\n\n/** Hosted or BYOT tool search configuration for deferred tools. */\nexport interface ToolSearchToolParam extends Tool {\n /** The type of the tool. Always `tool_search`. */\n type: \"tool_search\";\n /** Whether tool search is executed by the server or by the client. */\n execution?: ToolSearchExecutionType;\n /** Guidance shown to the model for a tool search implementation that runs on the client. */\n description?: string;\n /** The parameter schema for a tool search implementation that runs on the client. */\n parameters?: EmptyModelParam;\n}\n\nexport function toolSearchToolParamSerializer(item: ToolSearchToolParam): any {\n return {\n type: item[\"type\"],\n execution: item[\"execution\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamSerializer(item[\"parameters\"]),\n };\n}\n\nexport function toolSearchToolParamDeserializer(item: any): ToolSearchToolParam {\n return {\n type: item[\"type\"],\n execution: item[\"execution\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : emptyModelParamDeserializer(item[\"parameters\"]),\n };\n}\n\n/** Type of ToolSearchExecutionType */\nexport type ToolSearchExecutionType = \"server\" | \"client\";\n\n/** Container-based deployment configuration for a hosted agent. */\nexport interface ContainerConfiguration {\n /** The container image for the hosted agent. */\n image: string;\n /**\n * The id (or name) of the Foundry project connection that provides the credentials used to\n * authenticate to the private container registry hosting `image`. The connection abstracts the\n * auth mechanism \u2014 for example a managed-identity-federated token exchange, or a username/token\n * secret \u2014 so registry credentials are never part of the agent definition. Omit for public images\n * or registries already reachable by the platform's default identity (for example, Azure Container Registry).\n */\n registry_connection_id?: string;\n}\n\nexport function containerConfigurationSerializer(item: ContainerConfiguration): any {\n return { image: item[\"image\"], registry_connection_id: item[\"registry_connection_id\"] };\n}\n\nexport function containerConfigurationDeserializer(item: any): ContainerConfiguration {\n return {\n image: item[\"image\"],\n registry_connection_id: item[\"registry_connection_id\"],\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. '1.0.0'. */\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 =\n \"activity\" | \"responses\" | \"a2a\" | \"mcp\" | \"invocations\" | \"voice\" | \"invocations_ws\";\n\n/** Code-based deployment configuration for a hosted agent. */\nexport interface CodeConfiguration {\n /** The runtime identifier for code execution ('python_3_14'). */\n runtime: string;\n /** The entry point command and arguments for the code execution. */\n entry_point: string[];\n /**\n * How package dependencies are resolved at deployment time. Defaults to `bundled`,\n * where the caller bundles all dependencies into the uploaded zip and the service\n * performs no remote build. `remote_build` instructs the service to build\n * dependencies remotely from the manifest included in the uploaded zip.\n */\n dependency_resolution: CodeDependencyResolution;\n /** The SHA-256 hex digest of the uploaded code zip. Set by the service from the `x-ms-code-zip-sha256` request header; read-only in responses and never accepted in request payloads. */\n readonly content_hash?: string;\n}\n\nexport function codeConfigurationSerializer(item: CodeConfiguration): any {\n return {\n runtime: item[\"runtime\"],\n entry_point: item[\"entry_point\"].map((p: any) => {\n return p;\n }),\n dependency_resolution: item[\"dependency_resolution\"],\n };\n}\n\nexport function codeConfigurationDeserializer(item: any): CodeConfiguration {\n return {\n runtime: item[\"runtime\"],\n entry_point: item[\"entry_point\"].map((p: any) => {\n return p;\n }),\n dependency_resolution: item[\"dependency_resolution\"],\n content_hash: item[\"content_hash\"],\n };\n}\n\n/** How package dependencies are resolved at deployment time for a code-based hosted agent. */\nexport type CodeDependencyResolution = \"bundled\" | \"remote_build\";\n\n/** Customer-supplied telemetry configuration for exporting container logs, traces, and metrics. */\nexport interface TelemetryConfig {\n /** Customer-supplied telemetry export endpoint configurations. */\n endpoints: TelemetryEndpointUnion[];\n}\n\nexport function telemetryConfigSerializer(item: TelemetryConfig): any {\n return { endpoints: telemetryEndpointUnionArraySerializer(item[\"endpoints\"]) };\n}\n\nexport function telemetryConfigDeserializer(item: any): TelemetryConfig {\n return {\n endpoints: telemetryEndpointUnionArrayDeserializer(item[\"endpoints\"]),\n };\n}\n\nexport function telemetryEndpointUnionArraySerializer(\n result: Array<TelemetryEndpointUnion>,\n): any[] {\n return result.map((item) => {\n return telemetryEndpointUnionSerializer(item);\n });\n}\n\nexport function telemetryEndpointUnionArrayDeserializer(\n result: Array<TelemetryEndpointUnion>,\n): any[] {\n return result.map((item) => {\n return telemetryEndpointUnionDeserializer(item);\n });\n}\n\n/** A telemetry export endpoint configuration. */\nexport interface TelemetryEndpoint {\n /** The telemetry export endpoint kind. */\n /** The discriminator possible values: OTLP */\n kind: TelemetryEndpointKind;\n /** Data types to export to this endpoint. Use an empty array to export no data. */\n data: TelemetryDataKind[];\n /** Optional authentication configuration. */\n auth?: TelemetryEndpointAuthUnion;\n}\n\nexport function telemetryEndpointSerializer(item: TelemetryEndpoint): any {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionSerializer(item[\"auth\"]),\n };\n}\n\nexport function telemetryEndpointDeserializer(item: any): TelemetryEndpoint {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionDeserializer(item[\"auth\"]),\n };\n}\n\n/** Alias for TelemetryEndpointUnion */\nexport type TelemetryEndpointUnion = OtlpTelemetryEndpoint | TelemetryEndpoint;\n\nexport function telemetryEndpointUnionSerializer(item: TelemetryEndpointUnion): any {\n switch (item.kind) {\n case \"OTLP\":\n return otlpTelemetryEndpointSerializer(item as OtlpTelemetryEndpoint);\n\n default:\n return telemetryEndpointSerializer(item);\n }\n}\n\nexport function telemetryEndpointUnionDeserializer(item: any): TelemetryEndpointUnion {\n switch (item[\"kind\"]) {\n case \"OTLP\":\n return otlpTelemetryEndpointDeserializer(item as OtlpTelemetryEndpoint);\n\n default:\n return telemetryEndpointDeserializer(item);\n }\n}\n\n/** The kind of telemetry export endpoint. */\nexport type TelemetryEndpointKind = \"OTLP\";\n\n/** The type of telemetry data to export. */\nexport type TelemetryDataKind = \"ContainerStdoutStderr\" | \"ContainerOtel\" | \"Metrics\";\n\n/** Authentication configuration for a telemetry endpoint. */\nexport interface TelemetryEndpointAuth {\n /** The authentication type. */\n /** The discriminator possible values: header */\n type: TelemetryEndpointAuthType;\n}\n\nexport function telemetryEndpointAuthSerializer(item: TelemetryEndpointAuth): any {\n return { type: item[\"type\"] };\n}\n\nexport function telemetryEndpointAuthDeserializer(item: any): TelemetryEndpointAuth {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TelemetryEndpointAuthUnion */\nexport type TelemetryEndpointAuthUnion = HeaderTelemetryEndpointAuth | TelemetryEndpointAuth;\n\nexport function telemetryEndpointAuthUnionSerializer(item: TelemetryEndpointAuthUnion): any {\n switch (item.type) {\n case \"header\":\n return headerTelemetryEndpointAuthSerializer(item as HeaderTelemetryEndpointAuth);\n\n default:\n return telemetryEndpointAuthSerializer(item);\n }\n}\n\nexport function telemetryEndpointAuthUnionDeserializer(item: any): TelemetryEndpointAuthUnion {\n switch (item[\"type\"]) {\n case \"header\":\n return headerTelemetryEndpointAuthDeserializer(item as HeaderTelemetryEndpointAuth);\n\n default:\n return telemetryEndpointAuthDeserializer(item);\n }\n}\n\n/** The type of authentication for a telemetry endpoint. */\nexport type TelemetryEndpointAuthType = \"header\";\n\n/** Header-based secret authentication for a telemetry endpoint. The resolved secret value is injected as an HTTP header. */\nexport interface HeaderTelemetryEndpointAuth extends TelemetryEndpointAuth {\n /** The authentication type, always 'header' for header-based secret authentication. */\n type: \"header\";\n /** The name of the HTTP header to inject the secret value into. */\n header_name: string;\n /** The identifier of the secret store or connection. */\n secret_id: string;\n /** The key within the secret to retrieve the authentication value. */\n secret_key: string;\n}\n\nexport function headerTelemetryEndpointAuthSerializer(item: HeaderTelemetryEndpointAuth): any {\n return {\n type: item[\"type\"],\n header_name: item[\"header_name\"],\n secret_id: item[\"secret_id\"],\n secret_key: item[\"secret_key\"],\n };\n}\n\nexport function headerTelemetryEndpointAuthDeserializer(item: any): HeaderTelemetryEndpointAuth {\n return {\n type: item[\"type\"],\n header_name: item[\"header_name\"],\n secret_id: item[\"secret_id\"],\n secret_key: item[\"secret_key\"],\n };\n}\n\n/** An OTLP (OpenTelemetry Protocol) telemetry export endpoint. */\nexport interface OtlpTelemetryEndpoint extends TelemetryEndpoint {\n /** The endpoint kind, always 'OTLP' for OpenTelemetry Protocol endpoints. */\n kind: \"OTLP\";\n /** The OTLP collector endpoint URL. */\n endpoint: string;\n /** The transport protocol for the OTLP endpoint. */\n protocol: TelemetryTransportProtocol;\n}\n\nexport function otlpTelemetryEndpointSerializer(item: OtlpTelemetryEndpoint): any {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionSerializer(item[\"auth\"]),\n endpoint: item[\"endpoint\"],\n protocol: item[\"protocol\"],\n };\n}\n\nexport function otlpTelemetryEndpointDeserializer(item: any): OtlpTelemetryEndpoint {\n return {\n kind: item[\"kind\"],\n data: item[\"data\"].map((p: any) => {\n return p;\n }),\n auth: !item[\"auth\"] ? item[\"auth\"] : telemetryEndpointAuthUnionDeserializer(item[\"auth\"]),\n endpoint: item[\"endpoint\"],\n protocol: item[\"protocol\"],\n };\n}\n\n/** The transport protocol for telemetry export. */\nexport type TelemetryTransportProtocol = \"Http\" | \"Grpc\";\n\n/** The prompt agent definition */\nexport interface PromptAgentDefinition extends AgentDefinition {\n /**\n * The kind of agent definition. Always `prompt` for an agent configured with a model and\n * instructions.\n */\n kind: \"prompt\";\n /** (Preview) The managed runtime and agent loop used to execute this prompt agent. */\n harness?: AgentHarnessUnion;\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 /** (Preview) The Foundry skills available to this prompt agent. An omitted skill version is resolved and pinned when the agent version is created. */\n skills?: SkillReference[];\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. Defaults to `1`.\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. We generally recommend altering this or `temperature` but not both.\n * Defaults to `1`.\n */\n top_p?: number;\n /** Configuration for the model reasoning behavior when generating responses. */\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 /**\n * How the model should select which tool (or tools) to use when generating a response.\n * See the `tools` parameter to see how to specify which tools the model can call.\n */\n tool_choice?: string | ToolChoiceParamUnion;\n /** Configuration options for a text response from the model. Can be plain text or structured JSON data. */\n text?: PromptAgentDefinitionTextOptions;\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 harness: !item[\"harness\"] ? item[\"harness\"] : agentHarnessUnionSerializer(item[\"harness\"]),\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : skillReferenceArraySerializer(item[\"skills\"]),\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 tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : _promptAgentDefinitionToolChoiceSerializer(item[\"tool_choice\"]),\n text: !item[\"text\"] ? item[\"text\"] : promptAgentDefinitionTextOptionsSerializer(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 harness: !item[\"harness\"] ? item[\"harness\"] : agentHarnessUnionDeserializer(item[\"harness\"]),\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : skillReferenceArrayDeserializer(item[\"skills\"]),\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 tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : _promptAgentDefinitionToolChoiceDeserializer(item[\"tool_choice\"]),\n text: !item[\"text\"] ? item[\"text\"] : promptAgentDefinitionTextOptionsDeserializer(item[\"text\"]),\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordDeserializer(item[\"structured_inputs\"]),\n };\n}\n\n/** (Preview) A managed runtime and agent loop used to execute a prompt agent. */\nexport interface AgentHarness {\n /** The type of managed harness. */\n /** The discriminator possible values: github_copilot_preview */\n type: string;\n}\n\nexport function agentHarnessSerializer(item: AgentHarness): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentHarnessDeserializer(item: any): AgentHarness {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentHarnessUnion */\nexport type AgentHarnessUnion = GitHubCopilotHarness | AgentHarness;\n\nexport function agentHarnessUnionSerializer(item: AgentHarnessUnion): any {\n switch (item.type) {\n case \"github_copilot_preview\":\n return gitHubCopilotHarnessSerializer(item as GitHubCopilotHarness);\n\n default:\n return agentHarnessSerializer(item);\n }\n}\n\nexport function agentHarnessUnionDeserializer(item: any): AgentHarnessUnion {\n switch (item[\"type\"]) {\n case \"github_copilot_preview\":\n return gitHubCopilotHarnessDeserializer(item as GitHubCopilotHarness);\n\n default:\n return agentHarnessDeserializer(item);\n }\n}\n\n/** (Preview) The GitHub Copilot managed harness for prompt agents. */\nexport interface GitHubCopilotHarness extends AgentHarness {\n /** The type of managed harness. Always `github_copilot_preview`. */\n type: \"github_copilot_preview\";\n}\n\nexport function gitHubCopilotHarnessSerializer(item: GitHubCopilotHarness): any {\n return { type: item[\"type\"] };\n}\n\nexport function gitHubCopilotHarnessDeserializer(item: any): GitHubCopilotHarness {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function skillReferenceArraySerializer(result: Array<SkillReference>): any[] {\n return result.map((item) => {\n return skillReferenceSerializer(item);\n });\n}\n\nexport function skillReferenceArrayDeserializer(result: Array<SkillReference>): any[] {\n return result.map((item) => {\n return skillReferenceDeserializer(item);\n });\n}\n\n/** (Preview) A reference to a versioned Foundry skill. */\nexport interface SkillReference {\n /** The name of the skill. */\n name: string;\n /** The skill version. If omitted, the current default version is resolved and pinned when the agent version is created. */\n version?: string;\n}\n\nexport function skillReferenceSerializer(item: SkillReference): any {\n return { name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function skillReferenceDeserializer(item: any): SkillReference {\n return {\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** (Preview) Configuration overrides for GitHub Copilot built-in tools. */\nexport interface GitHubCopilotToolsetPreview extends Tool {\n /** The type of the toolset. Always `github_copilot_toolset_preview`. */\n type: \"github_copilot_toolset_preview\";\n /** The default configuration for built-in tools. If omitted, built-in tools are enabled by default. */\n default_config?: GitHubCopilotToolsetDefaultConfig;\n /** Per-tool configuration overrides. Duplicate built-in tool names are not allowed. */\n configs?: GitHubCopilotToolsetConfig[];\n}\n\nexport function gitHubCopilotToolsetPreviewSerializer(item: GitHubCopilotToolsetPreview): any {\n return {\n type: item[\"type\"],\n default_config: !item[\"default_config\"]\n ? item[\"default_config\"]\n : gitHubCopilotToolsetDefaultConfigSerializer(item[\"default_config\"]),\n configs: !item[\"configs\"]\n ? item[\"configs\"]\n : gitHubCopilotToolsetConfigArraySerializer(item[\"configs\"]),\n };\n}\n\nexport function gitHubCopilotToolsetPreviewDeserializer(item: any): GitHubCopilotToolsetPreview {\n return {\n type: item[\"type\"],\n default_config: !item[\"default_config\"]\n ? item[\"default_config\"]\n : gitHubCopilotToolsetDefaultConfigDeserializer(item[\"default_config\"]),\n configs: !item[\"configs\"]\n ? item[\"configs\"]\n : gitHubCopilotToolsetConfigArrayDeserializer(item[\"configs\"]),\n };\n}\n\n/** The default enablement setting for GitHub Copilot built-in tools. */\nexport interface GitHubCopilotToolsetDefaultConfig {\n /** Whether built-in tools are enabled by default. Defaults to true. */\n enabled?: boolean;\n}\n\nexport function gitHubCopilotToolsetDefaultConfigSerializer(\n item: GitHubCopilotToolsetDefaultConfig,\n): any {\n return { enabled: item[\"enabled\"] };\n}\n\nexport function gitHubCopilotToolsetDefaultConfigDeserializer(\n item: any,\n): GitHubCopilotToolsetDefaultConfig {\n return {\n enabled: item[\"enabled\"],\n };\n}\n\nexport function gitHubCopilotToolsetConfigArraySerializer(\n result: Array<GitHubCopilotToolsetConfig>,\n): any[] {\n return result.map((item) => {\n return gitHubCopilotToolsetConfigSerializer(item);\n });\n}\n\nexport function gitHubCopilotToolsetConfigArrayDeserializer(\n result: Array<GitHubCopilotToolsetConfig>,\n): any[] {\n return result.map((item) => {\n return gitHubCopilotToolsetConfigDeserializer(item);\n });\n}\n\n/** An enablement override for a GitHub Copilot built-in tool. */\nexport interface GitHubCopilotToolsetConfig {\n /** The built-in tool to configure. */\n name: GitHubCopilotBuiltInTool;\n /** Whether the built-in tool is enabled. If omitted, the toolset default applies. */\n enabled?: boolean;\n}\n\nexport function gitHubCopilotToolsetConfigSerializer(item: GitHubCopilotToolsetConfig): any {\n return { name: item[\"name\"], enabled: item[\"enabled\"] };\n}\n\nexport function gitHubCopilotToolsetConfigDeserializer(item: any): GitHubCopilotToolsetConfig {\n return {\n name: item[\"name\"],\n enabled: item[\"enabled\"],\n };\n}\n\n/** A customer-configurable GitHub Copilot built-in tool. */\nexport type GitHubCopilotBuiltInTool =\n \"filesystem_read\" | \"filesystem_write\" | \"shell\" | \"web\" | \"subagents\";\n\n/**\n * **gpt-5 and o-series models only**\n * Configuration options for\n * [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n */\nexport interface Reasoning {\n /**\n * Controls the reasoning execution mode for the request.\n * When returned on a response, this is the effective execution mode.\n */\n mode?: ReasoningModeEnum;\n /**\n * The reasoning effort requested for the response. Lower effort can reduce latency and reasoning\n * token usage; supported values depend on the model.\n */\n effort?: ReasoningEffort;\n /**\n * The level of detail requested for the model's reasoning summary, or `auto` to let the model\n * choose.\n */\n summary?: \"auto\" | \"concise\" | \"detailed\";\n /**\n * Controls whether reasoning items from the current turn or all turns are included in later model\n * context; `auto` lets the model choose.\n */\n context?: \"auto\" | \"current_turn\" | \"all_turns\";\n /**\n * Legacy setting for the level of detail in the model's reasoning summary. Use `summary` for new\n * configurations.\n */\n generate_summary?: \"auto\" | \"concise\" | \"detailed\";\n}\n\nexport function reasoningSerializer(item: Reasoning): any {\n return {\n mode: !item[\"mode\"] ? item[\"mode\"] : reasoningModeEnumSerializer(item[\"mode\"]),\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n context: item[\"context\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\nexport function reasoningDeserializer(item: any): Reasoning {\n return {\n mode: !item[\"mode\"] ? item[\"mode\"] : reasoningModeEnumDeserializer(item[\"mode\"]),\n effort: item[\"effort\"],\n summary: item[\"summary\"],\n context: item[\"context\"],\n generate_summary: item[\"generate_summary\"],\n };\n}\n\n/**\n * Constrains effort on reasoning for\n * [reasoning models](https://platform.openai.com/docs/guides/reasoning).\n * Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing\n * reasoning effort can result in faster responses and fewer tokens used\n * on reasoning in a response.\n * - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1.\n * - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`.\n * - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort.\n * - `xhigh` is supported for all models after `gpt-5.1-codex-max`.\n */\nexport type ReasoningEffort = \"none\" | \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n/** Alias for _PromptAgentDefinitionToolChoice */\nexport type _PromptAgentDefinitionToolChoice = string | ToolChoiceParamUnion;\n\nexport function _promptAgentDefinitionToolChoiceSerializer(\n item: _PromptAgentDefinitionToolChoice,\n): any {\n return item;\n}\n\nexport function _promptAgentDefinitionToolChoiceDeserializer(\n item: any,\n): _PromptAgentDefinitionToolChoice {\n return item;\n}\n\n/**\n * How the model should select which tool (or tools) to use when generating\n * a response. See the `tools` parameter to see how to specify which tools\n * the model can call.\n */\nexport interface ToolChoiceParam {\n /** The kind of tool the model should call when generating a response. */\n type: ToolChoiceParamType;\n}\n\nexport function toolChoiceParamSerializer(item: ToolChoiceParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceParamDeserializer(item: any): ToolChoiceParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolChoiceParamUnion */\nexport type ToolChoiceParamUnion =\n | ToolChoiceAllowed\n | ToolChoiceFunction\n | ToolChoiceMCP\n | ToolChoiceCustom\n | SpecificProgrammaticToolCallingParam\n | SpecificApplyPatchParam\n | SpecificFunctionShellParam\n | ToolChoiceFileSearch\n | ToolChoiceWebSearchPreview\n | ToolChoiceComputerUsePreview\n | ToolChoiceWebSearchPreview20250311\n | ToolChoiceImageGeneration\n | ToolChoiceCodeInterpreter\n | ToolChoiceComputer\n | ToolChoiceComputerUse\n | ToolChoiceParam;\n\nexport function toolChoiceParamUnionSerializer(item: ToolChoiceParamUnion): any {\n switch (item.type) {\n case \"allowed_tools\":\n return toolChoiceAllowedSerializer(item as ToolChoiceAllowed);\n\n case \"function\":\n return toolChoiceFunctionSerializer(item as ToolChoiceFunction);\n\n case \"mcp\":\n return toolChoiceMCPSerializer(item as ToolChoiceMCP);\n\n case \"custom\":\n return toolChoiceCustomSerializer(item as ToolChoiceCustom);\n\n case \"programmatic_tool_calling\":\n return specificProgrammaticToolCallingParamSerializer(\n item as SpecificProgrammaticToolCallingParam,\n );\n\n case \"apply_patch\":\n return specificApplyPatchParamSerializer(item as SpecificApplyPatchParam);\n\n case \"shell\":\n return specificFunctionShellParamSerializer(item as SpecificFunctionShellParam);\n\n case \"file_search\":\n return toolChoiceFileSearchSerializer(item as ToolChoiceFileSearch);\n\n case \"web_search_preview\":\n return toolChoiceWebSearchPreviewSerializer(item as ToolChoiceWebSearchPreview);\n\n case \"computer_use_preview\":\n return toolChoiceComputerUsePreviewSerializer(item as ToolChoiceComputerUsePreview);\n\n case \"web_search_preview_2025_03_11\":\n return toolChoiceWebSearchPreview20250311Serializer(\n item as ToolChoiceWebSearchPreview20250311,\n );\n\n case \"image_generation\":\n return toolChoiceImageGenerationSerializer(item as ToolChoiceImageGeneration);\n\n case \"code_interpreter\":\n return toolChoiceCodeInterpreterSerializer(item as ToolChoiceCodeInterpreter);\n\n case \"computer\":\n return toolChoiceComputerSerializer(item as ToolChoiceComputer);\n\n case \"computer_use\":\n return toolChoiceComputerUseSerializer(item as ToolChoiceComputerUse);\n\n default:\n return toolChoiceParamSerializer(item);\n }\n}\n\nexport function toolChoiceParamUnionDeserializer(item: any): ToolChoiceParamUnion {\n switch (item[\"type\"]) {\n case \"allowed_tools\":\n return toolChoiceAllowedDeserializer(item as ToolChoiceAllowed);\n\n case \"function\":\n return toolChoiceFunctionDeserializer(item as ToolChoiceFunction);\n\n case \"mcp\":\n return toolChoiceMCPDeserializer(item as ToolChoiceMCP);\n\n case \"custom\":\n return toolChoiceCustomDeserializer(item as ToolChoiceCustom);\n\n case \"programmatic_tool_calling\":\n return specificProgrammaticToolCallingParamDeserializer(\n item as SpecificProgrammaticToolCallingParam,\n );\n\n case \"apply_patch\":\n return specificApplyPatchParamDeserializer(item as SpecificApplyPatchParam);\n\n case \"shell\":\n return specificFunctionShellParamDeserializer(item as SpecificFunctionShellParam);\n\n case \"file_search\":\n return toolChoiceFileSearchDeserializer(item as ToolChoiceFileSearch);\n\n case \"web_search_preview\":\n return toolChoiceWebSearchPreviewDeserializer(item as ToolChoiceWebSearchPreview);\n\n case \"computer_use_preview\":\n return toolChoiceComputerUsePreviewDeserializer(item as ToolChoiceComputerUsePreview);\n\n case \"web_search_preview_2025_03_11\":\n return toolChoiceWebSearchPreview20250311Deserializer(\n item as ToolChoiceWebSearchPreview20250311,\n );\n\n case \"image_generation\":\n return toolChoiceImageGenerationDeserializer(item as ToolChoiceImageGeneration);\n\n case \"code_interpreter\":\n return toolChoiceCodeInterpreterDeserializer(item as ToolChoiceCodeInterpreter);\n\n case \"computer\":\n return toolChoiceComputerDeserializer(item as ToolChoiceComputer);\n\n case \"computer_use\":\n return toolChoiceComputerUseDeserializer(item as ToolChoiceComputerUse);\n\n default:\n return toolChoiceParamDeserializer(item);\n }\n}\n\n/** Type of ToolChoiceParamType */\nexport type ToolChoiceParamType =\n | \"allowed_tools\"\n | \"function\"\n | \"mcp\"\n | \"custom\"\n | \"programmatic_tool_calling\"\n | \"apply_patch\"\n | \"shell\"\n | \"file_search\"\n | \"web_search_preview\"\n | \"computer_use_preview\"\n | \"web_search_preview_2025_03_11\"\n | \"image_generation\"\n | \"code_interpreter\"\n | \"computer\"\n | \"computer_use\";\n\n/** Constrains the tools available to the model to a pre-defined set. */\nexport interface ToolChoiceAllowed extends ToolChoiceParam {\n /** Allowed tool configuration type. Always `allowed_tools`. */\n type: \"allowed_tools\";\n /**\n * Constrains the tools available to the model to a pre-defined set.\n * `auto` allows the model to pick from among the allowed tools and generate a\n * message.\n * `required` requires the model to call one or more of the allowed tools.\n */\n mode: \"auto\" | \"required\";\n /**\n * A list of tool definitions that the model should be allowed to call.\n * For the Responses API, the list of tool definitions might look like:\n * ```json\n * [\n * { \"type\": \"function\", \"name\": \"get_weather\" },\n * { \"type\": \"mcp\", \"server_label\": \"deepwiki\" },\n * { \"type\": \"image_generation\" }\n * ]\n * ```\n */\n tools: Record<string, unknown>[];\n}\n\nexport function toolChoiceAllowedSerializer(item: ToolChoiceAllowed): any {\n return {\n type: item[\"type\"],\n mode: item[\"mode\"],\n tools: item[\"tools\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function toolChoiceAllowedDeserializer(item: any): ToolChoiceAllowed {\n return {\n type: item[\"type\"],\n mode: item[\"mode\"],\n tools: item[\"tools\"],\n };\n}\n\n/** Use this option to force the model to call a specific function. */\nexport interface ToolChoiceFunction extends ToolChoiceParam {\n /** For function calling, the type is always `function`. */\n type: \"function\";\n /** The name of the function to call. */\n name: string;\n}\n\nexport function toolChoiceFunctionSerializer(item: ToolChoiceFunction): any {\n return { type: item[\"type\"], name: item[\"name\"] };\n}\n\nexport function toolChoiceFunctionDeserializer(item: any): ToolChoiceFunction {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n };\n}\n\n/** Use this option to force the model to call a specific tool on a remote MCP server. */\nexport interface ToolChoiceMCP extends ToolChoiceParam {\n /** For MCP tools, the type is always `mcp`. */\n type: \"mcp\";\n /** The label of the MCP server to use. */\n server_label: string;\n /** The name of the tool to invoke on the MCP server identified by `server_label`. */\n name?: string;\n}\n\nexport function toolChoiceMCPSerializer(item: ToolChoiceMCP): any {\n return { type: item[\"type\"], server_label: item[\"server_label\"], name: item[\"name\"] };\n}\n\nexport function toolChoiceMCPDeserializer(item: any): ToolChoiceMCP {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n };\n}\n\n/** Use this option to force the model to call a specific custom tool. */\nexport interface ToolChoiceCustom extends ToolChoiceParam {\n /** For custom tool calling, the type is always `custom`. */\n type: \"custom\";\n /** The name of the custom tool to call. */\n name: string;\n}\n\nexport function toolChoiceCustomSerializer(item: ToolChoiceCustom): any {\n return { type: item[\"type\"], name: item[\"name\"] };\n}\n\nexport function toolChoiceCustomDeserializer(item: any): ToolChoiceCustom {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n };\n}\n\n/** Forces the model to call the apply_patch tool when executing a tool call. */\nexport interface SpecificApplyPatchParam extends ToolChoiceParam {\n /** The tool to call. Always `apply_patch`. */\n type: \"apply_patch\";\n}\n\nexport function specificApplyPatchParamSerializer(item: SpecificApplyPatchParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function specificApplyPatchParamDeserializer(item: any): SpecificApplyPatchParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Forces the model to call the shell tool when a tool call is required. */\nexport interface SpecificFunctionShellParam extends ToolChoiceParam {\n /** The tool to call. Always `shell`. */\n type: \"shell\";\n}\n\nexport function specificFunctionShellParamSerializer(item: SpecificFunctionShellParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function specificFunctionShellParamDeserializer(item: any): SpecificFunctionShellParam {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceFileSearch extends ToolChoiceParam {\n /** Selects the file search tool. Always `file_search`. */\n type: \"file_search\";\n}\n\nexport function toolChoiceFileSearchSerializer(item: ToolChoiceFileSearch): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceFileSearchDeserializer(item: any): ToolChoiceFileSearch {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceWebSearchPreview extends ToolChoiceParam {\n /** Selects the preview web search tool. Always `web_search_preview`. */\n type: \"web_search_preview\";\n}\n\nexport function toolChoiceWebSearchPreviewSerializer(item: ToolChoiceWebSearchPreview): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceWebSearchPreviewDeserializer(item: any): ToolChoiceWebSearchPreview {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceComputerUsePreview extends ToolChoiceParam {\n /** Selects the preview computer use tool. Always `computer_use_preview`. */\n type: \"computer_use_preview\";\n}\n\nexport function toolChoiceComputerUsePreviewSerializer(item: ToolChoiceComputerUsePreview): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceComputerUsePreviewDeserializer(item: any): ToolChoiceComputerUsePreview {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceWebSearchPreview20250311 extends ToolChoiceParam {\n /**\n * Selects the March 11, 2025 preview version of the web search tool. Always\n * `web_search_preview_2025_03_11`.\n */\n type: \"web_search_preview_2025_03_11\";\n}\n\nexport function toolChoiceWebSearchPreview20250311Serializer(\n item: ToolChoiceWebSearchPreview20250311,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceWebSearchPreview20250311Deserializer(\n item: any,\n): ToolChoiceWebSearchPreview20250311 {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceImageGeneration extends ToolChoiceParam {\n /** Selects the image generation tool. Always `image_generation`. */\n type: \"image_generation\";\n}\n\nexport function toolChoiceImageGenerationSerializer(item: ToolChoiceImageGeneration): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceImageGenerationDeserializer(item: any): ToolChoiceImageGeneration {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceCodeInterpreter extends ToolChoiceParam {\n /** Selects the code interpreter tool. Always `code_interpreter`. */\n type: \"code_interpreter\";\n}\n\nexport function toolChoiceCodeInterpreterSerializer(item: ToolChoiceCodeInterpreter): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceCodeInterpreterDeserializer(item: any): ToolChoiceCodeInterpreter {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceComputer extends ToolChoiceParam {\n /** Selects the computer tool. Always `computer`. */\n type: \"computer\";\n}\n\nexport function toolChoiceComputerSerializer(item: ToolChoiceComputer): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceComputerDeserializer(item: any): ToolChoiceComputer {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * Indicates that the model should use a built-in tool to generate a response.\n * [Learn more about built-in tools](https://platform.openai.com/docs/guides/tools).\n */\nexport interface ToolChoiceComputerUse extends ToolChoiceParam {\n /** Selects the computer use tool. Always `computer_use`. */\n type: \"computer_use\";\n}\n\nexport function toolChoiceComputerUseSerializer(item: ToolChoiceComputerUse): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolChoiceComputerUseDeserializer(item: any): ToolChoiceComputerUse {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Configuration options for a text response from the model. Can be plain text or structured JSON data. */\nexport interface PromptAgentDefinitionTextOptions {\n /** The format of the model text response, such as plain text or structured JSON. */\n format?: TextResponseFormatUnion;\n}\n\nexport function promptAgentDefinitionTextOptionsSerializer(\n item: PromptAgentDefinitionTextOptions,\n): any {\n return {\n format: !item[\"format\"] ? item[\"format\"] : textResponseFormatUnionSerializer(item[\"format\"]),\n };\n}\n\nexport function promptAgentDefinitionTextOptionsDeserializer(\n item: any,\n): PromptAgentDefinitionTextOptions {\n return {\n format: !item[\"format\"] ? item[\"format\"] : textResponseFormatUnionDeserializer(item[\"format\"]),\n };\n}\n\n/**\n * An object specifying the format that the model must output.\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](/docs/guides/structured-outputs).\n * The default format is `{ \"type\": \"text\" }` with no additional options.\n * *Not recommended for gpt-4o and newer models:**\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 interface TextResponseFormat {\n /** The output format requested from the model, such as plain text or structured JSON. */\n type: TextResponseFormatConfigurationType;\n}\n\nexport function textResponseFormatSerializer(item: TextResponseFormat): any {\n return { type: item[\"type\"] };\n}\n\nexport function textResponseFormatDeserializer(item: any): TextResponseFormat {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for TextResponseFormatUnion */\nexport type TextResponseFormatUnion =\n | TextResponseFormatJsonSchema\n | TextResponseFormatText\n | TextResponseFormatJsonObject\n | TextResponseFormat;\n\nexport function textResponseFormatUnionSerializer(item: TextResponseFormatUnion): any {\n switch (item.type) {\n case \"json_schema\":\n return textResponseFormatJsonSchemaSerializer(item as TextResponseFormatJsonSchema);\n\n case \"text\":\n return textResponseFormatTextSerializer(item as TextResponseFormatText);\n\n case \"json_object\":\n return textResponseFormatJsonObjectSerializer(item as TextResponseFormatJsonObject);\n\n default:\n return textResponseFormatSerializer(item);\n }\n}\n\nexport function textResponseFormatUnionDeserializer(item: any): TextResponseFormatUnion {\n switch (item[\"type\"]) {\n case \"json_schema\":\n return textResponseFormatJsonSchemaDeserializer(item as TextResponseFormatJsonSchema);\n\n case \"text\":\n return textResponseFormatTextDeserializer(item as TextResponseFormatText);\n\n case \"json_object\":\n return textResponseFormatJsonObjectDeserializer(item as TextResponseFormatJsonObject);\n\n default:\n return textResponseFormatDeserializer(item);\n }\n}\n\n/** Type of TextResponseFormatConfigurationType */\nexport type TextResponseFormatConfigurationType = \"text\" | \"json_schema\" | \"json_object\";\n\n/**\n * JSON Schema response format. Used to generate structured JSON responses.\n * Learn more about [Structured Outputs](/docs/guides/structured-outputs).\n */\nexport interface TextResponseFormatJsonSchema extends TextResponseFormat {\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 /** The JSON Schema that defines the required structure of the model's output. */\n schema: Record<string, unknown>;\n /** Whether the model's generated output must strictly conform to the supplied JSON Schema. */\n strict?: boolean;\n}\n\nexport function textResponseFormatJsonSchemaSerializer(item: TextResponseFormatJsonSchema): any {\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 textResponseFormatJsonSchemaDeserializer(item: any): TextResponseFormatJsonSchema {\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\n/** Default response format. Used to generate text responses. */\nexport interface TextResponseFormatText extends TextResponseFormat {\n /** The type of response format being defined. Always `text`. */\n type: \"text\";\n}\n\nexport function textResponseFormatTextSerializer(item: TextResponseFormatText): any {\n return { type: item[\"type\"] };\n}\n\nexport function textResponseFormatTextDeserializer(item: any): TextResponseFormatText {\n return {\n type: item[\"type\"],\n };\n}\n\n/**\n * JSON object response format. An older method of generating JSON responses.\n * Using `json_schema` is recommended for models that support it. Note that the\n * model will not generate JSON without a system or user message instructing it\n * to do so.\n */\nexport interface TextResponseFormatJsonObject extends TextResponseFormat {\n /** The type of response format being defined. Always `json_object`. */\n type: \"json_object\";\n}\n\nexport function textResponseFormatJsonObjectSerializer(item: TextResponseFormatJsonObject): any {\n return { type: item[\"type\"] };\n}\n\nexport function textResponseFormatJsonObjectDeserializer(item: any): TextResponseFormatJsonObject {\n return {\n type: item[\"type\"],\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 /** The JSON schema for the structured input (optional). */\n schema?: Record<string, unknown>;\n /** Whether the input property is required when the agent is invoked. Defaults to `false`. */\n required?: boolean;\n}\n\nexport function structuredInputDefinitionSerializer(item: StructuredInputDefinition): any {\n return {\n description: item[\"description\"],\n default_value: item[\"default_value\"],\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 schema: item[\"schema\"],\n required: item[\"required\"],\n };\n}\n\n/** The workflow agent definition. */\nexport interface WorkflowAgentDefinition extends AgentDefinition {\n /** The agent kind. Always `workflow` for an agent defined by a workflow. */\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/**\n * The external agent definition. Represents a third-party agent hosted outside Foundry (for example, on GCP or AWS).\n * Registration is metadata-only: Foundry records the agent definition to light up observability experiences (traces, evaluations)\n * over customer-emitted OpenTelemetry data.\n */\nexport interface ExternalAgentDefinition extends AgentDefinition {\n /** The kind of agent definition. Always `external` for an agent hosted outside Foundry. */\n kind: \"external\";\n /**\n * The OpenTelemetry agent identifier used to attribute customer-emitted spans to this Foundry agent.\n * Spans must include the attribute `gen_ai.agent.id = <otel_agent_id>` to appear under this registration.\n * Defaults to the top-level agent name when omitted. Provide an explicit value only for migration scenarios\n * where the running external agent already emits a stable id that differs from the Foundry agent name.\n * The resolved value is always echoed on read.\n */\n otel_agent_id?: string;\n}\n\nexport function externalAgentDefinitionSerializer(item: ExternalAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n otel_agent_id: item[\"otel_agent_id\"],\n };\n}\n\nexport function externalAgentDefinitionDeserializer(item: any): ExternalAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n otel_agent_id: item[\"otel_agent_id\"],\n };\n}\n\n/** The provisioning status of an agent version. */\nexport type AgentVersionStatus = \"creating\" | \"active\" | \"failed\" | \"deleting\" | \"deleted\";\n\n/** model interface AgentIdentity */\nexport interface AgentIdentity {\n /** The principal ID of the agent instance */\n principal_id: string;\n /** The client ID of the agent instance. Also referred to as the instance ID */\n client_id: string;\n /** The status of the agent identity. Present for both the agent instance identity and the agent blueprint. */\n status?: AgentIdentityStatus;\n}\n\nexport function agentIdentityDeserializer(item: any): AgentIdentity {\n return {\n principal_id: item[\"principal_id\"],\n client_id: item[\"client_id\"],\n status: item[\"status\"],\n };\n}\n\n/** The status of an agent identity, applicable to both the agent instance identity and the agent blueprint. */\nexport type AgentIdentityStatus = \"active\" | \"disabled\";\n\n/** model interface AgentBlueprintReference */\nexport interface AgentBlueprintReference {\n /** The type of agent identity blueprint referenced. */\n type: AgentBlueprintReferenceType;\n}\n\nexport function agentBlueprintReferenceSerializer(item: AgentBlueprintReference): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentBlueprintReferenceDeserializer(item: any): AgentBlueprintReference {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentBlueprintReferenceUnion */\nexport type AgentBlueprintReferenceUnion =\n ManagedAgentIdentityBlueprintReference | AgentBlueprintReference;\n\nexport function agentBlueprintReferenceUnionSerializer(item: AgentBlueprintReferenceUnion): any {\n switch (item.type) {\n case \"ManagedAgentIdentityBlueprint\":\n return managedAgentIdentityBlueprintReferenceSerializer(\n item as ManagedAgentIdentityBlueprintReference,\n );\n\n default:\n return agentBlueprintReferenceSerializer(item);\n }\n}\n\nexport function agentBlueprintReferenceUnionDeserializer(item: any): AgentBlueprintReferenceUnion {\n switch (item[\"type\"]) {\n case \"ManagedAgentIdentityBlueprint\":\n return managedAgentIdentityBlueprintReferenceDeserializer(\n item as ManagedAgentIdentityBlueprintReference,\n );\n\n default:\n return agentBlueprintReferenceDeserializer(item);\n }\n}\n\n/** Type of AgentBlueprintReferenceType */\nexport type AgentBlueprintReferenceType = \"ManagedAgentIdentityBlueprint\";\n\n/** model interface ManagedAgentIdentityBlueprintReference */\nexport interface ManagedAgentIdentityBlueprintReference extends AgentBlueprintReference {\n /** The type of blueprint reference. Always `ManagedAgentIdentityBlueprint`. */\n type: \"ManagedAgentIdentityBlueprint\";\n /** The ID of the managed blueprint */\n blueprint_id: string;\n}\n\nexport function managedAgentIdentityBlueprintReferenceSerializer(\n item: ManagedAgentIdentityBlueprintReference,\n): any {\n return { type: item[\"type\"], blueprint_id: item[\"blueprint_id\"] };\n}\n\nexport function managedAgentIdentityBlueprintReferenceDeserializer(\n item: any,\n): ManagedAgentIdentityBlueprintReference {\n return {\n type: item[\"type\"],\n blueprint_id: item[\"blueprint_id\"],\n };\n}\n\n/** model interface AgentEndpointConfig */\nexport interface AgentEndpointConfig {\n /** The version selector of the agent endpoint determines how traffic is routed to different versions of the agent. */\n version_selector?: VersionSelector;\n /** Per-protocol configuration for the agent endpoint. */\n protocol_configuration?: ProtocolConfiguration;\n /** The authorization schemes supported by the agent endpoint */\n authorization_schemes?: AgentEndpointAuthorizationSchemeUnion[];\n /** The Microsoft Agent Certification review status of the Microsoft 365 store title published for this agent. Server-populated and best-effort: it is absent when the status could not be determined, and an absent value must not be interpreted as the agent not being published. No value is terminal, because publishing a new version of an agent reuses the same store title and sends it back through review. */\n readonly publish_approval_status?: PublishApprovalStatus;\n}\n\nexport function agentEndpointConfigSerializer(item: AgentEndpointConfig): any {\n return {\n version_selector: !item[\"version_selector\"]\n ? item[\"version_selector\"]\n : versionSelectorSerializer(item[\"version_selector\"]),\n protocol_configuration: !item[\"protocol_configuration\"]\n ? item[\"protocol_configuration\"]\n : protocolConfigurationSerializer(item[\"protocol_configuration\"]),\n authorization_schemes: !item[\"authorization_schemes\"]\n ? item[\"authorization_schemes\"]\n : agentEndpointAuthorizationSchemeUnionArraySerializer(item[\"authorization_schemes\"]),\n };\n}\n\nexport function agentEndpointConfigDeserializer(item: any): AgentEndpointConfig {\n return {\n version_selector: !item[\"version_selector\"]\n ? item[\"version_selector\"]\n : versionSelectorDeserializer(item[\"version_selector\"]),\n protocol_configuration: !item[\"protocol_configuration\"]\n ? item[\"protocol_configuration\"]\n : protocolConfigurationDeserializer(item[\"protocol_configuration\"]),\n authorization_schemes: !item[\"authorization_schemes\"]\n ? item[\"authorization_schemes\"]\n : agentEndpointAuthorizationSchemeUnionArrayDeserializer(item[\"authorization_schemes\"]),\n publish_approval_status: item[\"publish_approval_status\"],\n };\n}\n\n/**\n * Configuration for routing, protocols, and authorization at an agent endpoint.\n *\n * @deprecated Use AgentEndpointConfig instead.\n */\nexport type AgentEndpoint = AgentEndpointConfig;\n\n/** model interface VersionSelector */\nexport interface VersionSelector {\n /** The rules that determine how requests are routed among agent versions. */\n version_selection_rules: VersionSelectionRuleUnion[];\n}\n\nexport function versionSelectorSerializer(item: VersionSelector): any {\n return {\n version_selection_rules: versionSelectionRuleUnionArraySerializer(\n item[\"version_selection_rules\"],\n ),\n };\n}\n\nexport function versionSelectorDeserializer(item: any): VersionSelector {\n return {\n version_selection_rules: versionSelectionRuleUnionArrayDeserializer(\n item[\"version_selection_rules\"],\n ),\n };\n}\n\nexport function versionSelectionRuleUnionArraySerializer(\n result: Array<VersionSelectionRuleUnion>,\n): any[] {\n return result.map((item) => {\n return versionSelectionRuleUnionSerializer(item);\n });\n}\n\nexport function versionSelectionRuleUnionArrayDeserializer(\n result: Array<VersionSelectionRuleUnion>,\n): any[] {\n return result.map((item) => {\n return versionSelectionRuleUnionDeserializer(item);\n });\n}\n\n/** model interface VersionSelectionRule */\nexport interface VersionSelectionRule {\n /** The routing strategy used to select an agent version. */\n type: VersionSelectionRuleType;\n /** The agent version to route traffic to */\n agent_version: string;\n}\n\nexport function versionSelectionRuleSerializer(item: VersionSelectionRule): any {\n return { type: item[\"type\"], agent_version: item[\"agent_version\"] };\n}\n\nexport function versionSelectionRuleDeserializer(item: any): VersionSelectionRule {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Alias for VersionSelectionRuleUnion */\nexport type VersionSelectionRuleUnion = FixedRatioVersionSelectionRule | VersionSelectionRule;\n\nexport function versionSelectionRuleUnionSerializer(item: VersionSelectionRuleUnion): any {\n switch (item.type) {\n case \"FixedRatio\":\n return fixedRatioVersionSelectionRuleSerializer(item as FixedRatioVersionSelectionRule);\n\n default:\n return versionSelectionRuleSerializer(item);\n }\n}\n\nexport function versionSelectionRuleUnionDeserializer(item: any): VersionSelectionRuleUnion {\n switch (item[\"type\"]) {\n case \"FixedRatio\":\n return fixedRatioVersionSelectionRuleDeserializer(item as FixedRatioVersionSelectionRule);\n\n default:\n return versionSelectionRuleDeserializer(item);\n }\n}\n\n/** Type of VersionSelectionRuleType */\nexport type VersionSelectionRuleType = \"FixedRatio\";\n\n/** model interface FixedRatioVersionSelectionRule */\nexport interface FixedRatioVersionSelectionRule extends VersionSelectionRule {\n /**\n * The type of version selection rule. Always `FixedRatio` for routing a fixed percentage of\n * traffic.\n */\n type: \"FixedRatio\";\n /** The percentage of traffic to route to the version. Must be between 0 and 100. */\n traffic_percentage: number;\n}\n\nexport function fixedRatioVersionSelectionRuleSerializer(\n item: FixedRatioVersionSelectionRule,\n): any {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n traffic_percentage: item[\"traffic_percentage\"],\n };\n}\n\nexport function fixedRatioVersionSelectionRuleDeserializer(\n item: any,\n): FixedRatioVersionSelectionRule {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n traffic_percentage: item[\"traffic_percentage\"],\n };\n}\n\n/** Per-protocol configuration for the agent endpoint. */\nexport interface ProtocolConfiguration {\n /** Configuration for the activity protocol. */\n activity?: ActivityProtocolConfiguration;\n /** Configuration for the responses protocol. */\n responses?: ResponsesProtocolConfiguration;\n /** Configuration for the A2A protocol. */\n a2a?: A2AProtocolConfiguration;\n /** Configuration for the MCP protocol. */\n mcp?: McpProtocolConfiguration;\n /** Configuration for the invocations protocol. */\n invocations?: InvocationsProtocolConfiguration;\n /** Configuration for the WebSocket-based invocations protocol. */\n invocations_ws?: InvocationsWsProtocolConfiguration;\n}\n\nexport function protocolConfigurationSerializer(item: ProtocolConfiguration): any {\n return {\n activity: !item[\"activity\"]\n ? item[\"activity\"]\n : activityProtocolConfigurationSerializer(item[\"activity\"]),\n responses: !item[\"responses\"]\n ? item[\"responses\"]\n : responsesProtocolConfigurationSerializer(item[\"responses\"]),\n a2a: !item[\"a2a\"] ? item[\"a2a\"] : a2AProtocolConfigurationSerializer(item[\"a2a\"]),\n mcp: !item[\"mcp\"] ? item[\"mcp\"] : mcpProtocolConfigurationSerializer(item[\"mcp\"]),\n invocations: !item[\"invocations\"]\n ? item[\"invocations\"]\n : invocationsProtocolConfigurationSerializer(item[\"invocations\"]),\n invocations_ws: !item[\"invocations_ws\"]\n ? item[\"invocations_ws\"]\n : invocationsWsProtocolConfigurationSerializer(item[\"invocations_ws\"]),\n };\n}\n\nexport function protocolConfigurationDeserializer(item: any): ProtocolConfiguration {\n return {\n activity: !item[\"activity\"]\n ? item[\"activity\"]\n : activityProtocolConfigurationDeserializer(item[\"activity\"]),\n responses: !item[\"responses\"]\n ? item[\"responses\"]\n : responsesProtocolConfigurationDeserializer(item[\"responses\"]),\n a2a: !item[\"a2a\"] ? item[\"a2a\"] : a2AProtocolConfigurationDeserializer(item[\"a2a\"]),\n mcp: !item[\"mcp\"] ? item[\"mcp\"] : mcpProtocolConfigurationDeserializer(item[\"mcp\"]),\n invocations: !item[\"invocations\"]\n ? item[\"invocations\"]\n : invocationsProtocolConfigurationDeserializer(item[\"invocations\"]),\n invocations_ws: !item[\"invocations_ws\"]\n ? item[\"invocations_ws\"]\n : invocationsWsProtocolConfigurationDeserializer(item[\"invocations_ws\"]),\n };\n}\n\n/** Configuration specific to the activity protocol. */\nexport interface ActivityProtocolConfiguration {\n /** Whether to enable the M365 public endpoint for the activity protocol. */\n enable_m365_public_endpoint?: boolean;\n /** The access boundaries for the activity protocol. */\n readonly access_boundaries?: ActivityProtocolAccessBoundary[];\n}\n\nexport function activityProtocolConfigurationSerializer(item: ActivityProtocolConfiguration): any {\n return { enable_m365_public_endpoint: item[\"enable_m365_public_endpoint\"] };\n}\n\nexport function activityProtocolConfigurationDeserializer(\n item: any,\n): ActivityProtocolConfiguration {\n return {\n enable_m365_public_endpoint: item[\"enable_m365_public_endpoint\"],\n access_boundaries: !item[\"access_boundaries\"]\n ? item[\"access_boundaries\"]\n : item[\"access_boundaries\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Configuration specific to the responses protocol. */\nexport interface ResponsesProtocolConfiguration {}\n\nexport function responsesProtocolConfigurationSerializer(\n _item: ResponsesProtocolConfiguration,\n): any {\n return {};\n}\n\nexport function responsesProtocolConfigurationDeserializer(\n item: any,\n): ResponsesProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the A2A protocol. */\nexport interface A2AProtocolConfiguration {}\n\nexport function a2AProtocolConfigurationSerializer(_item: A2AProtocolConfiguration): any {\n return {};\n}\n\nexport function a2AProtocolConfigurationDeserializer(item: any): A2AProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the MCP protocol. */\nexport interface McpProtocolConfiguration {}\n\nexport function mcpProtocolConfigurationSerializer(_item: McpProtocolConfiguration): any {\n return {};\n}\n\nexport function mcpProtocolConfigurationDeserializer(item: any): McpProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the invocations protocol. */\nexport interface InvocationsProtocolConfiguration {}\n\nexport function invocationsProtocolConfigurationSerializer(\n _item: InvocationsProtocolConfiguration,\n): any {\n return {};\n}\n\nexport function invocationsProtocolConfigurationDeserializer(\n item: any,\n): InvocationsProtocolConfiguration {\n return item;\n}\n\n/** Configuration specific to the WebSocket-based invocations protocol. */\nexport interface InvocationsWsProtocolConfiguration {}\n\nexport function invocationsWsProtocolConfigurationSerializer(\n _item: InvocationsWsProtocolConfiguration,\n): any {\n return {};\n}\n\nexport function invocationsWsProtocolConfigurationDeserializer(\n item: any,\n): InvocationsWsProtocolConfiguration {\n return item;\n}\n\nexport function agentEndpointAuthorizationSchemeUnionArraySerializer(\n result: Array<AgentEndpointAuthorizationSchemeUnion>,\n): any[] {\n return result.map((item) => {\n return agentEndpointAuthorizationSchemeUnionSerializer(item);\n });\n}\n\nexport function agentEndpointAuthorizationSchemeUnionArrayDeserializer(\n result: Array<AgentEndpointAuthorizationSchemeUnion>,\n): any[] {\n return result.map((item) => {\n return agentEndpointAuthorizationSchemeUnionDeserializer(item);\n });\n}\n\n/** model interface AgentEndpointAuthorizationScheme */\nexport interface AgentEndpointAuthorizationScheme {\n /** The authorization scheme used by the agent endpoint. */\n type: AgentEndpointAuthorizationSchemeType;\n}\n\nexport function agentEndpointAuthorizationSchemeSerializer(\n item: AgentEndpointAuthorizationScheme,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentEndpointAuthorizationSchemeDeserializer(\n item: any,\n): AgentEndpointAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentEndpointAuthorizationSchemeUnion */\nexport type AgentEndpointAuthorizationSchemeUnion =\n | EntraAuthorizationScheme\n | BotServiceAuthorizationScheme\n | BotServiceRbacAuthorizationScheme\n | BotServiceTenantAuthorizationScheme\n | AgentEndpointAuthorizationScheme;\n\nexport function agentEndpointAuthorizationSchemeUnionSerializer(\n item: AgentEndpointAuthorizationSchemeUnion,\n): any {\n switch (item.type) {\n case \"Entra\":\n return entraAuthorizationSchemeSerializer(item as EntraAuthorizationScheme);\n\n case \"BotService\":\n return botServiceAuthorizationSchemeSerializer(item as BotServiceAuthorizationScheme);\n\n case \"BotServiceRbac\":\n return botServiceRbacAuthorizationSchemeSerializer(item as BotServiceRbacAuthorizationScheme);\n\n case \"BotServiceTenant\":\n return botServiceTenantAuthorizationSchemeSerializer(\n item as BotServiceTenantAuthorizationScheme,\n );\n\n default:\n return agentEndpointAuthorizationSchemeSerializer(item);\n }\n}\n\nexport function agentEndpointAuthorizationSchemeUnionDeserializer(\n item: any,\n): AgentEndpointAuthorizationSchemeUnion {\n switch (item[\"type\"]) {\n case \"Entra\":\n return entraAuthorizationSchemeDeserializer(item as EntraAuthorizationScheme);\n\n case \"BotService\":\n return botServiceAuthorizationSchemeDeserializer(item as BotServiceAuthorizationScheme);\n\n case \"BotServiceRbac\":\n return botServiceRbacAuthorizationSchemeDeserializer(\n item as BotServiceRbacAuthorizationScheme,\n );\n\n case \"BotServiceTenant\":\n return botServiceTenantAuthorizationSchemeDeserializer(\n item as BotServiceTenantAuthorizationScheme,\n );\n\n default:\n return agentEndpointAuthorizationSchemeDeserializer(item);\n }\n}\n\n/** Type of AgentEndpointAuthorizationSchemeType */\nexport type AgentEndpointAuthorizationSchemeType =\n \"Entra\" | \"BotService\" | \"BotServiceRbac\" | \"BotServiceTenant\";\n\n/** model interface EntraAuthorizationScheme */\nexport interface EntraAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n /** Identifies the Microsoft Entra authorization scheme. Always `Entra`. */\n type: \"Entra\";\n}\n\nexport function entraAuthorizationSchemeSerializer(item: EntraAuthorizationScheme): any {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function entraAuthorizationSchemeDeserializer(item: any): EntraAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface BotServiceAuthorizationScheme */\nexport interface BotServiceAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n /** Identifies the Bot Service authorization scheme. Always `BotService`. */\n type: \"BotService\";\n}\n\nexport function botServiceAuthorizationSchemeSerializer(item: BotServiceAuthorizationScheme): any {\n return { type: item[\"type\"] };\n}\n\nexport function botServiceAuthorizationSchemeDeserializer(\n item: any,\n): BotServiceAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface BotServiceRbacAuthorizationScheme */\nexport interface BotServiceRbacAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n /** Identifies the Bot Service role-based authorization scheme. Always `BotServiceRbac`. */\n type: \"BotServiceRbac\";\n}\n\nexport function botServiceRbacAuthorizationSchemeSerializer(\n item: BotServiceRbacAuthorizationScheme,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function botServiceRbacAuthorizationSchemeDeserializer(\n item: any,\n): BotServiceRbacAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface BotServiceTenantAuthorizationScheme */\nexport interface BotServiceTenantAuthorizationScheme extends AgentEndpointAuthorizationScheme {\n /** Identifies the Bot Service tenant authorization scheme. Always `BotServiceTenant`. */\n type: \"BotServiceTenant\";\n}\n\nexport function botServiceTenantAuthorizationSchemeSerializer(\n item: BotServiceTenantAuthorizationScheme,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function botServiceTenantAuthorizationSchemeDeserializer(\n item: any,\n): BotServiceTenantAuthorizationScheme {\n return {\n type: item[\"type\"],\n };\n}\n\n/** The type of digital worker. */\nexport type DigitalWorkerType = \"m365\";\n\n/** model interface AgentCard */\nexport interface AgentCard {\n /** The version of the agent card. */\n version: string;\n /** The description of the agent card. */\n description?: string;\n /** The set of skills that an agent can perform. */\n skills: AgentCardSkill[];\n}\n\nexport function agentCardSerializer(item: AgentCard): any {\n return {\n version: item[\"version\"],\n description: item[\"description\"],\n skills: agentCardSkillArraySerializer(item[\"skills\"]),\n };\n}\n\nexport function agentCardDeserializer(item: any): AgentCard {\n return {\n version: item[\"version\"],\n description: item[\"description\"],\n skills: agentCardSkillArrayDeserializer(item[\"skills\"]),\n };\n}\n\nexport function agentCardSkillArraySerializer(result: Array<AgentCardSkill>): any[] {\n return result.map((item) => {\n return agentCardSkillSerializer(item);\n });\n}\n\nexport function agentCardSkillArrayDeserializer(result: Array<AgentCardSkill>): any[] {\n return result.map((item) => {\n return agentCardSkillDeserializer(item);\n });\n}\n\n/** model interface AgentCardSkill */\nexport interface AgentCardSkill {\n /** a unique identifier for the skill */\n id: string;\n /** The name of the skill */\n name: string;\n /** A description of the skill */\n description?: string;\n /** set of tagwords describing classes of capabilities for the skill */\n tags?: string[];\n /** A list of example scenarios that the skill can perform. */\n examples?: string[];\n}\n\nexport function agentCardSkillSerializer(item: AgentCardSkill): any {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : item[\"tags\"].map((p: any) => {\n return p;\n }),\n examples: !item[\"examples\"]\n ? item[\"examples\"]\n : item[\"examples\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function agentCardSkillDeserializer(item: any): AgentCardSkill {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tags: !item[\"tags\"]\n ? item[\"tags\"]\n : item[\"tags\"].map((p: any) => {\n return p;\n }),\n examples: !item[\"examples\"]\n ? item[\"examples\"]\n : item[\"examples\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Error response for API failures. */\nexport interface ApiErrorResponse {\n /** The error details. */\n error: ErrorModel;\n}\n\nexport function apiErrorResponseDeserializer(item: any): ApiErrorResponse {\n return {\n error: errorDeserializer(item[\"error\"]),\n };\n}\n\n/** model interface ErrorModel */\nexport interface ErrorModel {\n /** The error code. */\n code: string;\n /** The error message. */\n message: string;\n /** The parameter that caused the error. */\n param?: string;\n /** The error type. */\n type?: string;\n /** The error details. */\n details?: ErrorModel[];\n /** Additional information about the error. */\n additionalInfo?: Record<string, unknown>;\n /** Debug information for the error. */\n debugInfo?: Record<string, unknown>;\n /** Details of an action blocked because it may not align with the user's intent. */\n misalignment?: MisalignmentErrorDetailsResource;\n}\n\nexport function errorDeserializer(item: any): ErrorModel {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n param: item[\"param\"],\n type: item[\"type\"],\n details: !item[\"details\"] ? item[\"details\"] : apiErrorArrayDeserializer(item[\"details\"]),\n additionalInfo: item[\"additionalInfo\"],\n debugInfo: item[\"debugInfo\"],\n misalignment: !item[\"misalignment\"]\n ? item[\"misalignment\"]\n : misalignmentErrorDetailsResourceDeserializer(item[\"misalignment\"]),\n };\n}\n\nexport function apiErrorDeserializer(item: any): ErrorModel {\n return errorDeserializer(item);\n}\n\n/** Details of an action blocked because it may not align with the user's intent. */\nexport interface MisalignmentErrorDetailsResource {\n /** An optional classification; clients must accept additional values. */\n error_type?: MisalignmentErrorType;\n /** The public explanation for this block. */\n detailed_explanation?: string;\n /** An optional public continuation instruction. */\n steer?: MisalignmentSteer;\n}\n\nexport function misalignmentErrorDetailsResourceDeserializer(\n item: any,\n): MisalignmentErrorDetailsResource {\n return {\n error_type: !item[\"error_type\"]\n ? item[\"error_type\"]\n : misalignmentErrorTypeDeserializer(item[\"error_type\"]),\n detailed_explanation: item[\"detailed_explanation\"],\n steer: !item[\"steer\"] ? item[\"steer\"] : misalignmentSteerDeserializer(item[\"steer\"]),\n };\n}\n\n/** A classification of an action that may not align with the user's intent. Additional values may be returned. */\nexport type MisalignmentErrorType =\n | string\n | \"potentially_unintended_data_transfer\"\n | \"potentially_unintended_data_access\"\n | \"potentially_unintended_destructive_activity\"\n | \"other\";\n\nexport function misalignmentErrorTypeDeserializer(item: any): MisalignmentErrorType {\n return item;\n}\n\n/** A public instruction for continuing after an action is blocked. */\nexport interface MisalignmentSteer {\n /** The public continuation instruction. */\n message: string;\n}\n\nexport function misalignmentSteerDeserializer(item: any): MisalignmentSteer {\n return {\n message: item[\"message\"],\n };\n}\n\nexport function apiErrorArrayDeserializer(result: Array<ErrorModel>): any[] {\n return result.map((item) => {\n return errorDeserializer(item);\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: agentArrayDeserializer(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 agentArrayDeserializer(result: Array<Agent>): any[] {\n return result.map((item) => {\n return agentDeserializer(item);\n });\n}\n\n/** A deleted agent version Object */\nexport interface DeleteAgentVersionResponse {\n /** The object type. Always 'agent.version.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: agentVersionArrayDeserializer(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 agentVersionArrayDeserializer(result: Array<AgentVersion>): any[] {\n return result.map((item) => {\n return agentVersionDeserializer(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, humanEvaluationPreview */\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 | HumanEvaluationPreviewRuleAction | EvaluationRuleAction;\n\nexport function evaluationRuleActionUnionSerializer(item: EvaluationRuleActionUnion): any {\n switch (item.type) {\n case \"continuousEvaluation\":\n return continuousEvaluationRuleActionSerializer(item as ContinuousEvaluationRuleAction);\n\n case \"humanEvaluationPreview\":\n return humanEvaluationPreviewRuleActionSerializer(item as HumanEvaluationPreviewRuleAction);\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 \"humanEvaluationPreview\":\n return humanEvaluationPreviewRuleActionDeserializer(item as HumanEvaluationPreviewRuleAction);\n\n default:\n return evaluationRuleActionDeserializer(item);\n }\n}\n\n/** Type of the evaluation action. */\nexport type EvaluationRuleActionType = \"continuousEvaluation\" | \"humanEvaluationPreview\";\n\n/** Evaluation rule action for continuous evaluation. */\nexport interface ContinuousEvaluationRuleAction extends EvaluationRuleAction {\n /** The type discriminator, always 'continuousEvaluation'. */\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 /** Percentage (0-100] chance that a matching event triggers an evaluation. When omitted, the service-default is to evaluate every event, which is equivalent to setting a sampling rate of 100. */\n samplingRate?: 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 samplingRate: item[\"samplingRate\"],\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 samplingRate: item[\"samplingRate\"],\n };\n}\n\n/** Evaluation rule action for human evaluation. */\nexport interface HumanEvaluationPreviewRuleAction extends EvaluationRuleAction {\n /** The type discriminator, always 'humanEvaluationPreview'. */\n type: \"humanEvaluationPreview\";\n /** Human evaluation template Id. */\n templateId: string;\n}\n\nexport function humanEvaluationPreviewRuleActionSerializer(\n item: HumanEvaluationPreviewRuleAction,\n): any {\n return { type: item[\"type\"], templateId: item[\"templateId\"] };\n}\n\nexport function humanEvaluationPreviewRuleActionDeserializer(\n item: any,\n): HumanEvaluationPreviewRuleAction {\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/** 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_Preview\";\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_Preview */\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 | AgenticIdentityPreviewCredentials\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_Preview\":\n return agenticIdentityPreviewCredentialsDeserializer(\n item as AgenticIdentityPreviewCredentials,\n );\n\n default:\n return baseCredentialsDeserializer(item);\n }\n}\n\n/** The credential type used by the connection */\nexport type CredentialType =\n \"ApiKey\" | \"AAD\" | \"SAS\" | \"CustomKeys\" | \"None\" | \"AgenticIdentityToken_Preview\";\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 AgenticIdentityPreviewCredentials extends BaseCredentials {\n /** The credential type */\n readonly type: \"AgenticIdentityToken_Preview\";\n}\n\nexport function agenticIdentityPreviewCredentialsDeserializer(\n item: any,\n): AgenticIdentityPreviewCredentials {\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 /** The type of pending upload. */\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 /** The type of pending upload. */\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: blobReferenceSasCredentialDeserializer(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 blobReferenceSasCredentialDeserializer(item: any): SasCredential {\n return {\n sasUri: item[\"sasUri\"],\n type: item[\"credentialType\"] ?? item[\"type\"],\n };\n}\n\n/** Type alias for BlobReferenceSasCredential - same as SasCredential */\nexport type BlobReferenceSasCredential = SasCredential;\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/** 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/** 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 { type: item[\"type\"], description: item[\"description\"], tags: item[\"tags\"] };\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\"],\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: item[\"vectorFields\"],\n metadataFields: item[\"metadataFields\"],\n };\n}\n\nexport function fieldMappingDeserializer(item: any): FieldMapping {\n return {\n contentFields: item[\"contentFields\"],\n filepathField: item[\"filepathField\"],\n titleField: item[\"titleField\"],\n urlField: item[\"urlField\"],\n vectorFields: item[\"vectorFields\"],\n metadataFields: item[\"metadataFields\"],\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/** File contents with optional metadata for multipart uploads. */\nexport interface FileWithMetadata {\n contents: FileContents;\n contentType?: string;\n filename?: string;\n}\n\n/** Multipart request body for updating or versioning a code-based agent (POST /agents/{name} and POST /agents/{name}/versions). */\nexport interface CreateAgentVersionFromCodeContent {\n /** JSON metadata including description and hosted definition. */\n metadata: CreateAgentVersionFromCodeMetadata;\n /** The code zip file (max 250 MB). */\n code: FileContents | FileWithMetadata;\n}\n\nexport function createAgentVersionFromCodeContentSerializer(\n item: CreateAgentVersionFromCodeContent,\n): any {\n return [\n { name: \"metadata\", body: createAgentVersionFromCodeMetadataSerializer(item[\"metadata\"]) },\n createFilePartDescriptor(\"code\", item[\"code\"], \"application/octet-stream\"),\n ];\n}\n\n/**\n * JSON metadata for code-based agent operations (create, update, create version).\n * The agent name comes from the URL path parameter or the `x-ms-agent-name` header,\n * so it is not included in this model.\n * The content hash (SHA-256 of the zip) is carried in the `x-ms-code-zip-sha256` header.\n */\nexport interface CreateAgentVersionFromCodeMetadata {\n /** A human-readable description of the agent. */\n description?: string;\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 hosted agent definition including code_configuration (runtime, entry_point), cpu, memory, and protocol_versions. */\n definition: HostedAgentDefinition;\n}\n\nexport function createAgentVersionFromCodeMetadataSerializer(\n item: CreateAgentVersionFromCodeMetadata,\n): any {\n return {\n description: item[\"description\"],\n metadata: item[\"metadata\"],\n definition: hostedAgentDefinitionSerializer(item[\"definition\"]),\n };\n}\n\n/** Version indicator determining which agent version backs the session. */\nexport interface VersionIndicator {\n /** The type of version indicator. */\n /** The discriminator possible values: version_ref */\n type: VersionIndicatorType;\n}\n\nexport function versionIndicatorSerializer(item: VersionIndicator): any {\n return { type: item[\"type\"] };\n}\n\nexport function versionIndicatorDeserializer(item: any): VersionIndicator {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for VersionIndicatorUnion */\nexport type VersionIndicatorUnion = VersionRefIndicator | VersionIndicator;\n\nexport function versionIndicatorUnionSerializer(item: VersionIndicatorUnion): any {\n switch (item.type) {\n case \"version_ref\":\n return versionRefIndicatorSerializer(item as VersionRefIndicator);\n\n default:\n return versionIndicatorSerializer(item);\n }\n}\n\nexport function versionIndicatorUnionDeserializer(item: any): VersionIndicatorUnion {\n switch (item[\"type\"]) {\n case \"version_ref\":\n return versionRefIndicatorDeserializer(item as VersionRefIndicator);\n\n default:\n return versionIndicatorDeserializer(item);\n }\n}\n\n/** The type of version indicator used to determine the agent version backing a session. */\nexport type VersionIndicatorType = \"version_ref\";\n\n/** Version indicator that references a specific agent version by name. */\nexport interface VersionRefIndicator extends VersionIndicator {\n /** Discriminator value for version_ref. */\n type: \"version_ref\";\n /** The agent version identifier returned by the agent version APIs. */\n agent_version: string;\n}\n\nexport function versionRefIndicatorSerializer(item: VersionRefIndicator): any {\n return { type: item[\"type\"], agent_version: item[\"agent_version\"] };\n}\n\nexport function versionRefIndicatorDeserializer(item: any): VersionRefIndicator {\n return {\n type: item[\"type\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** An agent session providing a long-lived compute sandbox for hosted agent invocations. */\nexport interface AgentSessionResource {\n /** The session identifier. */\n agent_session_id: string;\n /** The version indicator determining which agent version backs this session. */\n version_indicator: VersionIndicatorUnion;\n /** The current status of the session. */\n status: AgentSessionStatus;\n /** The Unix timestamp (in seconds) when the session was created. */\n readonly created_at: Date;\n /** The Unix timestamp (in seconds) when the session was last accessed. */\n readonly last_accessed_at: Date;\n /** The Unix timestamp (in seconds) when the session expires (rolling, 30 days from last activity). */\n readonly expires_at: Date;\n /** The Unix timestamp (in seconds) when the session sandbox was last observed to stop or go idle. Present only after the session has gone idle at least once, used for accurate idle-billing reconciliation. */\n readonly stopped_at?: Date;\n}\n\nexport function agentSessionResourceDeserializer(item: any): AgentSessionResource {\n return {\n agent_session_id: item[\"agent_session_id\"],\n version_indicator: versionIndicatorUnionDeserializer(item[\"version_indicator\"]),\n status: item[\"status\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n last_accessed_at: new Date(item[\"last_accessed_at\"] * 1000),\n expires_at: new Date(item[\"expires_at\"] * 1000),\n stopped_at:\n item[\"stopped_at\"] === undefined || item[\"stopped_at\"] === null\n ? item[\"stopped_at\"]\n : new Date(item[\"stopped_at\"] * 1000),\n };\n}\n\n/** The status of an agent session. */\nexport type AgentSessionStatus =\n \"creating\" | \"active\" | \"idle\" | \"updating\" | \"failed\" | \"deleting\" | \"deleted\" | \"expired\";\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentSessionResource {\n /** The requested list of items. */\n data: AgentSessionResource[];\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 _agentsPagedResultAgentSessionResourceDeserializer(\n item: any,\n): _AgentsPagedResultAgentSessionResource {\n return {\n data: agentSessionResourceArrayDeserializer(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 agentSessionResourceArrayDeserializer(result: Array<AgentSessionResource>): any[] {\n return result.map((item) => {\n return agentSessionResourceDeserializer(item);\n });\n}\n\n/**\n * A single Server-Sent Event frame emitted by the hosted agent session log stream.\n *\n * Each frame contains an `event` field identifying the event type and a `data`\n * field carrying the payload as plain text. Although the current `data` payload\n * is JSON-formatted, its schema is not contractual \u2014 additional keys may appear\n * and the format may change over time. Clients should treat `data` as an\n * opaque string and optionally attempt JSON parsing.\n *\n * New event types may be added in the future. Clients should gracefully\n * ignore unrecognized event types.\n *\n * Wire format:\n * ```\n * event: log\n * data: {\"timestamp\":\"2026-03-10T09:33:17.121Z\",\"stream\":\"stdout\",\"message\":\"Starting server on port 18080\"}\n *\n * event: log\n * data: {\"timestamp\":\"2026-03-10T09:34:52.714Z\",\"stream\":\"status\",\"message\":\"Successfully connected to container\"}\n * ```\n */\nexport interface SessionLogEvent {\n /** The SSE event type. Currently `log`, but additional event types may be added in the future. Clients should ignore unrecognized event types. */\n event: SessionLogEventType;\n /** The event payload as plain text. Currently JSON-formatted but the schema is not contractual and may change. */\n data: string;\n}\n\nexport function sessionLogEventDeserializer(item: any): SessionLogEvent {\n return {\n event: item[\"event\"],\n data: item[\"data\"],\n };\n}\n\n/**\n * Known SSE event types emitted by the hosted agent session log stream.\n * Additional event types may be introduced in future versions.\n */\nexport type SessionLogEventType = \"log\";\n\nexport function microsoft365PermissionScopesArraySerializer(\n result: Array<Microsoft365PermissionScopes>,\n): any[] {\n return result.map((item) => {\n return microsoft365PermissionScopesSerializer(item);\n });\n}\n\n/** A set of delegated permission scopes requested from a single resource application. */\nexport interface Microsoft365PermissionScopes {\n /** Application id of the resource that exposes the requested delegated scopes. */\n resourceAppId: string;\n /** Delegated scope names requested from the resource application. Must not be empty. */\n scopes: string[];\n}\n\nexport function microsoft365PermissionScopesSerializer(item: Microsoft365PermissionScopes): any {\n return {\n resourceAppId: item[\"resourceAppId\"],\n scopes: item[\"scopes\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The publish scope for the generated Microsoft Teams app. */\nexport type Microsoft365PublishScope = \"Personal\" | \"Shared\" | \"Tenant\";\n\n/** Response from publishing an agent to Microsoft 365 / Microsoft Teams. */\nexport interface Microsoft365PublishResponse {\n /** The Microsoft 365 title id of the published app. */\n titleId?: string;\n /** The Microsoft Teams app id of the published app. */\n teamsAppId?: string;\n}\n\nexport function microsoft365PublishResponseDeserializer(item: any): Microsoft365PublishResponse {\n return {\n titleId: item[\"titleId\"],\n teamsAppId: item[\"teamsAppId\"],\n };\n}\n\n/**\n * Default and previously-published values used to pre-populate a Microsoft 365 publish request for a\n * Foundry agent.\n */\nexport interface Microsoft365PublishDefaults {\n /** The publish scope. */\n appPublishScope?: Microsoft365PublishScope;\n /** The agent name. */\n agentName?: string;\n /**\n * The user-facing display name for the agent. Defaults to the agent name if not previously\n * overridden.\n */\n agentDisplayName?: string;\n /** The app-registration client id associated with the agent. */\n appRegistrationClientId?: string;\n /** ARM resource id of the Azure Bot Service associated with the previously-published app, if any. */\n botServiceArmId?: string;\n /** The most recently published app version. */\n appVersion?: string;\n /** The recommended next app version (the most recent app version, incremented). */\n recommendedNextAppVersion?: string;\n /** The Microsoft 365 title id of the previously-published app, if any. */\n titleId?: string;\n /** The Microsoft Teams app id of the previously-published app, if any. */\n teamsAppId?: string;\n /** Short, one-line description shown in the Teams app listing. */\n shortDescription?: string;\n /** Full description shown on the Teams app details page. */\n fullDescription?: string;\n /** Display name of the developer / publisher. */\n developerName?: string;\n /** Developer / publisher website URL. */\n developerWebsiteUrl?: string;\n /** Privacy policy URL. */\n privacyUrl?: string;\n /** Terms-of-use URL. */\n termsOfUseUrl?: string;\n}\n\nexport function microsoft365PublishDefaultsDeserializer(item: any): Microsoft365PublishDefaults {\n return {\n appPublishScope: item[\"appPublishScope\"],\n agentName: item[\"agentName\"],\n agentDisplayName: item[\"agentDisplayName\"],\n appRegistrationClientId: item[\"appRegistrationClientId\"],\n botServiceArmId: item[\"botServiceArmId\"],\n appVersion: item[\"appVersion\"],\n recommendedNextAppVersion: item[\"recommendedNextAppVersion\"],\n titleId: item[\"titleId\"],\n teamsAppId: item[\"teamsAppId\"],\n shortDescription: item[\"shortDescription\"],\n fullDescription: item[\"fullDescription\"],\n developerName: item[\"developerName\"],\n developerWebsiteUrl: item[\"developerWebsiteUrl\"],\n privacyUrl: item[\"privacyUrl\"],\n termsOfUseUrl: item[\"termsOfUseUrl\"],\n };\n}\n\n/** Response from uploading a file to a session sandbox. */\nexport interface SessionFileWriteResponse {\n /** The path where the file was written, relative to the session home directory. */\n path: string;\n /** Number of bytes written. */\n bytes_written: number;\n}\n\nexport function sessionFileWriteResponseDeserializer(item: any): SessionFileWriteResponse {\n return {\n path: item[\"path\"],\n bytes_written: item[\"bytes_written\"],\n };\n}\n\n/** Response from listing a directory in a session sandbox. */\nexport interface SessionDirectoryListResponse {\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 /** The path that was listed, relative to the session home directory. */\n path: string;\n /** The directory entries. */\n entries: SessionDirectoryEntry[];\n}\n\nexport function sessionDirectoryListResponseDeserializer(item: any): SessionDirectoryListResponse {\n return {\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n path: item[\"path\"],\n entries: sessionDirectoryEntryArrayDeserializer(item[\"entries\"]),\n };\n}\n\nexport function sessionDirectoryEntryArrayDeserializer(\n result: Array<SessionDirectoryEntry>,\n): any[] {\n return result.map((item) => {\n return sessionDirectoryEntryDeserializer(item);\n });\n}\n\n/** A single entry in a directory listing. */\nexport interface SessionDirectoryEntry {\n /** The name of the file or directory. */\n name: string;\n /** The size in bytes (0 for directories). */\n size: number;\n /** Whether this entry is a directory. */\n is_directory: boolean;\n /** The Unix timestamp (in seconds) when the file was last modified. */\n modified_time: Date;\n}\n\nexport function sessionDirectoryEntryDeserializer(item: any): SessionDirectoryEntry {\n return {\n name: item[\"name\"],\n size: item[\"size\"],\n is_directory: item[\"is_directory\"],\n modified_time: new Date(item[\"modified_time\"] * 1000),\n };\n}\n\nexport function toolboxToolUnionArraySerializer(result: Array<ToolboxToolUnion>): any[] {\n return result.map((item) => {\n return toolboxToolUnionSerializer(item);\n });\n}\n\nexport function toolboxToolUnionArrayDeserializer(result: Array<ToolboxToolUnion>): any[] {\n return result.map((item) => {\n return toolboxToolUnionDeserializer(item);\n });\n}\n\n/** An abstract representation of a tool stored in a toolbox. */\nexport interface ToolboxTool {\n /** The type of tool. */\n /** The discriminator possible values: code_interpreter, file_search, web_search, shell, mcp, azure_ai_search, openapi, a2a, a2a_preview, browser_automation_preview, reminder_preview, work_iq_preview, fabric_iq_preview, web_iq_preview, toolbox_search_preview, toolbox_search */\n type: ToolboxToolType;\n /** Optional user-defined name for this tool or configuration. */\n name?: string;\n /** Optional user-defined description for this tool or configuration. */\n description?: string;\n /**\n * Per-tool configuration map. Keys are tool names or `*` (catch-all default).\n * Resolution order: exact tool name match takes priority over `*`.\n * Unknown tool names are silently ignored at runtime.\n */\n tool_configs?: Record<string, ToolConfig>;\n}\n\nexport function toolboxToolSerializer(item: ToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolboxToolDeserializer(item: any): ToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** Alias for ToolboxToolUnion */\nexport type ToolboxToolUnion =\n | CodeInterpreterToolboxTool\n | FileSearchToolboxTool\n | WebSearchToolboxTool\n | ShellToolboxTool\n | MCPToolboxTool\n | AzureAISearchToolboxTool\n | OpenApiToolboxTool\n | A2AToolboxTool\n | A2APreviewToolboxTool\n | BrowserAutomationPreviewToolboxTool\n | ReminderPreviewToolboxTool\n | WorkIQPreviewToolboxTool\n | FabricIQPreviewToolboxTool\n | WebIQPreviewToolboxTool\n | ToolboxSearchPreviewToolboxTool\n | ToolSearchToolboxTool\n | ToolboxTool;\n\nexport function toolboxToolUnionSerializer(item: ToolboxToolUnion): any {\n switch (item.type) {\n case \"code_interpreter\":\n return codeInterpreterToolboxToolSerializer(item as CodeInterpreterToolboxTool);\n\n case \"file_search\":\n return fileSearchToolboxToolSerializer(item as FileSearchToolboxTool);\n\n case \"web_search\":\n return webSearchToolboxToolSerializer(item as WebSearchToolboxTool);\n\n case \"shell\":\n return shellToolboxToolSerializer(item as ShellToolboxTool);\n\n case \"mcp\":\n return mcpToolboxToolSerializer(item as MCPToolboxTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolboxToolSerializer(item as AzureAISearchToolboxTool);\n\n case \"openapi\":\n return openApiToolboxToolSerializer(item as OpenApiToolboxTool);\n\n case \"a2a\":\n return a2AToolboxToolSerializer(item as A2AToolboxTool);\n\n case \"a2a_preview\":\n return a2APreviewToolboxToolSerializer(item as A2APreviewToolboxTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolboxToolSerializer(\n item as BrowserAutomationPreviewToolboxTool,\n );\n\n case \"reminder_preview\":\n return reminderPreviewToolboxToolSerializer(item as ReminderPreviewToolboxTool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolboxToolSerializer(item as WorkIQPreviewToolboxTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolboxToolSerializer(item as FabricIQPreviewToolboxTool);\n\n case \"web_iq_preview\":\n return webIQPreviewToolboxToolSerializer(item as WebIQPreviewToolboxTool);\n\n case \"toolbox_search_preview\":\n return toolboxSearchPreviewToolboxToolSerializer(item as ToolboxSearchPreviewToolboxTool);\n\n case \"toolbox_search\":\n return toolSearchToolboxToolSerializer(item as ToolSearchToolboxTool);\n\n default:\n return toolboxToolSerializer(item);\n }\n}\n\nexport function toolboxToolUnionDeserializer(item: any): ToolboxToolUnion {\n switch (item[\"type\"]) {\n case \"code_interpreter\":\n return codeInterpreterToolboxToolDeserializer(item as CodeInterpreterToolboxTool);\n\n case \"file_search\":\n return fileSearchToolboxToolDeserializer(item as FileSearchToolboxTool);\n\n case \"web_search\":\n return webSearchToolboxToolDeserializer(item as WebSearchToolboxTool);\n\n case \"shell\":\n return shellToolboxToolDeserializer(item as ShellToolboxTool);\n\n case \"mcp\":\n return mcpToolboxToolDeserializer(item as MCPToolboxTool);\n\n case \"azure_ai_search\":\n return azureAISearchToolboxToolDeserializer(item as AzureAISearchToolboxTool);\n\n case \"openapi\":\n return openApiToolboxToolDeserializer(item as OpenApiToolboxTool);\n\n case \"a2a\":\n return a2AToolboxToolDeserializer(item as A2AToolboxTool);\n\n case \"a2a_preview\":\n return a2APreviewToolboxToolDeserializer(item as A2APreviewToolboxTool);\n\n case \"browser_automation_preview\":\n return browserAutomationPreviewToolboxToolDeserializer(\n item as BrowserAutomationPreviewToolboxTool,\n );\n\n case \"reminder_preview\":\n return reminderPreviewToolboxToolDeserializer(item as ReminderPreviewToolboxTool);\n\n case \"work_iq_preview\":\n return workIQPreviewToolboxToolDeserializer(item as WorkIQPreviewToolboxTool);\n\n case \"fabric_iq_preview\":\n return fabricIQPreviewToolboxToolDeserializer(item as FabricIQPreviewToolboxTool);\n\n case \"web_iq_preview\":\n return webIQPreviewToolboxToolDeserializer(item as WebIQPreviewToolboxTool);\n\n case \"toolbox_search_preview\":\n return toolboxSearchPreviewToolboxToolDeserializer(item as ToolboxSearchPreviewToolboxTool);\n\n case \"toolbox_search\":\n return toolSearchToolboxToolDeserializer(item as ToolSearchToolboxTool);\n\n default:\n return toolboxToolDeserializer(item);\n }\n}\n\n/** Supported tool types for tools stored in a toolbox. */\nexport type ToolboxToolType =\n | \"code_interpreter\"\n | \"file_search\"\n | \"web_search\"\n | \"mcp\"\n | \"azure_ai_search\"\n | \"openapi\"\n | \"a2a_preview\"\n | \"browser_automation_preview\"\n | \"reminder_preview\"\n | \"work_iq_preview\"\n | \"fabric_iq_preview\"\n | \"toolbox_search\"\n | \"toolbox_search_preview\"\n | \"a2a\"\n | \"shell\"\n | \"web_iq_preview\";\n\n/** A code interpreter tool stored in a toolbox. */\nexport interface CodeInterpreterToolboxTool extends ToolboxTool {\n /** The type of the code interpreter toolbox tool. Always `code_interpreter`. */\n type: \"code_interpreter\";\n /**\n * The callers that may invoke this code interpreter toolbox tool, either directly or\n * programmatically.\n */\n allowed_callers?: CallableToolAllowedCaller[];\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, along with an\n * optional `memory_limit` setting.\n * If not provided, the service assumes auto.\n */\n container?: string | AutoCodeInterpreterToolParam;\n}\n\nexport function codeInterpreterToolboxToolSerializer(item: CodeInterpreterToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerSerializer(item[\"container\"]),\n };\n}\n\nexport function codeInterpreterToolboxToolDeserializer(item: any): CodeInterpreterToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n container: !item[\"container\"]\n ? item[\"container\"]\n : _codeInterpreterToolContainerDeserializer(item[\"container\"]),\n };\n}\n\n/** A file search tool stored in a toolbox. */\nexport interface FileSearchToolboxTool extends ToolboxTool {\n /** The type of the file search toolbox tool. Always `file_search`. */\n type: \"file_search\";\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 /** Filters that restrict which files are included in the search. */\n filters?: Filters;\n /** The IDs of the vector stores to search. */\n vector_store_ids?: string[];\n}\n\nexport function fileSearchToolboxToolSerializer(item: FileSearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\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 vector_store_ids: !item[\"vector_store_ids\"]\n ? item[\"vector_store_ids\"]\n : item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function fileSearchToolboxToolDeserializer(item: any): FileSearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\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 vector_store_ids: !item[\"vector_store_ids\"]\n ? item[\"vector_store_ids\"]\n : item[\"vector_store_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** A web search tool stored in a toolbox. */\nexport interface WebSearchToolboxTool extends ToolboxTool {\n /** The toolbox tool type. Always `web_search` for a web search tool. */\n type: \"web_search\";\n /** Filters that restrict web search results to allowed domains. */\n filters?: WebSearchToolFilters;\n /** The user's approximate location, used to improve the relevance of web search results. */\n user_location?: WebSearchApproximateLocation;\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 * The project connections attached to this tool. There can be a maximum of 1 connection\n * resource attached to the tool.\n */\n custom_search_configuration?: WebSearchConfiguration;\n /** Allow live internet access for web search. Defaults to true when omitted. When false, the web search tool runs in offline/cache-only mode and will not fetch new external content. */\n external_web_access?: boolean;\n}\n\nexport function webSearchToolboxToolSerializer(item: WebSearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersSerializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationSerializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationSerializer(item[\"custom_search_configuration\"]),\n external_web_access: item[\"external_web_access\"],\n };\n}\n\nexport function webSearchToolboxToolDeserializer(item: any): WebSearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n filters: !item[\"filters\"] ? item[\"filters\"] : webSearchToolFiltersDeserializer(item[\"filters\"]),\n user_location: !item[\"user_location\"]\n ? item[\"user_location\"]\n : webSearchApproximateLocationDeserializer(item[\"user_location\"]),\n search_context_size: item[\"search_context_size\"],\n custom_search_configuration: !item[\"custom_search_configuration\"]\n ? item[\"custom_search_configuration\"]\n : webSearchConfigurationDeserializer(item[\"custom_search_configuration\"]),\n external_web_access: item[\"external_web_access\"],\n };\n}\n\n/** An MCP tool stored in a toolbox. */\nexport interface MCPToolboxTool extends ToolboxTool {\n /** The type of the MCP toolbox 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 /**\n * The URL for the MCP server. One of `server_url`, `connector_id`, or\n * `tunnel_id` must be provided.\n */\n server_url?: string;\n /**\n * Identifier for service connectors, like those available in ChatGPT. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more\n * about service connectors [here](/docs/guides/tools-remote-mcp#connectors).\n * Currently supported `connector_id` values are:\n * - Dropbox: `connector_dropbox`\n * - Gmail: `connector_gmail`\n * - Google Calendar: `connector_googlecalendar`\n * - Google Drive: `connector_googledrive`\n * - Microsoft Teams: `connector_microsoftteams`\n * - Outlook Calendar: `connector_outlookcalendar`\n * - Outlook Email: `connector_outlookemail`\n * - SharePoint: `connector_sharepoint`\n */\n connector_id?:\n | \"connector_dropbox\"\n | \"connector_gmail\"\n | \"connector_googlecalendar\"\n | \"connector_googledrive\"\n | \"connector_microsoftteams\"\n | \"connector_outlookcalendar\"\n | \"connector_outlookemail\"\n | \"connector_sharepoint\";\n /**\n * The Secure MCP Tunnel ID to use instead of a direct server URL. One of\n * `server_url`, `connector_id`, or `tunnel_id` must be provided.\n */\n tunnel_id?: string;\n /**\n * An OAuth access token that can be used with a remote MCP server, either\n * with a custom MCP server URL or a service connector. Your application\n * must handle the OAuth authorization flow and provide the token here.\n */\n authorization?: string;\n /** Optional description of the MCP server, used to provide more context. */\n server_description?: string;\n /** Custom HTTP headers to include in requests to the MCP server. */\n headers?: Record<string, string>;\n /** The MCP tools available for use, specified by name or a tool filter. */\n allowed_tools?: string[] | MCPToolFilter;\n /** The callers that may invoke this MCP toolbox tool, either directly or programmatically. */\n allowed_callers?: CallableToolAllowedCaller[];\n /**\n * Whether MCP tool calls require approval, either for all tools or for tools selected by filters.\n */\n require_approval?: MCPToolRequireApproval | \"always\" | \"never\";\n /** Whether this MCP tool is deferred and discovered via tool search. */\n defer_loading?: boolean;\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 mcpToolboxToolSerializer(item: MCPToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function mcpToolboxToolDeserializer(item: any): MCPToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n connector_id: item[\"connector_id\"],\n tunnel_id: item[\"tunnel_id\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: !item[\"headers\"]\n ? item[\"headers\"]\n : Object.fromEntries(\n Object.entries(item[\"headers\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** An Azure AI Search tool stored in a toolbox. */\nexport interface AzureAISearchToolboxTool extends ToolboxTool {\n /** The type of the Azure AI Search toolbox tool. 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 azureAISearchToolboxToolSerializer(item: AzureAISearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n azure_ai_search: azureAISearchToolResourceSerializer(item[\"azure_ai_search\"]),\n };\n}\n\nexport function azureAISearchToolboxToolDeserializer(item: any): AzureAISearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n azure_ai_search: azureAISearchToolResourceDeserializer(item[\"azure_ai_search\"]),\n };\n}\n\n/** An OpenAPI tool stored in a toolbox. */\nexport interface OpenApiToolboxTool extends ToolboxTool {\n /** The type of the OpenAPI toolbox tool. Always `openapi`. */\n type: \"openapi\";\n /** The openapi function definition. */\n openapi: OpenApiFunctionDefinition;\n}\n\nexport function openApiToolboxToolSerializer(item: OpenApiToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n openapi: openApiFunctionDefinitionSerializer(item[\"openapi\"]),\n };\n}\n\nexport function openApiToolboxToolDeserializer(item: any): OpenApiToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n openapi: openApiFunctionDefinitionDeserializer(item[\"openapi\"]),\n };\n}\n\n/** An A2A tool stored in a toolbox. */\nexport interface A2APreviewToolboxTool extends ToolboxTool {\n /** The type of the preview A2A toolbox tool. Always `a2a_preview`. */\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 * When `true`, Foundry sends its credentials when fetching the remote\n * agent's Agent Card. The service defaults to `false` if a value is not\n * specified by the caller (anonymous fetch).\n */\n send_credentials_for_agent_card?: boolean;\n}\n\nexport function a2APreviewToolboxToolSerializer(item: A2APreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\nexport function a2APreviewToolboxToolDeserializer(item: any): A2APreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n };\n}\n\n/** A browser automation tool stored in a toolbox. */\nexport interface BrowserAutomationPreviewToolboxTool extends ToolboxTool {\n /**\n * The type of the preview browser automation toolbox tool. Always `browser_automation_preview`.\n */\n type: \"browser_automation_preview\";\n /** The Browser Automation Tool parameters. */\n browser_automation_preview: BrowserAutomationToolParameters;\n}\n\nexport function browserAutomationPreviewToolboxToolSerializer(\n item: BrowserAutomationPreviewToolboxTool,\n): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n browser_automation_preview: browserAutomationToolParametersSerializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\nexport function browserAutomationPreviewToolboxToolDeserializer(\n item: any,\n): BrowserAutomationPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n browser_automation_preview: browserAutomationToolParametersDeserializer(\n item[\"browser_automation_preview\"],\n ),\n };\n}\n\n/** A reminder tool stored in a toolbox. */\nexport interface ReminderPreviewToolboxTool extends ToolboxTool {\n /** The toolbox tool type. Always `reminder_preview`. */\n type: \"reminder_preview\";\n}\n\nexport function reminderPreviewToolboxToolSerializer(item: ReminderPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function reminderPreviewToolboxToolDeserializer(item: any): ReminderPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** A WorkIQ tool stored in a toolbox. */\nexport interface WorkIQPreviewToolboxTool extends ToolboxTool {\n /** The toolbox tool type. Always `work_iq_preview` for a WorkIQ tool. */\n type: \"work_iq_preview\";\n /** The ID of the WorkIQ project connection. */\n project_connection_id: string;\n}\n\nexport function workIQPreviewToolboxToolSerializer(item: WorkIQPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\nexport function workIQPreviewToolboxToolDeserializer(item: any): WorkIQPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n };\n}\n\n/** A FabricIQ tool stored in a toolbox. */\nexport interface FabricIQPreviewToolboxTool extends ToolboxTool {\n /** The type of the preview FabricIQ toolbox tool. Always `fabric_iq_preview`. */\n type: \"fabric_iq_preview\";\n /** The ID of the FabricIQ project connection. */\n project_connection_id: string;\n /** (Optional) The label of the FabricIQ MCP server to connect to. */\n server_label?: string;\n /** (Optional) The URL of the FabricIQ MCP server. If not provided, the URL from the project connection will be used. */\n server_url?: string;\n /** (Optional) Whether the agent requires approval before executing actions. Default is always. */\n require_approval?: MCPToolRequireApproval | string;\n}\n\nexport function fabricIQPreviewToolboxToolSerializer(item: FabricIQPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalSerializer(item[\"require_approval\"]),\n };\n}\n\nexport function fabricIQPreviewToolboxToolDeserializer(item: any): FabricIQPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n server_url: item[\"server_url\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _fabricIQPreviewToolRequireApprovalDeserializer(item[\"require_approval\"]),\n };\n}\n\n/** A toolbox search tool stored in a toolbox. */\nexport interface ToolboxSearchPreviewToolboxTool extends ToolboxTool {\n /** The type of the tool. Always `toolbox_search_preview`. */\n type: \"toolbox_search_preview\";\n}\n\nexport function toolboxSearchPreviewToolboxToolSerializer(\n item: ToolboxSearchPreviewToolboxTool,\n): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolboxSearchPreviewToolboxToolDeserializer(\n item: any,\n): ToolboxSearchPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\n/** A toolbox search tool stored in a toolbox. */\nexport interface ToolSearchToolboxTool extends ToolboxTool {\n /** The type of the tool. Always `toolbox_search`. */\n type: \"toolbox_search\";\n}\n\nexport function toolSearchToolboxToolSerializer(item: ToolSearchToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolSearchToolboxToolDeserializer(item: any): ToolSearchToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n };\n}\n\nexport function toolboxSkillUnionArraySerializer(result: Array<ToolboxSkillUnion>): any[] {\n return result.map((item) => {\n return toolboxSkillUnionSerializer(item);\n });\n}\n\nexport function toolboxSkillUnionArrayDeserializer(result: Array<ToolboxSkillUnion>): any[] {\n return result.map((item) => {\n return toolboxSkillUnionDeserializer(item);\n });\n}\n\n/** A skill source included in a toolbox. */\nexport interface ToolboxSkill {\n /** The type of skill source. */\n /** The discriminator possible values: skill_reference */\n type: string;\n}\n\nexport function toolboxSkillSerializer(item: ToolboxSkill): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolboxSkillDeserializer(item: any): ToolboxSkill {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolboxSkillUnion */\nexport type ToolboxSkillUnion = ToolboxSkillReference | ToolboxSkill;\n\nexport function toolboxSkillUnionSerializer(item: ToolboxSkillUnion): any {\n switch (item.type) {\n case \"skill_reference\":\n return toolboxSkillReferenceSerializer(item as ToolboxSkillReference);\n\n default:\n return toolboxSkillSerializer(item);\n }\n}\n\nexport function toolboxSkillUnionDeserializer(item: any): ToolboxSkillUnion {\n switch (item[\"type\"]) {\n case \"skill_reference\":\n return toolboxSkillReferenceDeserializer(item as ToolboxSkillReference);\n\n default:\n return toolboxSkillDeserializer(item);\n }\n}\n\n/** A reference to an existing skill to include in a toolbox. */\nexport interface ToolboxSkillReference extends ToolboxSkill {\n /** The type of skill source. */\n type: \"skill_reference\";\n /** The name of the skill. */\n name: string;\n /** The version of the skill. If not specified, the skill's default version is used. When a version is specified, the reference is pinned to that immutable version. */\n version?: string;\n}\n\nexport function toolboxSkillReferenceSerializer(item: ToolboxSkillReference): any {\n return { type: item[\"type\"], name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function toolboxSkillReferenceDeserializer(item: any): ToolboxSkillReference {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Policy configuration for a toolbox, including content safety and other governance settings. */\nexport interface ToolboxPolicies {\n /** Responsible AI content filtering configuration. */\n rai_config?: RaiConfig;\n}\n\nexport function toolboxPoliciesSerializer(item: ToolboxPolicies): any {\n return {\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n };\n}\n\nexport function toolboxPoliciesDeserializer(item: any): ToolboxPolicies {\n return {\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n };\n}\n\n/** A specific version of a toolbox. */\nexport interface ToolboxVersionObject {\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> | null;\n /** The unique identifier of the toolbox version. */\n id: string;\n /** The name of the toolbox. */\n name: string;\n /** The version identifier of the toolbox. Toolbox versions are immutable and every update creates a new version. */\n version: string;\n /** A human-readable description of the toolbox. */\n description?: string;\n /** The Unix timestamp (seconds) when the toolbox version was created. */\n created_at: Date;\n /** The list of tools contained in this toolbox version. */\n tools: ToolboxToolUnion[];\n /** The list of skill sources included in this toolbox version. */\n skills?: ToolboxSkillUnion[];\n /** Policy configuration for the toolbox version. */\n policies?: ToolboxPolicies;\n}\n\nexport function toolboxVersionObjectDeserializer(item: any): ToolboxVersionObject {\n return {\n metadata: !item[\"metadata\"]\n ? item[\"metadata\"]\n : Object.fromEntries(\n Object.entries(item[\"metadata\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\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 tools: toolboxToolUnionArrayDeserializer(item[\"tools\"]),\n skills: !item[\"skills\"] ? item[\"skills\"] : toolboxSkillUnionArrayDeserializer(item[\"skills\"]),\n policies: !item[\"policies\"] ? item[\"policies\"] : toolboxPoliciesDeserializer(item[\"policies\"]),\n };\n}\n\n/** A toolbox that stores reusable tool definitions for agents. */\nexport interface ToolboxObject {\n /** The unique identifier of the toolbox. */\n id: string;\n /** The name of the toolbox. */\n name: string;\n /** The Unix timestamp (seconds) when the toolbox was last updated. This value changes when a new toolbox version is created or the toolbox is updated. */\n updated_at: Date;\n /** The versions associated with the toolbox. Absent on responses that do not expand versions. */\n versions?: ToolboxVersions;\n /** The version identifier that the toolbox currently points to. Defaults to the latest version. Can be changed via updateToolbox. */\n default_version: string;\n}\n\nexport function toolboxObjectDeserializer(item: any): ToolboxObject {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n versions: !item[\"versions\"] ? item[\"versions\"] : toolboxVersionsDeserializer(item[\"versions\"]),\n default_version: item[\"default_version\"],\n };\n}\n\n/** The versions associated with a toolbox. */\nexport interface ToolboxVersions {\n /** The latest version of the toolbox. */\n latest: ToolboxVersionObject;\n}\n\nexport function toolboxVersionsDeserializer(item: any): ToolboxVersions {\n return {\n latest: toolboxVersionObjectDeserializer(item[\"latest\"]),\n };\n}\n\n/** The response returned by the latest toolbox MCP endpoint. */\nexport type ToolboxesInvokeLatestToolboxMcpResponse = { body: unknown };\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultToolboxObject {\n /** The requested list of items. */\n data: ToolboxObject[];\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 _agentsPagedResultToolboxObjectDeserializer(\n item: any,\n): _AgentsPagedResultToolboxObject {\n return {\n data: toolboxObjectArrayDeserializer(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 toolboxObjectArrayDeserializer(result: Array<ToolboxObject>): any[] {\n return result.map((item) => {\n return toolboxObjectDeserializer(item);\n });\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultToolboxVersionObject {\n /** The requested list of items. */\n data: ToolboxVersionObject[];\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 _agentsPagedResultToolboxVersionObjectDeserializer(\n item: any,\n): _AgentsPagedResultToolboxVersionObject {\n return {\n data: toolboxVersionObjectArrayDeserializer(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 toolboxVersionObjectArrayDeserializer(result: Array<ToolboxVersionObject>): any[] {\n return result.map((item) => {\n return toolboxVersionObjectDeserializer(item);\n });\n}\n\n/** The trigger that started an agent insight run. */\nexport type AgentInsightRunTrigger = \"on_demand\" | \"scheduled\";\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentInsightRun {\n /** The requested list of items. */\n data: AgentInsightRun[];\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 _agentsPagedResultAgentInsightRunDeserializer(\n item: any,\n): _AgentsPagedResultAgentInsightRun {\n return {\n data: agentInsightRunArrayDeserializer(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 agentInsightRunArrayDeserializer(result: Array<AgentInsightRun>): any[] {\n return result.map((item) => {\n return agentInsightRunDeserializer(item);\n });\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentInsight {\n /** The requested list of items. */\n data: AgentInsight[];\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 _agentsPagedResultAgentInsightDeserializer(\n item: any,\n): _AgentsPagedResultAgentInsight {\n return {\n data: agentInsightArrayDeserializer(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 agentInsightArrayDeserializer(result: Array<AgentInsight>): any[] {\n return result.map((item) => {\n return agentInsightDeserializer(item);\n });\n}\n\n/** A persisted issue discovered from an agent's traces. */\nexport interface AgentInsight {\n /** The insight identifier. */\n readonly id: string;\n /** The Agent Insights monitor this insight belongs to. */\n readonly monitor_id: string;\n /** The agent this insight belongs to. */\n readonly agent_name: string;\n /** The latest immutable agent version associated with this insight. */\n readonly agent_version: string;\n /** A short title for the issue. */\n readonly title: string;\n /** The severity of the issue. */\n readonly severity: AgentInsightSeverity;\n /** An open, service-generated category label for the issue. Clients must accept previously unseen values. */\n readonly category: string;\n /** The lifecycle status of the insight. */\n readonly status: AgentInsightStatus;\n /** The number of traces that provide evidence for this insight. */\n readonly trace_count: number;\n /** The time when this insight was created. */\n readonly created_at: Date;\n /** The time when this insight was last updated. */\n readonly updated_at: Date;\n /** The root-cause diagnosis for the issue. */\n readonly description: string;\n /** Additional insight details. Omitted unless details are requested. */\n readonly details?: AgentInsightDetails;\n}\n\nexport function agentInsightDeserializer(item: any): AgentInsight {\n return {\n id: item[\"id\"],\n monitor_id: item[\"monitor_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n title: item[\"title\"],\n severity: item[\"severity\"],\n category: item[\"category\"],\n status: item[\"status\"],\n trace_count: item[\"trace_count\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n description: item[\"description\"],\n details: !item[\"details\"] ? item[\"details\"] : agentInsightDetailsDeserializer(item[\"details\"]),\n };\n}\n\n/** The severity of an agent insight. */\nexport type AgentInsightSeverity = \"high\" | \"medium\" | \"low\";\n\n/** The lifecycle status of an agent insight. */\nexport type AgentInsightStatus = \"active\" | \"resolved\" | \"ignored\";\n\n/** Additional insight details. Omitted unless details are requested. */\nexport interface AgentInsightDetails {\n /** Up to 5 highlighted traces that provide evidence for this insight. */\n highlighted_traces: AgentInsightHighlightedTrace[];\n /** Up to 200 most recent traces linked to this insight as supporting evidence. */\n linked_traces: AgentInsightLinkedTrace[];\n /** The recommended remediation for this insight. */\n recommended_actions: AgentInsightRecommendedAction;\n}\n\nexport function agentInsightDetailsDeserializer(item: any): AgentInsightDetails {\n return {\n highlighted_traces: agentInsightHighlightedTraceArrayDeserializer(item[\"highlighted_traces\"]),\n linked_traces: agentInsightLinkedTraceArrayDeserializer(item[\"linked_traces\"]),\n recommended_actions: agentInsightRecommendedActionDeserializer(item[\"recommended_actions\"]),\n };\n}\n\nexport function agentInsightHighlightedTraceArrayDeserializer(\n result: Array<AgentInsightHighlightedTrace>,\n): any[] {\n return result.map((item) => {\n return agentInsightHighlightedTraceDeserializer(item);\n });\n}\n\n/** A highlighted trace that provides evidence for an agent insight. */\nexport interface AgentInsightHighlightedTrace {\n /** The trace identifier. */\n readonly trace_id: string;\n /** A short summary of the trace. */\n summary: string;\n /** The end-to-end duration of the trace in milliseconds. */\n duration_ms: number;\n /** Aggregate input and output tokens reported across all model inference calls in this trace, including calls to different models. Intended for relative usage comparison, not cost estimation. */\n total_tokens?: number;\n /** The time when the trace was recorded. */\n timestamp: Date;\n}\n\nexport function agentInsightHighlightedTraceDeserializer(item: any): AgentInsightHighlightedTrace {\n return {\n trace_id: item[\"trace_id\"],\n summary: item[\"summary\"],\n duration_ms: item[\"duration_ms\"],\n total_tokens: item[\"total_tokens\"],\n timestamp: new Date(item[\"timestamp\"] * 1000),\n };\n}\n\nexport function agentInsightLinkedTraceArrayDeserializer(\n result: Array<AgentInsightLinkedTrace>,\n): any[] {\n return result.map((item) => {\n return agentInsightLinkedTraceDeserializer(item);\n });\n}\n\n/** A lightweight trace reference linked to an agent insight as supporting evidence. */\nexport interface AgentInsightLinkedTrace {\n /** The trace identifier. */\n readonly trace_id: string;\n /** The time when the trace was recorded. */\n readonly timestamp: Date;\n}\n\nexport function agentInsightLinkedTraceDeserializer(item: any): AgentInsightLinkedTrace {\n return {\n trace_id: item[\"trace_id\"],\n timestamp: new Date(item[\"timestamp\"] * 1000),\n };\n}\n\n/** The recommended remediation for an agent insight. */\nexport interface AgentInsightRecommendedAction {\n /** The single recommended fix for the issue represented by the insight. */\n proposed_fix: AgentInsightProposedFix;\n}\n\nexport function agentInsightRecommendedActionDeserializer(\n item: any,\n): AgentInsightRecommendedAction {\n return {\n proposed_fix: agentInsightProposedFixDeserializer(item[\"proposed_fix\"]),\n };\n}\n\n/** A recommended fix for an agent insight. */\nexport interface AgentInsightProposedFix {\n /** The proposed-fix discriminator. */\n kind: AgentInsightProposedFixKind;\n /** The human-readable remediation guidance. */\n text: string;\n /** The concrete changes. Omitted for a prose-only fix. */\n changes?: AgentInsightProposedFixChange[];\n}\n\nexport function agentInsightProposedFixDeserializer(item: any): AgentInsightProposedFix {\n return {\n kind: item[\"kind\"],\n text: item[\"text\"],\n changes: !item[\"changes\"]\n ? item[\"changes\"]\n : agentInsightProposedFixChangeArrayDeserializer(item[\"changes\"]),\n };\n}\n\n/** The customer-renderable kind of an agent insight's proposed fix. */\nexport type AgentInsightProposedFixKind = \"prose\" | \"code_change\" | \"prompt_change\";\n\n/** A JSON value used in Agent Insights payloads. */\nexport type AgentInsightJsonValue =\n string | number | boolean | null | AgentInsightJsonObject | AgentInsightJsonValue[];\n\n/** A JSON object used in Agent Insights payloads. */\nexport interface AgentInsightJsonObject {\n /** JSON properties keyed by name. */\n [key: string]: AgentInsightJsonValue;\n}\n\nexport function agentInsightProposedFixChangeArrayDeserializer(\n result: Array<AgentInsightProposedFixChange>,\n): any[] {\n return result.map((item) => {\n return agentInsightProposedFixChangeDeserializer(item);\n });\n}\n\n/** A customer-renderable change in a proposed fix. */\nexport interface AgentInsightProposedFixChange {\n /** The source path changed by a code change. */\n path?: string;\n /** The language of the changed source path. */\n language?: string;\n /** The unified diff for the changed source path. */\n diff?: string;\n /** The Prompt surface changed by a Prompt change. */\n surface?: AgentInsightPromptSurface;\n /** The user-visible target within a Prompt surface, when needed. */\n target?: string;\n /** The bounded Prompt value before the change. Present for Prompt changes, including when null. */\n old_value?: AgentInsightJsonValue;\n /** The bounded Prompt value after the change. Present for Prompt changes, including when null. */\n new_value?: AgentInsightJsonValue;\n}\n\nexport function agentInsightProposedFixChangeDeserializer(\n item: any,\n): AgentInsightProposedFixChange {\n return {\n path: item[\"path\"],\n language: item[\"language\"],\n diff: item[\"diff\"],\n surface: item[\"surface\"],\n target: item[\"target\"],\n old_value: item[\"old_value\"],\n new_value: item[\"new_value\"],\n };\n}\n\n/** The Prompt surface changed by a proposed fix. */\nexport type AgentInsightPromptSurface = \"instructions\" | \"tool\";\n\n/** Fields that can be updated on an agent insight. */\nexport interface AgentInsightUpdate {\n /** The lifecycle status to apply to the insight. */\n status?: AgentInsightStatus;\n}\n\nexport function agentInsightUpdateSerializer(item: AgentInsightUpdate): any {\n return { status: item[\"status\"] };\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: EvaluationTargetUnion;\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: evaluationTargetUnionSerializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"],\n };\n}\n\nexport function agentTaxonomyInputDeserializer(item: any): AgentTaxonomyInput {\n return {\n type: item[\"type\"],\n target: evaluationTargetUnionDeserializer(item[\"target\"]),\n riskCategories: item[\"riskCategories\"],\n };\n}\n\n/** Base class for targets with discriminator support. */\nexport interface EvaluationTarget {\n /** The type of target. */\n /** The discriminator possible values: azure_ai_model, azure_ai_agent */\n type: string;\n}\n\nexport function evaluationTargetSerializer(item: EvaluationTarget): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluationTargetDeserializer(item: any): EvaluationTarget {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluationTargetUnion */\nexport type EvaluationTargetUnion = AzureAIModelTarget | AzureAIAgentTarget | EvaluationTarget;\n\nexport function evaluationTargetUnionSerializer(item: EvaluationTargetUnion): any {\n switch (item.type) {\n case \"azure_ai_model\":\n return azureAIModelTargetSerializer(item as AzureAIModelTarget);\n\n case \"azure_ai_agent\":\n return azureAIAgentTargetSerializer(item as AzureAIAgentTarget);\n\n default:\n return evaluationTargetSerializer(item);\n }\n}\n\nexport function evaluationTargetUnionDeserializer(item: any): EvaluationTargetUnion {\n switch (item[\"type\"]) {\n case \"azure_ai_model\":\n return azureAIModelTargetDeserializer(item as AzureAIModelTarget);\n\n case \"azure_ai_agent\":\n return azureAIAgentTargetDeserializer(item as AzureAIAgentTarget);\n\n default:\n return evaluationTargetDeserializer(item);\n }\n}\n\n/** Represents a target specifying an Azure AI model for operations requiring model selection. */\nexport interface AzureAIModelTarget extends EvaluationTarget {\n /** The type of target, always `azure_ai_model`. */\n type: \"azure_ai_model\";\n /** The unique identifier of the Azure AI model. */\n model?: string;\n /** The parameters used to control the sampling behavior of the model during text generation. */\n sampling_params?: ModelSamplingParams;\n}\n\nexport function azureAIModelTargetSerializer(item: AzureAIModelTarget): any {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n sampling_params: !item[\"sampling_params\"]\n ? item[\"sampling_params\"]\n : modelSamplingParamsSerializer(item[\"sampling_params\"]),\n };\n}\n\nexport function azureAIModelTargetDeserializer(item: any): AzureAIModelTarget {\n return {\n type: item[\"type\"],\n model: item[\"model\"],\n sampling_params: !item[\"sampling_params\"]\n ? item[\"sampling_params\"]\n : modelSamplingParamsDeserializer(item[\"sampling_params\"]),\n };\n}\n\n/** Represents a set of parameters used to control the sampling behavior of a language model during text generation. */\nexport interface ModelSamplingParams {\n /** The temperature parameter for sampling. Defaults to 1.0. */\n temperature?: number;\n /** The top-p parameter for nucleus sampling. Defaults to 1.0. */\n top_p?: number;\n /** The random seed for reproducibility. Defaults to 42. */\n seed?: number;\n /** The maximum number of tokens allowed in the completion. */\n max_completion_tokens?: number;\n}\n\nexport function modelSamplingParamsSerializer(item: ModelSamplingParams): any {\n return {\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n seed: item[\"seed\"],\n max_completion_tokens: item[\"max_completion_tokens\"],\n };\n}\n\nexport function modelSamplingParamsDeserializer(item: any): ModelSamplingParams {\n return {\n temperature: item[\"temperature\"],\n top_p: item[\"top_p\"],\n seed: item[\"seed\"],\n max_completion_tokens: item[\"max_completion_tokens\"],\n };\n}\n\n/** Represents a target specifying an Azure AI agent. */\nexport interface AzureAIAgentTarget extends EvaluationTarget {\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 /** The tools available to the target agent during evaluation. */\n tools?: ToolUnion[];\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 tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArraySerializer(item[\"tools\"]),\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 tools: !item[\"tools\"] ? item[\"tools\"] : toolUnionArrayDeserializer(item[\"tools\"]),\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\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\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/** 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 AI 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 /** Evaluation levels this evaluator supports (e.g., `turn`, `conversation`). When omitted on create, the service defaults to `[\"turn\"]`. On update, omitting this field leaves it unchanged; an empty list is rejected. Custom code-based evaluators support only `turn`; custom prompt-based evaluators support exactly one level (`turn` or `conversation`). */\n supported_evaluation_levels?: EvaluationLevel[];\n /** Definition of the evaluator */\n definition: EvaluatorDefinitionUnion;\n /** Provenance artifacts from the generation pipeline. Read-only; present only on evaluator versions created via an EvaluatorGenerationJob. Each artifact resolves to a versioned Foundry Dataset. */\n readonly generation_artifacts?: EvaluatorGenerationArtifacts;\n /** Read-only provenance link back to the EvaluatorGenerationJob that produced this version. Present only on evaluator versions created via the generation pipeline; absent for manually-created versions and unaffected by subsequent `PATCH` calls. */\n readonly generation_job_id?: string;\n /** Categories of warnings surfaced on this generated evaluator version. Present only on versions created via an EvaluatorGenerationJob when the paired job produced non-empty warnings. Absent (treat as no warnings) when the version is not from generation, when the paired job was clean, or when a subsequent `PATCH` to `definition` cleared the paired job's advisories. Follow `generation_job_id` to fetch the detailed warning payloads. */\n readonly warnings?: GenerationWarningType[];\n /** Creator of the evaluator */\n readonly created_by?: string;\n /** Creation date/time of the evaluator */\n readonly created_at?: string;\n /** Last modified date/time of the evaluator */\n readonly modified_at?: 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 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\"],\n supported_evaluation_levels: item[\"supported_evaluation_levels\"],\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\"],\n supported_evaluation_levels: item[\"supported_evaluation_levels\"],\n definition: evaluatorDefinitionUnionDeserializer(item[\"definition\"]),\n generation_artifacts: !item[\"generation_artifacts\"]\n ? item[\"generation_artifacts\"]\n : evaluatorGenerationArtifactsDeserializer(item[\"generation_artifacts\"]),\n generation_job_id: item[\"generation_job_id\"],\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : item[\"warnings\"].map((p: any) => {\n return p;\n }),\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\n/** The category of the evaluator */\nexport type EvaluatorCategory = \"quality\" | \"safety\" | \"agents\";\n\n/** The level at which evaluation is performed. */\nexport type EvaluationLevel = \"turn\" | \"conversation\";\n\n/** Base evaluator configuration with discriminator */\nexport interface EvaluatorDefinition {\n /** The type of evaluator definition */\n /** The discriminator possible values: code, prompt, rubric, endpoint */\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?: Record<string, unknown>;\n /** The JSON schema (Draft 2020-12) for the evaluator's input data. This includes parameters like type, properties, required. */\n data_schema?: Record<string, 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 | RubricBasedEvaluatorDefinition\n | EndpointBasedEvaluatorDefinition\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 case \"rubric\":\n return rubricBasedEvaluatorDefinitionSerializer(item as RubricBasedEvaluatorDefinition);\n\n case \"endpoint\":\n return endpointBasedEvaluatorDefinitionSerializer(item as EndpointBasedEvaluatorDefinition);\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 case \"rubric\":\n return rubricBasedEvaluatorDefinitionDeserializer(item as RubricBasedEvaluatorDefinition);\n\n case \"endpoint\":\n return endpointBasedEvaluatorDefinitionDeserializer(item as EndpointBasedEvaluatorDefinition);\n\n default:\n return evaluatorDefinitionDeserializer(item);\n }\n}\n\n/** The type of evaluator definition */\nexport type EvaluatorDefinitionType =\n \"prompt\" | \"code\" | \"prompt_and_code\" | \"service\" | \"openai_graders\" | \"endpoint\" | \"rubric\";\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 /** Default pass/fail threshold for this metric. */\n threshold?: 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 threshold: item[\"threshold\"],\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 threshold: item[\"threshold\"],\n is_primary: item[\"is_primary\"],\n };\n}\n\n/** The type of the evaluator */\nexport type EvaluatorMetricType = \"ordinal\" | \"continuous\" | \"boolean\";\n\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 /** The type discriminator, always 'code'. */\n type: \"code\";\n /** Inline code text for the evaluator */\n code_text?: string;\n /** The entry point Python file name for the uploaded evaluator code (e.g. 'answer_length_evaluator.py') */\n entry_point?: string;\n /** The container image tag to use for evaluator code execution */\n image_tag?: string;\n /** The blob URI for the evaluator storage */\n blob_uri?: 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 entry_point: item[\"entry_point\"],\n image_tag: item[\"image_tag\"],\n blob_uri: item[\"blob_uri\"],\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 entry_point: item[\"entry_point\"],\n image_tag: item[\"image_tag\"],\n blob_uri: item[\"blob_uri\"],\n };\n}\n\n/** Prompt-based evaluator */\nexport interface PromptBasedEvaluatorDefinition extends EvaluatorDefinition {\n /** The type discriminator, always 'prompt'. */\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/** Rubric-based evaluator definition \u2014 stores dimensions produced by the generate API. Used for both quality and safety evaluators. */\nexport interface RubricBasedEvaluatorDefinition extends EvaluatorDefinition {\n /**\n * The evaluator definition type. Always `rubric` for an evaluator that scores against rubric\n * dimensions.\n */\n type: \"rubric\";\n /** The set of dimensions \u2014 the scoring blueprint used by the LLM judge. Quality evaluators include a non-editable residual dimension with id 'general_quality' (always_applicable: true); safety evaluators include 'general_policy_compliance'. Both use the same Dimension structure. */\n dimensions: Dimension[];\n /** Pass/fail threshold for the aggregate rubric score, on the same normalized 0.0-1.0 scale as the emitted `score`. When the runtime weighted average meets or exceeds this value, the result is `pass`. Defaults to 0.5 (equivalent to a raw 1-5 weighted average of 3.0). The 'any dimension scored 1 \u2192 fail' rule still applies regardless of this threshold. */\n pass_threshold?: number;\n}\n\nexport function rubricBasedEvaluatorDefinitionSerializer(\n item: RubricBasedEvaluatorDefinition,\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 dimensions: dimensionArraySerializer(item[\"dimensions\"]),\n pass_threshold: item[\"pass_threshold\"],\n };\n}\n\nexport function rubricBasedEvaluatorDefinitionDeserializer(\n item: any,\n): RubricBasedEvaluatorDefinition {\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 dimensions: dimensionArrayDeserializer(item[\"dimensions\"]),\n pass_threshold: item[\"pass_threshold\"],\n };\n}\n\nexport function dimensionArraySerializer(result: Array<Dimension>): any[] {\n return result.map((item) => {\n return dimensionSerializer(item);\n });\n}\n\nexport function dimensionArrayDeserializer(result: Array<Dimension>): any[] {\n return result.map((item) => {\n return dimensionDeserializer(item);\n });\n}\n\n/** A single dimension \u2014 one independent, measurable quality dimension within a rubric evaluator's scoring blueprint. */\nexport interface Dimension {\n /** Stable identifier for this dimension (snake_case, e.g., `correct_resolution`). Required. Provided by the user when manually creating a rubric evaluator or during human-in-the-loop review of a generated set; the generation pipeline produces an initial value the user can edit. Editable when saving new versions. */\n id: string;\n /** What this dimension measures (e.g., 'Correctly identifies the user's reservation intent and pursues the appropriate workflow'). */\n description: string;\n /** Relative weight of this dimension (1-10). The generation pipeline assigns exactly one dimension weight 8-10; all others use 1-6. User edits are not constrained by this heuristic. */\n weight: number;\n /** When true, the LLM judge always scores this dimension regardless of relevance (skips applicability assessment). The service-generated general quality/policy dimension has this set to true and is non-editable. Users may set this on their own custom dimensions. The service defaults to `false` if a value is not specified by the caller. */\n always_applicable?: boolean;\n}\n\nexport function dimensionSerializer(item: Dimension): any {\n return {\n id: item[\"id\"],\n description: item[\"description\"],\n weight: item[\"weight\"],\n always_applicable: item[\"always_applicable\"],\n };\n}\n\nexport function dimensionDeserializer(item: any): Dimension {\n return {\n id: item[\"id\"],\n description: item[\"description\"],\n weight: item[\"weight\"],\n always_applicable: item[\"always_applicable\"],\n };\n}\n\n/** Endpoint-based evaluator definition. The customer owns and hosts an HTTP endpoint that implements the evaluation contract. The evaluator references a Project Connection by name; the connection stores the endpoint URL and credentials (API Key or Entra ID). At execution time, the service resolves the connection to obtain the endpoint URL and authentication details, then calls the endpoint for each evaluation row. */\nexport interface EndpointBasedEvaluatorDefinition extends EvaluatorDefinition {\n /** The type of the endpoint-based evaluator. Always `endpoint`. */\n type: \"endpoint\";\n /** Name of the Project Connection that stores the endpoint URL and credentials. The connection must exist on the project and have a non-empty target URL. Supported auth types: ApiKey (sends `api-key` header) and AAD/Entra ID (acquires a bearer token via the project's Managed Identity). */\n connection_name: string;\n}\n\nexport function endpointBasedEvaluatorDefinitionSerializer(\n item: EndpointBasedEvaluatorDefinition,\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 connection_name: item[\"connection_name\"],\n };\n}\n\nexport function endpointBasedEvaluatorDefinitionDeserializer(\n item: any,\n): EndpointBasedEvaluatorDefinition {\n return {\n type: item[\"type\"],\n init_parameters: !item[\"init_parameters\"]\n ? item[\"init_parameters\"]\n : Object.fromEntries(\n Object.entries(item[\"init_parameters\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n data_schema: !item[\"data_schema\"]\n ? item[\"data_schema\"]\n : Object.fromEntries(\n Object.entries(item[\"data_schema\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n metrics: !item[\"metrics\"]\n ? item[\"metrics\"]\n : evaluatorMetricRecordDeserializer(item[\"metrics\"]),\n connection_name: item[\"connection_name\"],\n };\n}\n\n/** Service-managed provenance artifacts produced by an evaluator generation job. Present only on EvaluatorVersion resources created via the generation pipeline. The combined-JSONL Foundry Dataset is read-only and resolves to a versioned dataset in a service-reserved namespace. */\nexport interface EvaluatorGenerationArtifacts {\n /** Reference to the single Foundry Dataset (one combined JSONL file, version-aligned to `EvaluatorVersion.version`) holding all artifacts produced by the generation pipeline. Each row in the JSONL carries a `kind` field discriminating its content (e.g. `spec`, `tools`, `context`). */\n dataset: DatasetReference;\n /** The kinds of rows present in `dataset`. Always contains `\"spec\"` (the generated evaluation specification, a Markdown document describing what the evaluator measures). May additionally contain `\"tools\"` (when the generation pipeline produced or inferred OpenAI tool schemas) and/or `\"context\"` (when supplementary materials such as file uploads or trace samples were used during generation). */\n kinds: string[];\n}\n\nexport function evaluatorGenerationArtifactsDeserializer(item: any): EvaluatorGenerationArtifacts {\n return {\n dataset: datasetReferenceDeserializer(item[\"dataset\"]),\n kinds: item[\"kinds\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Reference to a versioned Foundry Dataset. */\nexport interface DatasetReference {\n /** Dataset name. */\n name: string;\n /** Dataset version. */\n version: string;\n}\n\nexport function datasetReferenceDeserializer(item: any): DatasetReference {\n return {\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Category of a warning surfaced on a generated evaluator version. Extensible so new warning categories (e.g., safety, output quality) can be introduced without a breaking change. */\nexport type GenerationWarningType = \"input_quality\";\n\n/** Request body for getting evaluator credentials */\nexport interface EvaluatorCredentialRequest {\n /** The blob URI for the evaluator storage. Example: `https://account.blob.core.windows.net:443/container` */\n blob_uri: string;\n}\n\nexport function evaluatorCredentialRequestSerializer(item: EvaluatorCredentialRequest): any {\n return { blob_uri: item[\"blob_uri\"] };\n}\n\n/** Evaluator Generation Job resource \u2014 a long-running job that generates rubric-based evaluator definitions from source materials. On success, the result is the persisted EvaluatorVersion. */\nexport interface EvaluatorGenerationJob {\n /** Server-assigned unique identifier. */\n readonly id?: string;\n /** Caller-supplied inputs. */\n inputs?: EvaluatorGenerationInputs;\n /** Result produced on success. */\n readonly result?: EvaluatorVersion;\n /** Current lifecycle status. */\n readonly status?: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time (seconds since January 1, 1970). */\n readonly created_at?: Date;\n /** The timestamp when the job finished, represented in Unix time (seconds since January 1, 1970). */\n readonly finished_at?: Date;\n /** Token consumption summary. Populated when the job reaches a terminal state. */\n readonly usage?: EvaluatorGenerationTokenUsage;\n /** Non-fatal input-quality advisories produced by the generation pipeline. Read-only; service-generated; populated only on terminal jobs when advisories fired. Omitted when generation was clean. Cleared when a subsequent `PATCH` to the paired `EvaluatorVersion.definition` invalidates the advisories. */\n readonly input_quality_warnings?: RubricGenerationInputQualityWarning[];\n}\n\nexport function evaluatorGenerationJobSerializer(item: EvaluatorGenerationJob): any {\n if (!item[\"inputs\"]) {\n return {};\n }\n return evaluatorGenerationInputsSerializer(item[\"inputs\"]);\n}\n\nexport function evaluatorGenerationJobDeserializer(item: any): EvaluatorGenerationJob {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"]\n ? item[\"inputs\"]\n : evaluatorGenerationInputsDeserializer(item[\"inputs\"]),\n result: !item[\"result\"] ? item[\"result\"] : evaluatorVersionDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : errorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n finished_at: !item[\"finished_at\"] ? item[\"finished_at\"] : new Date(item[\"finished_at\"] * 1000),\n usage: !item[\"usage\"]\n ? item[\"usage\"]\n : evaluatorGenerationTokenUsageDeserializer(item[\"usage\"]),\n input_quality_warnings: !item[\"input_quality_warnings\"]\n ? item[\"input_quality_warnings\"]\n : rubricGenerationInputQualityWarningArrayDeserializer(item[\"input_quality_warnings\"]),\n };\n}\n\n/** Caller-supplied inputs for an evaluator generation job. */\nexport interface EvaluatorGenerationInputs {\n /** Source materials for generation \u2014 agent descriptions, prompts, traces, or datasets. Each entry is an `EvaluatorGenerationJobSource` variant discriminated by `type`. */\n sources: EvaluatorGenerationJobSourceUnion[];\n /** The LLM model to use for rubric generation (e.g., 'gpt-4o'). Required \u2014 users must provide their own model rather than relying on service-owned capacity. */\n model: string;\n /** The evaluator name (immutable identifier). 1-256 characters; allowed characters are ASCII letters, digits, underscore (`_`), period (`.`), tilde (`~`), and hyphen (`-`). The prefix `builtin.` is reserved for system-managed evaluators and is rejected by the service. If an evaluator with this name already exists in the project (and is rubric-subtype), the service creates a new version under the same name and uses the prior version's `dimensions` as context for incremental improvement (foundation of the post-//build adaptive loop). Old versions remain queryable via `get_version(name, version)`. If the existing evaluator is not a rubric-subtype evaluator (built-in, prompt-based, code-based), the request is rejected with `400 Bad Request`. */\n evaluator_name: string;\n /** Optional human-friendly display name for the resulting evaluator. Surfaced as `EvaluatorVersion.display_name` on the persisted evaluator. When omitted, the service uses `evaluator_name` as the display name. The `evaluator_` prefix disambiguates this from the immutable `evaluator_name` identifier. */\n evaluator_display_name?: string;\n /** Optional human-friendly description for the resulting evaluator. Surfaced as `EvaluatorVersion.description` on the persisted evaluator. Typically collected from the UI alongside `evaluator_display_name`. The `evaluator_` prefix disambiguates this from any other description fields on related models. */\n evaluator_description?: string;\n}\n\nexport function evaluatorGenerationInputsSerializer(item: EvaluatorGenerationInputs): any {\n return {\n sources: evaluatorGenerationJobSourceUnionArraySerializer(item[\"sources\"]),\n model: item[\"model\"],\n evaluator_name: item[\"evaluator_name\"],\n evaluator_display_name: item[\"evaluator_display_name\"],\n evaluator_description: item[\"evaluator_description\"],\n };\n}\n\nexport function evaluatorGenerationInputsDeserializer(item: any): EvaluatorGenerationInputs {\n return {\n sources: evaluatorGenerationJobSourceUnionArrayDeserializer(item[\"sources\"]),\n model: item[\"model\"],\n evaluator_name: item[\"evaluator_name\"],\n evaluator_display_name: item[\"evaluator_display_name\"],\n evaluator_description: item[\"evaluator_description\"],\n };\n}\n\nexport function evaluatorGenerationJobSourceUnionArraySerializer(\n result: Array<EvaluatorGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobSourceUnionSerializer(item);\n });\n}\n\nexport function evaluatorGenerationJobSourceUnionArrayDeserializer(\n result: Array<EvaluatorGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobSourceUnionDeserializer(item);\n });\n}\n\n/** The base source model for evaluator generation jobs. Polymorphic over `type`. */\nexport interface EvaluatorGenerationJobSource {\n /** The type of source. */\n /** The discriminator possible values: prompt, agent, traces, dataset */\n type: EvaluatorGenerationJobSourceType;\n}\n\nexport function evaluatorGenerationJobSourceSerializer(item: EvaluatorGenerationJobSource): any {\n return { type: item[\"type\"] };\n}\n\nexport function evaluatorGenerationJobSourceDeserializer(item: any): EvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for EvaluatorGenerationJobSourceUnion */\nexport type EvaluatorGenerationJobSourceUnion =\n | PromptEvaluatorGenerationJobSource\n | AgentEvaluatorGenerationJobSource\n | TracesEvaluatorGenerationJobSource\n | DatasetEvaluatorGenerationJobSource\n | EvaluatorGenerationJobSource;\n\nexport function evaluatorGenerationJobSourceUnionSerializer(\n item: EvaluatorGenerationJobSourceUnion,\n): any {\n switch (item.type) {\n case \"prompt\":\n return promptEvaluatorGenerationJobSourceSerializer(\n item as PromptEvaluatorGenerationJobSource,\n );\n\n case \"agent\":\n return agentEvaluatorGenerationJobSourceSerializer(item as AgentEvaluatorGenerationJobSource);\n\n case \"traces\":\n return tracesEvaluatorGenerationJobSourceSerializer(\n item as TracesEvaluatorGenerationJobSource,\n );\n\n case \"dataset\":\n return datasetEvaluatorGenerationJobSourceSerializer(\n item as DatasetEvaluatorGenerationJobSource,\n );\n\n default:\n return evaluatorGenerationJobSourceSerializer(item);\n }\n}\n\nexport function evaluatorGenerationJobSourceUnionDeserializer(\n item: any,\n): EvaluatorGenerationJobSourceUnion {\n switch (item[\"type\"]) {\n case \"prompt\":\n return promptEvaluatorGenerationJobSourceDeserializer(\n item as PromptEvaluatorGenerationJobSource,\n );\n\n case \"agent\":\n return agentEvaluatorGenerationJobSourceDeserializer(\n item as AgentEvaluatorGenerationJobSource,\n );\n\n case \"traces\":\n return tracesEvaluatorGenerationJobSourceDeserializer(\n item as TracesEvaluatorGenerationJobSource,\n );\n\n case \"dataset\":\n return datasetEvaluatorGenerationJobSourceDeserializer(\n item as DatasetEvaluatorGenerationJobSource,\n );\n\n default:\n return evaluatorGenerationJobSourceDeserializer(item);\n }\n}\n\n/** The supported source types for evaluator generation jobs. */\nexport type EvaluatorGenerationJobSourceType = \"prompt\" | \"agent\" | \"traces\" | \"dataset\";\n\n/** Prompt source for evaluator generation jobs \u2014 inline text provided by the user. */\nexport interface PromptEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Prompt. */\n type: \"prompt\";\n /** Inline prompt text (e.g., agent description, policy text, supplementary context). */\n prompt: string;\n}\n\nexport function promptEvaluatorGenerationJobSourceSerializer(\n item: PromptEvaluatorGenerationJobSource,\n): any {\n return { type: item[\"type\"], description: item[\"description\"], prompt: item[\"prompt\"] };\n}\n\nexport function promptEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): PromptEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n prompt: item[\"prompt\"],\n };\n}\n\n/** Agent source for evaluator generation jobs \u2014 references an agent to fetch instructions and metadata from. */\nexport interface AgentEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Agent. */\n type: \"agent\";\n /** The agent name to fetch instructions from. */\n agent_name: string;\n /** The agent version. If not specified, the latest version is used. */\n agent_version?: string;\n}\n\nexport function agentEvaluatorGenerationJobSourceSerializer(\n item: AgentEvaluatorGenerationJobSource,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\nexport function agentEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): AgentEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Traces source for evaluator generation jobs \u2014 conversation traces from Application Insights. */\nexport interface TracesEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Traces. */\n type: \"traces\";\n /** The unique agent ID used to filter traces. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_id?: string;\n /** The agent name to fetch traces for. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_name?: string;\n /** The agent version. If not specified, traces for ALL versions of the agent are included within the time window. */\n agent_version?: string;\n /** Start of the time window (Unix timestamp in seconds) for fetching traces. */\n start_time?: Date;\n /** End of the time window (Unix timestamp in seconds). Defaults to current time. */\n end_time?: Date;\n}\n\nexport function tracesEvaluatorGenerationJobSourceSerializer(\n item: TracesEvaluatorGenerationJobSource,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: !item[\"start_time\"] ? item[\"start_time\"] : item[\"start_time\"].getTime() / 1000 || 0,\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : item[\"end_time\"].getTime() / 1000 || 0,\n };\n}\n\nexport function tracesEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): TracesEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: !item[\"start_time\"] ? item[\"start_time\"] : new Date(item[\"start_time\"] * 1000),\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : new Date(item[\"end_time\"] * 1000),\n };\n}\n\n/** Dataset source for evaluator generation jobs \u2014 reference to a dataset. */\nexport interface DatasetEvaluatorGenerationJobSource extends EvaluatorGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Dataset. */\n type: \"dataset\";\n /** The name of the dataset. */\n name: string;\n /** The version of the dataset. If not specified, the latest version is used. */\n version?: string;\n}\n\nexport function datasetEvaluatorGenerationJobSourceSerializer(\n item: DatasetEvaluatorGenerationJobSource,\n): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\nexport function datasetEvaluatorGenerationJobSourceDeserializer(\n item: any,\n): DatasetEvaluatorGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentInsightMonitorListItem {\n /** The requested list of items. */\n data: AgentInsightMonitorListItem[];\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 _agentsPagedResultAgentInsightMonitorListItemDeserializer(\n item: any,\n): _AgentsPagedResultAgentInsightMonitorListItem {\n return {\n data: agentInsightMonitorListItemArrayDeserializer(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 agentInsightMonitorListItemArrayDeserializer(\n result: Array<AgentInsightMonitorListItem>,\n): any[] {\n return result.map((item) => {\n return agentInsightMonitorListItemDeserializer(item);\n });\n}\n\n/** An Agent Insights monitor summary returned by list operations. */\nexport interface AgentInsightMonitorListItem {\n /** The monitor identifier. */\n readonly id: string;\n /** The agent this monitor analyzes. There can be only one monitor per agent. */\n readonly agent_name: string;\n /** Whether scheduled insight generation is armed for the monitor. */\n readonly enabled: boolean;\n /** Interval between scheduled insight runs, in hours. */\n readonly run_interval_hours: number;\n /** The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. */\n readonly model_deployment_name: string;\n /** The next time a scheduled agent insight run will start. Omitted when scheduled generation is disabled. */\n readonly next_scheduled_run_at?: Date;\n /** Estimated cost accumulated by Agent Insights for this monitor. */\n readonly estimated_cost?: AgentInsightEstimatedCost;\n /** Why the system suspended scheduled generation. Null when the monitor is not suspended. */\n readonly suspension: AgentInsightSuspension | null;\n /** The time when this monitor was last updated. */\n readonly updated_at: Date;\n}\n\nexport function agentInsightMonitorListItemDeserializer(item: any): AgentInsightMonitorListItem {\n return {\n id: item[\"id\"],\n agent_name: item[\"agent_name\"],\n enabled: item[\"enabled\"],\n run_interval_hours: item[\"run_interval_hours\"],\n model_deployment_name: item[\"model_deployment_name\"],\n next_scheduled_run_at: !item[\"next_scheduled_run_at\"]\n ? item[\"next_scheduled_run_at\"]\n : new Date(item[\"next_scheduled_run_at\"] * 1000),\n estimated_cost: !item[\"estimated_cost\"]\n ? item[\"estimated_cost\"]\n : agentInsightEstimatedCostDeserializer(item[\"estimated_cost\"]),\n suspension: !item[\"suspension\"]\n ? item[\"suspension\"]\n : agentInsightSuspensionDeserializer(item[\"suspension\"]),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n };\n}\n\n/** Estimated Agent Insights cost. */\nexport interface AgentInsightEstimatedCost {\n /** Estimated cost amount. */\n amount: number;\n /** Currency for the estimated cost amount. Agent Insights estimates are reported in US dollars. */\n currency: \"USD\";\n}\n\nexport function agentInsightEstimatedCostDeserializer(item: any): AgentInsightEstimatedCost {\n return {\n amount: item[\"amount\"],\n currency: item[\"currency\"],\n };\n}\n\n/** Structured reason why scheduled generation is suspended for a monitor. */\nexport interface AgentInsightSuspension {\n /** Stable, machine-readable suspension category. */\n code: string;\n /** Human-readable description of the suspension. */\n message: string;\n /** The time when the suspension occurred. */\n occurred_at: Date;\n /** Additional reason-specific suspension details. */\n details?: AgentInsightJsonObject;\n}\n\nexport function agentInsightSuspensionDeserializer(item: any): AgentInsightSuspension {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n occurred_at: new Date(item[\"occurred_at\"] * 1000),\n details: !item[\"details\"]\n ? item[\"details\"]\n : Object.fromEntries(Object.entries(item[\"details\"]).map(([k, p]: [string, any]) => [k, p])),\n };\n}\n\n/** Fields accepted when creating an Agent Insights monitor for an agent. */\nexport interface AgentInsightMonitorCreate {\n /** The agent this monitor should analyze. */\n agent_name: string;\n /** Whether scheduled insight generation should be armed. Defaults to false. */\n enabled?: boolean;\n /** Interval between scheduled insight runs, in hours. Defaults to 6. */\n run_interval_hours?: number;\n /** The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. */\n model_deployment_name: string;\n}\n\nexport function agentInsightMonitorCreateSerializer(item: AgentInsightMonitorCreate): any {\n return {\n agent_name: item[\"agent_name\"],\n enabled: item[\"enabled\"],\n run_interval_hours: item[\"run_interval_hours\"],\n model_deployment_name: item[\"model_deployment_name\"],\n };\n}\n\n/** A per-agent Agent Insights monitor that owns configuration, runs, and discovered insights. */\nexport interface AgentInsightMonitor {\n /** The monitor identifier. */\n readonly id: string;\n /** The agent this monitor analyzes. There can be only one monitor per agent. */\n readonly agent_name: string;\n /** Whether scheduled insight generation is armed for the monitor. */\n readonly enabled: boolean;\n /** Interval between scheduled insight runs, in hours. */\n readonly run_interval_hours: number;\n /** The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. */\n readonly model_deployment_name: string;\n /** The next time a scheduled agent insight run will start. Omitted when scheduled generation is disabled. */\n readonly next_scheduled_run_at?: Date;\n /** Estimated cost accumulated by Agent Insights for this monitor. */\n readonly estimated_cost?: AgentInsightEstimatedCost;\n /** Why the system suspended scheduled generation. Null when the monitor is not suspended. */\n readonly suspension: AgentInsightSuspension | null;\n /** The effective overview, or null before an overview is available. */\n readonly overview: AgentInsightsOverview | null;\n /** The time when this monitor was last updated. */\n readonly updated_at: Date;\n}\n\nexport function agentInsightMonitorDeserializer(item: any): AgentInsightMonitor {\n return {\n id: item[\"id\"],\n agent_name: item[\"agent_name\"],\n enabled: item[\"enabled\"],\n run_interval_hours: item[\"run_interval_hours\"],\n model_deployment_name: item[\"model_deployment_name\"],\n next_scheduled_run_at: !item[\"next_scheduled_run_at\"]\n ? item[\"next_scheduled_run_at\"]\n : new Date(item[\"next_scheduled_run_at\"] * 1000),\n estimated_cost: !item[\"estimated_cost\"]\n ? item[\"estimated_cost\"]\n : agentInsightEstimatedCostDeserializer(item[\"estimated_cost\"]),\n suspension: !item[\"suspension\"]\n ? item[\"suspension\"]\n : agentInsightSuspensionDeserializer(item[\"suspension\"]),\n overview: !item[\"overview\"]\n ? item[\"overview\"]\n : agentInsightsOverviewDeserializer(item[\"overview\"]),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n };\n}\n\n/** The effective overview for an Agent Insights monitor. */\nexport interface AgentInsightsOverview {\n /** The overview content. */\n content: string;\n /** Where the effective overview came from. */\n source: AgentInsightOverviewSource;\n /** The time when this overview was last updated. */\n updated_at: Date;\n}\n\nexport function agentInsightsOverviewDeserializer(item: any): AgentInsightsOverview {\n return {\n content: item[\"content\"],\n source: item[\"source\"],\n updated_at: new Date(item[\"updated_at\"] * 1000),\n };\n}\n\n/** Identifies where an Agent Insights overview came from. */\nexport type AgentInsightOverviewSource = \"generated\" | \"user_override\";\n\n/** Fields that can be updated on an Agent Insights monitor. */\nexport interface AgentInsightMonitorUpdate {\n /** Whether scheduled insight generation is armed for the monitor. */\n enabled?: boolean;\n /** Interval between scheduled insight runs, in hours. */\n run_interval_hours?: number;\n /** The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. */\n model_deployment_name?: string;\n /**\n * Sets the effective user overview, or clears it when explicitly set to null. Omission leaves\n * the overview unchanged. This field cannot be combined with other monitor updates.\n */\n overview_override?: AgentInsightsOverviewOverride;\n}\n\nexport function agentInsightMonitorUpdateSerializer(item: AgentInsightMonitorUpdate): any {\n return {\n enabled: item[\"enabled\"],\n run_interval_hours: item[\"run_interval_hours\"],\n model_deployment_name: item[\"model_deployment_name\"],\n overview_override: !item[\"overview_override\"]\n ? item[\"overview_override\"]\n : agentInsightsOverviewOverrideSerializer(item[\"overview_override\"]),\n };\n}\n\n/** A user-provided overview that becomes effective immediately and seeds the next generation. */\nexport interface AgentInsightsOverviewOverride {\n /** The nonblank overview content, limited to 64 KiB when encoded as UTF-8. */\n content: string;\n}\n\nexport function agentInsightsOverviewOverrideSerializer(item: AgentInsightsOverviewOverride): any {\n return { content: item[\"content\"] };\n}\n\n/** Inputs used when creating an agent insight run. */\nexport interface AgentInsightRunCreate {\n /** Optional finite positive number of hours of trace history to analyze, up to 2,160. Defaults to 168. */\n lookback_hours?: number;\n}\n\nexport function agentInsightRunCreateSerializer(item: AgentInsightRunCreate): any {\n return { lookback_hours: item[\"lookback_hours\"] };\n}\n\nexport function agentInsightRunCreateDeserializer(item: any): AgentInsightRunCreate {\n return {\n lookback_hours: item[\"lookback_hours\"],\n };\n}\n\n/** A long-running run that analyzes one agent's traces and updates that agent's insights. */\nexport interface AgentInsightRun {\n /** Server-assigned unique identifier. */\n readonly id: string;\n /** Caller-supplied inputs. */\n inputs?: AgentInsightRunCreate;\n /** Result produced on success. */\n readonly result?: AgentInsightRunResult;\n /** Current lifecycle status. */\n readonly status: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The Agent Insights monitor this run belongs to. */\n readonly monitor_id: string;\n /** The agent whose traces are analyzed by this run. */\n readonly agent_name: string;\n /** The trigger that started the run. */\n readonly trigger: AgentInsightRunTrigger;\n /** The time when this run was created. */\n readonly created_at: Date;\n /** The time when this run was last updated. */\n readonly updated_at: Date;\n /** The start of the trace window analyzed by this run. */\n readonly window_start: Date;\n /** The end of the trace window analyzed by this run. */\n readonly window_end: Date;\n /** The time when this run started processing. */\n readonly started_at?: Date;\n /** The time when this run reached a terminal status. */\n readonly completed_at?: Date;\n /** The model deployment used to analyze traces for this run. */\n readonly model_deployment_name: string;\n}\n\nexport function agentInsightRunDeserializer(item: any): AgentInsightRun {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : agentInsightRunCreateDeserializer(item[\"inputs\"]),\n result: !item[\"result\"] ? item[\"result\"] : agentInsightRunResultDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : errorDeserializer(item[\"error\"]),\n monitor_id: item[\"monitor_id\"],\n agent_name: item[\"agent_name\"],\n trigger: item[\"trigger\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n window_start: new Date(item[\"window_start\"] * 1000),\n window_end: new Date(item[\"window_end\"] * 1000),\n started_at: !item[\"started_at\"] ? item[\"started_at\"] : new Date(item[\"started_at\"] * 1000),\n completed_at: !item[\"completed_at\"]\n ? item[\"completed_at\"]\n : new Date(item[\"completed_at\"] * 1000),\n model_deployment_name: item[\"model_deployment_name\"],\n };\n}\n\n/** Result statistics produced when an agent insight run succeeds. */\nexport interface AgentInsightRunResult {\n /** The number of traces in the analyzed time window. */\n traces_in_window: number;\n /** The number of traces analyzed by the run. */\n traces_analyzed: number;\n /** The number of insights created by the run. */\n insights_created: number;\n /** The number of insights updated by the run. */\n insights_updated: number;\n /** The number of insights reopened by the run. */\n insights_reopened: number;\n /** Token usage for the run's insight-generation analysis. */\n token_usage: AgentInsightTokenUsage;\n}\n\nexport function agentInsightRunResultDeserializer(item: any): AgentInsightRunResult {\n return {\n traces_in_window: item[\"traces_in_window\"],\n traces_analyzed: item[\"traces_analyzed\"],\n insights_created: item[\"insights_created\"],\n insights_updated: item[\"insights_updated\"],\n insights_reopened: item[\"insights_reopened\"],\n token_usage: agentInsightTokenUsageDeserializer(item[\"token_usage\"]),\n };\n}\n\n/** Token usage for an Agent Insights run. */\nexport interface AgentInsightTokenUsage {\n /** The number of input tokens used by the run. */\n input_tokens: number;\n /** The number of output tokens used by the run. */\n output_tokens: number;\n /** The number of input tokens served from cache. */\n cached_tokens?: number;\n /** The total number of tokens used by the run. */\n total_tokens: number;\n}\n\nexport function agentInsightTokenUsageDeserializer(item: any): AgentInsightTokenUsage {\n return {\n input_tokens: item[\"input_tokens\"],\n output_tokens: item[\"output_tokens\"],\n cached_tokens: item[\"cached_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** Extensible status values shared by Foundry jobs. */\nexport type JobStatus = \"queued\" | \"in_progress\" | \"succeeded\" | \"failed\" | \"cancelled\";\n\n/** Token consumption summary for an evaluator generation job. Populated when the job reaches a terminal state. */\nexport interface EvaluatorGenerationTokenUsage {\n /** Number of input (prompt) tokens consumed. */\n input_tokens: number;\n /** Number of output (completion) tokens generated. */\n output_tokens: number;\n /** Total tokens consumed (input + output). */\n total_tokens: number;\n}\n\nexport function evaluatorGenerationTokenUsageDeserializer(\n item: any,\n): EvaluatorGenerationTokenUsage {\n return {\n input_tokens: item[\"input_tokens\"],\n output_tokens: item[\"output_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\nexport function rubricGenerationInputQualityWarningArrayDeserializer(\n result: Array<RubricGenerationInputQualityWarning>,\n): any[] {\n return result.map((item) => {\n return rubricGenerationInputQualityWarningDeserializer(item);\n });\n}\n\n/** A non-fatal advisory produced during rubric evaluator generation when resolved inputs are technically valid but likely too weak to produce a high-quality rubric. Read-only; service-generated. Persisted with the terminal EvaluatorGenerationJob. */\nexport interface RubricGenerationInputQualityWarning {\n /** Stable searchable machine-readable warning code. */\n code: RubricGenerationInputQualityWarningCode;\n /** Advisory severity. Initial values: `warning`. */\n severity: RubricGenerationInputQualityWarningSeverity;\n /** Human-readable message suitable for direct SDK/CLI/UI display. Must not include raw prompt, instruction, dataset, or trace text. */\n message: string;\n /** Which source category the warning applies to. `aggregate` is used only for cross-source warnings. */\n source: RubricGenerationInputQualityWarningSource;\n /** Zero-based index into `EvaluatorGenerationJob.inputs.sources` when the warning applies to a specific source. Omitted for aggregate warnings and for warnings not tied to one source. */\n source_index?: number;\n}\n\nexport function rubricGenerationInputQualityWarningDeserializer(\n item: any,\n): RubricGenerationInputQualityWarning {\n return {\n code: item[\"code\"],\n severity: item[\"severity\"],\n message: item[\"message\"],\n source: item[\"source\"],\n source_index: item[\"source_index\"],\n };\n}\n\n/** Stable searchable machine-readable warning code for a rubric-generation input-quality warning. Values are `snake_case`; clients must tolerate additional service-defined identifiers. */\nexport type RubricGenerationInputQualityWarningCode =\n | \"empty_prompt\"\n | \"short_prompt\"\n | \"empty_agent_instructions\"\n | \"short_agent_instructions\"\n | \"empty_dataset_content\"\n | \"short_dataset_content\"\n | \"low_trace_count\"\n | \"insufficient_total_input\";\n\n/** Advisory severity for a rubric-generation input-quality warning. Initial value set: `warning`. */\nexport type RubricGenerationInputQualityWarningSeverity = \"warning\";\n\n/** Warning source attribution for a rubric-generation input-quality warning. Per-source values (`prompt`, `agent`, `dataset`) match the source category visible to the generation runtime. `aggregate` is a synthetic value used only for warnings computed across successfully resolved sources. `traces` is not exposed because trace sources resolve into dataset content upstream. */\nexport type RubricGenerationInputQualityWarningSource =\n \"prompt\" | \"agent\" | \"dataset\" | \"aggregate\";\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultEvaluatorGenerationJob {\n /** The requested list of items. */\n data: EvaluatorGenerationJob[];\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 _agentsPagedResultEvaluatorGenerationJobDeserializer(\n item: any,\n): _AgentsPagedResultEvaluatorGenerationJob {\n return {\n data: evaluatorGenerationJobArrayDeserializer(item[\"value\"] ?? item[\"data\"] ?? []),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"] ?? false,\n };\n}\n\nexport function evaluatorGenerationJobArraySerializer(\n result: Array<EvaluatorGenerationJob>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobSerializer(item);\n });\n}\n\nexport function evaluatorGenerationJobArrayDeserializer(\n result: Array<EvaluatorGenerationJob>,\n): any[] {\n return result.map((item) => {\n return evaluatorGenerationJobDeserializer(item);\n });\n}\n\n/** The response body for cluster insights. */\nexport interface Insight {\n /** The unique identifier for the insights report. */\n readonly insight_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 insight_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 | EvaluationRunClusterInsightRequest\n | AgentClusterInsightRequest\n | EvaluationComparisonInsightRequest\n | InsightRequest;\n\nexport function insightRequestUnionSerializer(item: InsightRequestUnion): any {\n switch (item.type) {\n case \"EvaluationRunClusterInsight\":\n return evaluationRunClusterInsightRequestSerializer(\n item as EvaluationRunClusterInsightRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightRequestSerializer(item as AgentClusterInsightRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonInsightRequestSerializer(\n item as EvaluationComparisonInsightRequest,\n );\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 evaluationRunClusterInsightRequestDeserializer(\n item as EvaluationRunClusterInsightRequest,\n );\n\n case \"AgentClusterInsight\":\n return agentClusterInsightRequestDeserializer(item as AgentClusterInsightRequest);\n\n case \"EvaluationComparison\":\n return evaluationComparisonInsightRequestDeserializer(\n item as EvaluationComparisonInsightRequest,\n );\n\n default:\n return insightRequestDeserializer(item);\n }\n}\n\n/** The request of the insights. */\nexport type InsightType =\n \"EvaluationRunClusterInsight\" | \"AgentClusterInsight\" | \"EvaluationComparison\";\n\n/** Insights on set of Evaluation Results */\nexport interface EvaluationRunClusterInsightRequest 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 evaluationRunClusterInsightRequestSerializer(\n item: EvaluationRunClusterInsightRequest,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"],\n modelConfiguration: !item[\"modelConfiguration\"]\n ? item[\"modelConfiguration\"]\n : insightModelConfigurationSerializer(item[\"modelConfiguration\"]),\n };\n}\n\nexport function evaluationRunClusterInsightRequestDeserializer(\n item: any,\n): EvaluationRunClusterInsightRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n runIds: item[\"runIds\"],\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 AgentClusterInsightRequest 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 agentClusterInsightRequestSerializer(item: AgentClusterInsightRequest): 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 agentClusterInsightRequestDeserializer(item: any): AgentClusterInsightRequest {\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 EvaluationComparisonInsightRequest 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 evaluationComparisonInsightRequestSerializer(\n item: EvaluationComparisonInsightRequest,\n): any {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"],\n };\n}\n\nexport function evaluationComparisonInsightRequestDeserializer(\n item: any,\n): EvaluationComparisonInsightRequest {\n return {\n type: item[\"type\"],\n evalId: item[\"evalId\"],\n baselineRunId: item[\"baselineRunId\"],\n treatmentRunIds: item[\"treatmentRunIds\"],\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 | EvaluationComparisonInsightResult\n | EvaluationRunClusterInsightResult\n | AgentClusterInsightResult\n | InsightResult;\n\nexport function insightResultUnionDeserializer(item: any): InsightResultUnion {\n switch (item[\"type\"]) {\n case \"EvaluationComparison\":\n return evaluationComparisonInsightResultDeserializer(\n item as EvaluationComparisonInsightResult,\n );\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 EvaluationComparisonInsightResult 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 evaluationComparisonInsightResultDeserializer(\n item: any,\n): EvaluationComparisonInsightResult {\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\" | \"Inconclusive\" | \"Changed\" | \"Improved\" | \"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 /** The cluster insight details. */\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, unknown>;\n /** Info about the correlation for the analysis sample. */\n correlationInfo: Record<string, unknown>;\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).forEach((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 /** The cluster insight details. */\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/** 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. Defaults to `true`. */\n chat_summary_enabled: boolean;\n /** Whether to enable procedural memory extraction and storage. The service defaults to `true` if a value is not specified by the caller. */\n procedural_memory_enabled?: boolean;\n /** The default time-to-live for memories in seconds. A value of `0` indicates that memories do not expire. Defaults to `0`. */\n default_ttl_seconds?: number;\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 procedural_memory_enabled: item[\"procedural_memory_enabled\"],\n default_ttl_seconds: item[\"default_ttl_seconds\"],\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 procedural_memory_enabled: item[\"procedural_memory_enabled\"],\n default_ttl_seconds: item[\"default_ttl_seconds\"],\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 memoryStoreDeserializer(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 _AgentsPagedResultMemoryStoreObject {\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): _AgentsPagedResultMemoryStoreObject {\n return {\n data: memoryStoreArrayDeserializer(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 memoryStoreArrayDeserializer(result: Array<MemoryStore>): any[] {\n return result.map((item) => {\n return memoryStoreDeserializer(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/** 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\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 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, procedural */\n kind: MemoryItemKind;\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 =\n UserProfileMemoryItem | ChatSummaryMemoryItem | ProceduralMemoryItem | MemoryItem;\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 case \"procedural\":\n return proceduralMemoryItemDeserializer(item as ProceduralMemoryItem);\n\n default:\n return memoryItemDeserializer(item);\n }\n}\n\n/** Memory item kind. */\nexport type MemoryItemKind = \"user_profile\" | \"chat_summary\" | \"procedural\";\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 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 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\n/** A memory item containing a procedure extracted from conversations. */\nexport interface ProceduralMemoryItem extends MemoryItem {\n /** The kind of the memory item. */\n kind: \"procedural\";\n}\n\nexport function proceduralMemoryItemDeserializer(item: any): ProceduralMemoryItem {\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/** 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: ResponseUsageInputTokensDetails;\n /** The number of output tokens. */\n output_tokens: number;\n /** A detailed breakdown of the output tokens. */\n output_tokens_details: ResponseUsageOutputTokensDetails;\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: responseUsageInputTokensDetailsDeserializer(item[\"input_tokens_details\"]),\n output_tokens: item[\"output_tokens\"],\n output_tokens_details: responseUsageOutputTokensDetailsDeserializer(\n item[\"output_tokens_details\"],\n ),\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** model interface ResponseUsageInputTokensDetails */\nexport interface ResponseUsageInputTokensDetails {\n /** The number of cached input tokens used. */\n cached_tokens: number;\n /** The number of cache-write input tokens used. */\n cache_write_tokens?: number;\n}\n\nexport function responseUsageInputTokensDetailsDeserializer(\n item: any,\n): ResponseUsageInputTokensDetails {\n return {\n cached_tokens: item[\"cached_tokens\"],\n cache_write_tokens: item[\"cache_write_tokens\"],\n };\n}\n\n/** model interface ResponseUsageOutputTokensDetails */\nexport interface ResponseUsageOutputTokensDetails {\n /** The number of output tokens used for reasoning when generating the response. */\n reasoning_tokens: number;\n}\n\nexport function responseUsageOutputTokensDetailsDeserializer(\n item: any,\n): ResponseUsageOutputTokensDetails {\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?: MemoryStoreUpdateCompletedResult;\n /** Error object that describes the error when status is \"failed\". */\n error?: ErrorModel;\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\"]\n ? item[\"result\"]\n : memoryStoreUpdateCompletedResultDeserializer(item[\"result\"]),\n error: !item[\"error\"] ? item[\"error\"] : errorDeserializer(item[\"error\"]),\n };\n}\n\n/** Status of a memory store update operation. */\nexport type MemoryStoreUpdateStatus =\n \"queued\" | \"in_progress\" | \"completed\" | \"failed\" | \"superseded\";\n\n/** Memory update result. */\nexport interface MemoryStoreUpdateCompletedResult {\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 memoryStoreUpdateCompletedResultDeserializer(\n item: any,\n): MemoryStoreUpdateCompletedResult {\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/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultMemoryItem {\n /** The requested list of items. */\n data: MemoryItemUnion[];\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 _agentsPagedResultMemoryItemDeserializer(item: any): _AgentsPagedResultMemoryItem {\n return {\n data: memoryItemUnionArrayDeserializer(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 memoryItemUnionArrayDeserializer(result: Array<MemoryItemUnion>): any[] {\n return result.map((item) => {\n return memoryItemUnionDeserializer(item);\n });\n}\n\n/** Response for deleting a memory item from a memory store. */\nexport interface DeleteMemoryResponse {\n /** The object type. Always 'memory_store.item.deleted'. */\n object: \"memory_store.item.deleted\";\n /** The unique ID of the deleted memory item. */\n memory_id: string;\n /** Whether the memory item was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteMemoryResponseDeserializer(item: any): DeleteMemoryResponse {\n return {\n object: item[\"object\"],\n memory_id: item[\"memory_id\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Paged collection of ModelVersion items */\nexport interface _PagedModelVersion {\n /** The ModelVersion items on this page */\n value: ModelVersion[];\n /** The link to the next page of items */\n nextLink?: string;\n}\n\nexport function _pagedModelVersionDeserializer(item: any): _PagedModelVersion {\n return {\n value: modelVersionArrayDeserializer(item[\"value\"]),\n nextLink: item[\"nextLink\"],\n };\n}\n\nexport function modelVersionArraySerializer(result: Array<ModelVersion>): any[] {\n return result.map((item) => {\n return modelVersionSerializer(item);\n });\n}\n\nexport function modelVersionArrayDeserializer(result: Array<ModelVersion>): any[] {\n return result.map((item) => {\n return modelVersionDeserializer(item);\n });\n}\n\n/** Model Version Definition */\nexport interface ModelVersion {\n /** URI of the model artifact in blob storage */\n blobUri: string;\n /** The weight type of the model */\n weightType?: FoundryModelWeightType;\n /** Base model asset ID */\n baseModel?: string;\n /** The source of the model */\n source?: ModelSourceData;\n /** Adapter-specific configuration. Required when weight_type is lora; ignored otherwise. May be auto-populated from adapter_config.json when present in the uploaded files \u2014 user-provided values take precedence over auto-detected values. */\n loraConfig?: LoraConfig;\n /** The artifact profile of the model */\n readonly artifactProfile?: ArtifactProfile;\n /** Service-computed advisory warnings derived from the artifact profile. */\n readonly warnings?: FoundryModelWarning[];\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 modelVersionSerializer(item: ModelVersion): any {\n return {\n blobUri: item[\"blobUri\"],\n weightType: item[\"weightType\"],\n baseModel: item[\"baseModel\"],\n source: !item[\"source\"] ? item[\"source\"] : modelSourceDataSerializer(item[\"source\"]),\n loraConfig: !item[\"loraConfig\"] ? item[\"loraConfig\"] : loraConfigSerializer(item[\"loraConfig\"]),\n description: item[\"description\"],\n tags: item[\"tags\"],\n };\n}\n\nexport function modelVersionDeserializer(item: any): ModelVersion {\n return {\n blobUri: item[\"blobUri\"],\n weightType: item[\"weightType\"],\n baseModel: item[\"baseModel\"],\n source: !item[\"source\"] ? item[\"source\"] : modelSourceDataDeserializer(item[\"source\"]),\n loraConfig: !item[\"loraConfig\"]\n ? item[\"loraConfig\"]\n : loraConfigDeserializer(item[\"loraConfig\"]),\n artifactProfile: !item[\"artifactProfile\"]\n ? item[\"artifactProfile\"]\n : artifactProfileDeserializer(item[\"artifactProfile\"]),\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : foundryModelWarningArrayDeserializer(item[\"warnings\"]),\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 weight type of the model. */\nexport type FoundryModelWeightType = \"FullWeight\" | \"LoRA\" | \"DraftModel\";\n\n/** Source information for the model */\nexport interface ModelSourceData {\n /** The source type of the model */\n sourceType?: FoundryModelSourceType;\n /** The job ID that produced this model */\n jobId?: string;\n}\n\nexport function modelSourceDataSerializer(item: ModelSourceData): any {\n return { sourceType: item[\"sourceType\"], jobId: item[\"jobId\"] };\n}\n\nexport function modelSourceDataDeserializer(item: any): ModelSourceData {\n return {\n sourceType: item[\"sourceType\"],\n jobId: item[\"jobId\"],\n };\n}\n\n/** The source type of the model. */\nexport type FoundryModelSourceType = \"LocalUpload\" | \"TrainingJob\";\n\n/** Adapter-specific metadata for LoRA models. Drives serving engine configuration at deployment time. */\nexport interface LoraConfig {\n /** LoRA rank (r). Positive integer. Common values: 8, 16, 32, 64. */\n rank?: number;\n /** LoRA scaling factor (\u03B1). Positive integer; typically 2\u00D7 the rank. */\n alpha?: number;\n /** Model layers modified by the adapter (e.g., q_proj, v_proj). Auto-detected from adapter_config.json if omitted. */\n targetModules?: string[];\n /** Dropout rate used during training. Informational \u2014 not used at serving time. */\n dropout?: number;\n}\n\nexport function loraConfigSerializer(item: LoraConfig): any {\n return {\n rank: item[\"rank\"],\n alpha: item[\"alpha\"],\n targetModules: !item[\"targetModules\"]\n ? item[\"targetModules\"]\n : item[\"targetModules\"].map((p: any) => {\n return p;\n }),\n dropout: item[\"dropout\"],\n };\n}\n\nexport function loraConfigDeserializer(item: any): LoraConfig {\n return {\n rank: item[\"rank\"],\n alpha: item[\"alpha\"],\n targetModules: !item[\"targetModules\"]\n ? item[\"targetModules\"]\n : item[\"targetModules\"].map((p: any) => {\n return p;\n }),\n dropout: item[\"dropout\"],\n };\n}\n\n/** Artifact profile of the model */\nexport interface ArtifactProfile {\n /** The category of the artifact profile */\n category: FoundryModelArtifactProfileCategory;\n /** Signals detected in the model artifact */\n signals?: FoundryModelArtifactProfileSignal[];\n}\n\nexport function artifactProfileDeserializer(item: any): ArtifactProfile {\n return {\n category: item[\"category\"],\n signals: !item[\"signals\"]\n ? item[\"signals\"]\n : item[\"signals\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The artifact profile category. */\nexport type FoundryModelArtifactProfileCategory = \"DataOnly\" | \"RuntimeDependent\" | \"Unknown\";\n\n/** Signals detected in the model artifact. */\nexport type FoundryModelArtifactProfileSignal =\n \"PickleDeserialization\" | \"CustomPythonCode\" | \"DynamicOps\" | \"NativeBinary\" | \"UnknownFormat\";\n\nexport function foundryModelWarningArrayDeserializer(result: Array<FoundryModelWarning>): any[] {\n return result.map((item) => {\n return foundryModelWarningDeserializer(item);\n });\n}\n\n/** A warning associated with a model. */\nexport interface FoundryModelWarning {\n /** The warning code. */\n code?: FoundryModelWarningCode;\n /** The warning message. */\n message?: string;\n}\n\nexport function foundryModelWarningDeserializer(item: any): FoundryModelWarning {\n return {\n code: item[\"code\"],\n message: item[\"message\"],\n };\n}\n\n/** Warning code for model artifacts. */\nexport type FoundryModelWarningCode = \"RuntimeDependentArtifact\" | \"UnclassifiedArtifact\";\n\n/** Request body for updating a model version. Only description and tags can be modified. */\nexport interface UpdateModelVersionRequest {\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 updateModelVersionRequestSerializer(item: UpdateModelVersionRequest): any {\n return { description: item[\"description\"], tags: item[\"tags\"] };\n}\n\n/** model interface _CreateAsyncResponse */\nexport interface _CreateAsyncResponse {\n /** URL to poll for operation status. */\n location?: string;\n /** URL to the operation result, or null if the operation is still in progress. */\n operationResult?: string;\n}\n\nexport function _createAsyncResponseDeserializer(item: any): _CreateAsyncResponse {\n return {\n location: item[\"location\"],\n operationResult: item[\"operationResult\"],\n };\n}\n\n/** Represents a request for a pending upload of a model version. */\nexport interface ModelPendingUploadRequest {\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 /** The type of pending upload. Only TemporaryBlobReference is supported for models. */\n pendingUploadType: \"TemporaryBlobReference\";\n}\n\nexport function modelPendingUploadRequestSerializer(item: ModelPendingUploadRequest): any {\n return {\n pendingUploadId: item[\"pendingUploadId\"],\n connectionName: item[\"connectionName\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Represents the response for a model pending upload request. */\nexport interface ModelPendingUploadResponse {\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 /** The type of pending upload. Only TemporaryBlobReference is supported for models. */\n pendingUploadType: \"TemporaryBlobReference\";\n}\n\nexport function modelPendingUploadResponseDeserializer(item: any): ModelPendingUploadResponse {\n return {\n blobReference: blobReferenceDeserializer(item[\"blobReference\"]),\n pendingUploadId: item[\"pendingUploadId\"],\n version: item[\"version\"],\n pendingUploadType: item[\"pendingUploadType\"],\n };\n}\n\n/** Request to fetch credentials for a model asset. */\nexport interface ModelCredentialRequest {\n /** Blob URI of the model asset to fetch credentials for. */\n blobUri: string;\n}\n\nexport function modelCredentialRequestSerializer(item: ModelCredentialRequest): any {\n return { blobUri: item[\"blobUri\"] };\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. If `true` the scan outputs conversation not evaluation result. The service defaults to `false` if a value is not specified by the caller. */\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?: RedTeamTargetConfigUnion;\n}\n\nexport function redTeamSerializer(item: RedTeam): any {\n return {\n displayName: item[\"displayName\"],\n numTurns: item[\"numTurns\"],\n attackStrategies: item[\"attackStrategies\"],\n simulationOnly: item[\"simulationOnly\"],\n riskCategories: item[\"riskCategories\"],\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n target: item[\"target\"] ? redTeamTargetConfigUnionSerializer(item[\"target\"]) : undefined,\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 simulationOnly: item[\"simulationOnly\"],\n riskCategories: item[\"riskCategories\"],\n applicationScenario: item[\"applicationScenario\"],\n tags: item[\"tags\"],\n properties: item[\"properties\"],\n status: item[\"status\"],\n target: item[\"target\"] ? redTeamTargetConfigUnionDeserializer(item[\"target\"]) : undefined,\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 | \"ansi_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\n/** Abstract class for target configuration. */\nexport interface RedTeamTargetConfig {\n /** Type of the model configuration. */\n /** The discriminator possible values: AzureOpenAIModel */\n type: string;\n}\n\nexport function redTeamTargetConfigSerializer(item: RedTeamTargetConfig): any {\n return { type: item[\"type\"] };\n}\n\nexport function redTeamTargetConfigDeserializer(item: any): RedTeamTargetConfig {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RedTeamTargetConfigUnion */\nexport type RedTeamTargetConfigUnion = AzureOpenAIModelConfiguration | RedTeamTargetConfig;\n\nexport function redTeamTargetConfigUnionSerializer(item: RedTeamTargetConfigUnion): any {\n switch (item.type) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationSerializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return redTeamTargetConfigSerializer(item);\n }\n}\n\nexport function redTeamTargetConfigUnionDeserializer(item: any): RedTeamTargetConfigUnion {\n switch (item[\"type\"]) {\n case \"AzureOpenAIModel\":\n return azureOpenAIModelConfigurationDeserializer(item as AzureOpenAIModelConfiguration);\n\n default:\n return redTeamTargetConfigDeserializer(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 RedTeamTargetConfig {\n /** The type discriminator, always 'AzureOpenAIModel'. */\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 { type: item[\"type\"], modelDeploymentName: item[\"modelDeploymentName\"] };\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\nexport function routineTriggerUnionRecordSerializer(\n item: Record<string, RoutineTrigger>,\n): Record<string, any> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : routineTriggerUnionSerializer(item[key]);\n });\n return result;\n}\n\nexport function routineTriggerUnionRecordDeserializer(\n item: Record<string, any>,\n): Record<string, RoutineTrigger> {\n const result: Record<string, any> = {};\n Object.keys(item).map((key) => {\n result[key] = !item[key] ? item[key] : routineTriggerUnionDeserializer(item[key]);\n });\n return result;\n}\n\n/** Base model for a routine trigger. */\nexport interface RoutineTrigger {\n /** The trigger type. */\n /** The discriminator possible values: schedule, timer, github_issue, custom */\n type: RoutineTriggerType;\n}\n\nexport function routineTriggerSerializer(item: RoutineTrigger): any {\n return { type: item[\"type\"] };\n}\n\nexport function routineTriggerDeserializer(item: any): RoutineTrigger {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RoutineTriggerUnion */\nexport type RoutineTriggerUnion =\n | ScheduleRoutineTrigger\n | TimerRoutineTrigger\n | GitHubIssueRoutineTrigger\n | CustomRoutineTrigger\n | RoutineTrigger;\n\nexport function routineTriggerUnionSerializer(item: RoutineTriggerUnion): any {\n switch (item.type) {\n case \"schedule\":\n return scheduleRoutineTriggerSerializer(item as ScheduleRoutineTrigger);\n\n case \"timer\":\n return timerRoutineTriggerSerializer(item as TimerRoutineTrigger);\n\n case \"github_issue\":\n return gitHubIssueRoutineTriggerSerializer(item as GitHubIssueRoutineTrigger);\n\n case \"custom\":\n return customRoutineTriggerSerializer(item as CustomRoutineTrigger);\n\n default:\n return routineTriggerSerializer(item);\n }\n}\n\nexport function routineTriggerUnionDeserializer(item: any): RoutineTriggerUnion {\n switch (item[\"type\"]) {\n case \"schedule\":\n return scheduleRoutineTriggerDeserializer(item as ScheduleRoutineTrigger);\n\n case \"timer\":\n return timerRoutineTriggerDeserializer(item as TimerRoutineTrigger);\n\n case \"github_issue\":\n return gitHubIssueRoutineTriggerDeserializer(item as GitHubIssueRoutineTrigger);\n\n case \"custom\":\n return customRoutineTriggerDeserializer(item as CustomRoutineTrigger);\n\n default:\n return routineTriggerDeserializer(item);\n }\n}\n\n/** The discriminator values supported for routine triggers. */\nexport type RoutineTriggerType = \"custom\" | \"github_issue\" | \"schedule\" | \"timer\";\n\n/** A recurring cron-based routine trigger. */\nexport interface ScheduleRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"schedule\";\n /** A 5-field cron expression. The service enforces a minimum interval of five minutes by default. */\n cron_expression: string;\n /** An IANA or Windows time zone identifier for the schedule. */\n time_zone: string;\n}\n\nexport function scheduleRoutineTriggerSerializer(item: ScheduleRoutineTrigger): any {\n return {\n type: item[\"type\"],\n cron_expression: item[\"cron_expression\"],\n time_zone: item[\"time_zone\"],\n };\n}\n\nexport function scheduleRoutineTriggerDeserializer(item: any): ScheduleRoutineTrigger {\n return {\n type: item[\"type\"],\n cron_expression: item[\"cron_expression\"],\n time_zone: item[\"time_zone\"],\n };\n}\n\n/** A one-shot timer routine trigger. */\nexport interface TimerRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"timer\";\n /** The UTC date and time at which the timer fires. */\n at?: Date;\n}\n\nexport function timerRoutineTriggerSerializer(item: TimerRoutineTrigger): any {\n return { type: item[\"type\"], at: !item[\"at\"] ? item[\"at\"] : item[\"at\"].toISOString() };\n}\n\nexport function timerRoutineTriggerDeserializer(item: any): TimerRoutineTrigger {\n return {\n type: item[\"type\"],\n at: !item[\"at\"] ? item[\"at\"] : new Date(item[\"at\"]),\n };\n}\n\n/** A GitHub issue routine trigger. */\nexport interface GitHubIssueRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"github_issue\";\n /** The workspace connection identifier that resolves the GitHub configuration for the trigger. */\n connection_id: string;\n /** The GitHub owner or organization that scopes which issues can fire the trigger. */\n owner: string;\n /** The GitHub repository filter that scopes which issues can fire the trigger. */\n repository: string;\n /** The GitHub issue event that fires the routine. */\n issue_event: GitHubIssueEvent;\n}\n\nexport function gitHubIssueRoutineTriggerSerializer(item: GitHubIssueRoutineTrigger): any {\n return {\n type: item[\"type\"],\n connection_id: item[\"connection_id\"],\n owner: item[\"owner\"],\n repository: item[\"repository\"],\n issue_event: item[\"issue_event\"],\n };\n}\n\nexport function gitHubIssueRoutineTriggerDeserializer(item: any): GitHubIssueRoutineTrigger {\n return {\n type: item[\"type\"],\n connection_id: item[\"connection_id\"],\n owner: item[\"owner\"],\n repository: item[\"repository\"],\n issue_event: item[\"issue_event\"],\n };\n}\n\n/** Known GitHub issue events that can fire a routine. */\nexport type GitHubIssueEvent = \"opened\" | \"closed\";\n\n/** A custom event routine trigger. */\nexport interface CustomRoutineTrigger extends RoutineTrigger {\n /** The trigger type. */\n type: \"custom\";\n /** The external provider that emits the custom event. */\n provider: string;\n /** The provider-specific event name that fires the routine. */\n event_name?: string;\n /** Provider-specific trigger parameters. */\n parameters: Record<string, any>;\n}\n\nexport function customRoutineTriggerSerializer(item: CustomRoutineTrigger): any {\n return {\n type: item[\"type\"],\n provider: item[\"provider\"],\n event_name: item[\"event_name\"],\n parameters: item[\"parameters\"],\n };\n}\n\nexport function customRoutineTriggerDeserializer(item: any): CustomRoutineTrigger {\n return {\n type: item[\"type\"],\n provider: item[\"provider\"],\n event_name: item[\"event_name\"],\n parameters: item[\"parameters\"],\n };\n}\n\n/** Base model for a routine action. */\nexport interface RoutineAction {\n /** The action type. */\n /** The discriminator possible values: invoke_agent_responses_api, invoke_agent_invocations_api */\n type: RoutineActionType;\n}\n\nexport function routineActionSerializer(item: RoutineAction): any {\n return { type: item[\"type\"] };\n}\n\nexport function routineActionDeserializer(item: any): RoutineAction {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RoutineActionUnion */\nexport type RoutineActionUnion =\n InvokeAgentResponsesApiRoutineAction | InvokeAgentInvocationsApiRoutineAction | RoutineAction;\n\nexport function routineActionUnionSerializer(item: RoutineActionUnion): any {\n switch (item.type) {\n case \"invoke_agent_responses_api\":\n return invokeAgentResponsesApiRoutineActionSerializer(\n item as InvokeAgentResponsesApiRoutineAction,\n );\n\n case \"invoke_agent_invocations_api\":\n return invokeAgentInvocationsApiRoutineActionSerializer(\n item as InvokeAgentInvocationsApiRoutineAction,\n );\n\n default:\n return routineActionSerializer(item);\n }\n}\n\nexport function routineActionUnionDeserializer(item: any): RoutineActionUnion {\n switch (item[\"type\"]) {\n case \"invoke_agent_responses_api\":\n return invokeAgentResponsesApiRoutineActionDeserializer(\n item as InvokeAgentResponsesApiRoutineAction,\n );\n\n case \"invoke_agent_invocations_api\":\n return invokeAgentInvocationsApiRoutineActionDeserializer(\n item as InvokeAgentInvocationsApiRoutineAction,\n );\n\n default:\n return routineActionDeserializer(item);\n }\n}\n\n/** The discriminator values supported for routine actions. */\nexport type RoutineActionType = \"invoke_agent_responses_api\" | \"invoke_agent_invocations_api\";\n\n/** Dispatches a routine through the responses API. Exactly one of agent_name or agent_endpoint_id must be provided. */\nexport interface InvokeAgentResponsesApiRoutineAction extends RoutineAction {\n /** The action type. */\n type: \"invoke_agent_responses_api\";\n /** The project-scoped agent name for routine dispatch. */\n agent_name?: string;\n /** Legacy endpoint-scoped agent identifier for routine dispatch. */\n agent_endpoint_id?: string;\n /** Static JSON value sent as the complete downstream input when the routine fires. The value is passed through as-is; no templating is applied. */\n input?: any;\n /** An optional existing conversation identifier to continue during the downstream dispatch. */\n conversation?: string;\n}\n\nexport function invokeAgentResponsesApiRoutineActionSerializer(\n item: InvokeAgentResponsesApiRoutineAction,\n): any {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n conversation: item[\"conversation\"],\n };\n}\n\nexport function invokeAgentResponsesApiRoutineActionDeserializer(\n item: any,\n): InvokeAgentResponsesApiRoutineAction {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n conversation: item[\"conversation\"],\n };\n}\n\n/** Dispatches a routine through the raw invocations API. Exactly one of agent_name or agent_endpoint_id must be provided. */\nexport interface InvokeAgentInvocationsApiRoutineAction extends RoutineAction {\n /** The action type. */\n type: \"invoke_agent_invocations_api\";\n /** The project-scoped agent name for routine dispatch. */\n agent_name?: string;\n /** Legacy endpoint-scoped agent identifier for routine dispatch. */\n agent_endpoint_id?: string;\n /** Static JSON value sent as the complete downstream input when the routine fires. The value is passed through as-is; no templating is applied. */\n input?: any;\n /** An optional existing hosted-agent session identifier to continue during the downstream dispatch. */\n session_id?: string;\n}\n\nexport function invokeAgentInvocationsApiRoutineActionSerializer(\n item: InvokeAgentInvocationsApiRoutineAction,\n): any {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n session_id: item[\"session_id\"],\n };\n}\n\nexport function invokeAgentInvocationsApiRoutineActionDeserializer(\n item: any,\n): InvokeAgentInvocationsApiRoutineAction {\n return {\n type: item[\"type\"],\n agent_name: item[\"agent_name\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n input: item[\"input\"],\n session_id: item[\"session_id\"],\n };\n}\n\n/** Optional authorization configuration for a routine dispatch. */\nexport interface RoutineAuthorization {\n /** The identity used when dispatching the routine. Defaults to agent when omitted; set to creator only when the customer opts in to creator identity dispatch. */\n identity?: RoutineDispatchIdentity;\n}\n\nexport function routineAuthorizationSerializer(item: RoutineAuthorization): any {\n return { identity: item[\"identity\"] };\n}\n\n/** The supported identities for routine dispatch authorization. */\nexport type RoutineDispatchIdentity = \"agent\" | \"creator\";\n\n/** A routine definition returned by the service. */\nexport interface Routine {\n /** The routine name. */\n name?: string;\n /** A human-readable description of the routine. */\n description?: string;\n /** Whether the routine is enabled. */\n enabled: boolean;\n /** The triggers configured for the routine. */\n triggers?: Record<string, RoutineTriggerUnion>;\n /** The action executed when the routine fires. */\n action?: RoutineActionUnion;\n /** The time when the routine was created. */\n created_at?: Date;\n /** The time when the routine was last updated. */\n updated_at?: Date;\n}\n\nexport function routineDeserializer(item: any): Routine {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n enabled: item[\"enabled\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : routineTriggerUnionRecordDeserializer(item[\"triggers\"]),\n action: !item[\"action\"] ? item[\"action\"] : routineActionUnionDeserializer(item[\"action\"]),\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n updated_at: !item[\"updated_at\"] ? item[\"updated_at\"] : new Date(item[\"updated_at\"] * 1000),\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _PagedResultWithNextLinkRoutine {\n /** The requested list of items. */\n data: Routine[];\n /** The URL to fetch the next page of results, or absent if there are no additional pages. */\n next_link?: string;\n}\n\nexport function _pagedResultWithNextLinkRoutineDeserializer(\n item: any,\n): _PagedResultWithNextLinkRoutine {\n return {\n data: routineArrayDeserializer(item[\"data\"]),\n next_link: item[\"next_link\"],\n };\n}\n\nexport function routineArrayDeserializer(result: Array<Routine>): any[] {\n return (result ?? []).map((item) => {\n return routineDeserializer(item);\n });\n}\n\n/** The response data for a requested list of items. */\nexport interface _PagedResultWithNextLinkRoutineRun {\n /** The requested list of items. */\n data: RoutineRun[];\n /** The URL to fetch the next page of results, or absent if there are no additional pages. */\n next_link?: string;\n}\n\nexport function _pagedResultWithNextLinkRoutineRunDeserializer(\n item: any,\n): _PagedResultWithNextLinkRoutineRun {\n return {\n data: routineRunArrayDeserializer(item[\"data\"]),\n next_link: item[\"next_link\"],\n };\n}\n\nexport function routineRunArrayDeserializer(result: Array<RoutineRun>): any[] {\n return result.map((item) => {\n return routineRunDeserializer(item);\n });\n}\n\n/** A single routine run returned from the run history API. */\nexport interface RoutineRun {\n /** The unique run identifier for the routine attempt. */\n readonly id: string;\n /** The run status. */\n status?: RoutineRunStatus;\n /** The AgentExtensions lifecycle phase for the routine attempt. */\n phase?: RoutineRunPhase;\n /** The trigger type that produced the routine attempt. */\n trigger_type?: RoutineTriggerType;\n /** The configured trigger name that produced the routine attempt. */\n trigger_name?: string;\n /** The event payload captured from the event that triggered the routine attempt, when available. */\n trigger_event_payload?: Record<string, any>;\n /** The source path that created the routine attempt. */\n attempt_source?: RoutineAttemptSource;\n /** The action type dispatched for the routine attempt. */\n action_type?: RoutineActionType;\n /** The project-scoped agent identifier recorded for the routine attempt. */\n agent_id?: string;\n /** The legacy endpoint-scoped agent identifier recorded for the routine attempt. */\n agent_endpoint_id?: string;\n /** The conversation identifier used by a responses API dispatch. */\n conversation_id?: string;\n /** The hosted-agent session identifier used by an invocations API dispatch. */\n session_id?: string;\n /** The logical trigger time recorded for the routine attempt. */\n triggered_at?: Date;\n /** The scheduled fire time recorded for timer and schedule deliveries. */\n scheduled_fire_at?: Date;\n /** The time when the underlying run started. */\n started_at?: Date;\n /** The time when the underlying run reached a terminal state. */\n ended_at?: Date;\n /** The dispatch identifier associated with the routine attempt. */\n dispatch_id?: string;\n /** The downstream action correlation identifier, when available. */\n action_correlation_id?: string;\n /** The downstream response or invocation identifier, when available. */\n response_id?: string;\n /** The workspace task identifier linked to the routine attempt, when available. */\n task_id?: string;\n /** The downstream error status code captured for a failed attempt, when available. */\n error_status_code?: number;\n /** The fully qualified error type captured for a failed attempt, when available. */\n error_type?: string;\n /** The truncated failure message captured for a failed attempt, when available. */\n error_message?: string;\n}\n\nexport function routineRunDeserializer(item: any): RoutineRun {\n return {\n id: item[\"id\"],\n status: !item[\"status\"] ? item[\"status\"] : routineRunStatusDeserializer(item[\"status\"]),\n phase: item[\"phase\"],\n trigger_type: item[\"trigger_type\"],\n trigger_name: item[\"trigger_name\"],\n trigger_event_payload: !item[\"trigger_event_payload\"]\n ? item[\"trigger_event_payload\"]\n : Object.fromEntries(\n Object.entries(item[\"trigger_event_payload\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n attempt_source: item[\"attempt_source\"],\n action_type: item[\"action_type\"],\n agent_id: item[\"agent_id\"],\n agent_endpoint_id: item[\"agent_endpoint_id\"],\n conversation_id: item[\"conversation_id\"],\n session_id: item[\"session_id\"],\n triggered_at: !item[\"triggered_at\"]\n ? item[\"triggered_at\"]\n : new Date(item[\"triggered_at\"] * 1000),\n scheduled_fire_at: !item[\"scheduled_fire_at\"]\n ? item[\"scheduled_fire_at\"]\n : new Date(item[\"scheduled_fire_at\"] * 1000),\n started_at: !item[\"started_at\"] ? item[\"started_at\"] : new Date(item[\"started_at\"] * 1000),\n ended_at: !item[\"ended_at\"] ? item[\"ended_at\"] : new Date(item[\"ended_at\"] * 1000),\n dispatch_id: item[\"dispatch_id\"],\n action_correlation_id: item[\"action_correlation_id\"],\n response_id: item[\"response_id\"],\n task_id: item[\"task_id\"],\n error_status_code: item[\"error_status_code\"],\n error_type: item[\"error_type\"],\n error_message: item[\"error_message\"],\n };\n}\n\n/** The status of a routine run. */\nexport type RoutineRunStatus = string;\n\nexport function routineRunStatusDeserializer(item: any): RoutineRunStatus {\n return item;\n}\n\n/** Known lifecycle phases recorded for a routine run. */\nexport type RoutineRunPhase = \"queued\" | \"dispatching\" | \"completed\" | \"failed\";\n\n/** Known source paths that can produce a routine run. */\nexport type RoutineAttemptSource =\n \"event_fire\" | \"manual_dispatch\" | \"queued_dispatch\" | \"schedule_delivery\" | \"timer_delivery\";\n\n/** Base model for a manual dispatch payload. */\nexport interface RoutineDispatchPayload {\n /** The manual dispatch payload type. */\n /** The discriminator possible values: invoke_agent_responses_api, invoke_agent_invocations_api */\n type: RoutineDispatchPayloadType;\n}\n\nexport function routineDispatchPayloadSerializer(item: RoutineDispatchPayload): any {\n return { type: item[\"type\"] };\n}\n\n/** Alias for RoutineDispatchPayloadUnion */\nexport type RoutineDispatchPayloadUnion =\n | InvokeAgentResponsesApiDispatchPayload\n | InvokeAgentInvocationsApiDispatchPayload\n | RoutineDispatchPayload;\n\nexport function routineDispatchPayloadUnionSerializer(item: RoutineDispatchPayloadUnion): any {\n switch (item.type) {\n case \"invoke_agent_responses_api\":\n return invokeAgentResponsesApiDispatchPayloadSerializer(\n item as InvokeAgentResponsesApiDispatchPayload,\n );\n\n case \"invoke_agent_invocations_api\":\n return invokeAgentInvocationsApiDispatchPayloadSerializer(\n item as InvokeAgentInvocationsApiDispatchPayload,\n );\n\n default:\n return routineDispatchPayloadSerializer(item);\n }\n}\n\n/** The discriminator values supported for manual routine dispatch payloads. */\nexport type RoutineDispatchPayloadType =\n \"invoke_agent_responses_api\" | \"invoke_agent_invocations_api\";\n\n/** A manual payload used to test a responses API routine dispatch. */\nexport interface InvokeAgentResponsesApiDispatchPayload extends RoutineDispatchPayload {\n /** The manual dispatch payload type. */\n type: \"invoke_agent_responses_api\";\n /** The JSON value sent as the complete downstream responses input. The value is passed through as-is and can be an object, string, number, boolean, array, or null. */\n input: unknown;\n}\n\nexport function invokeAgentResponsesApiDispatchPayloadSerializer(\n item: InvokeAgentResponsesApiDispatchPayload,\n): any {\n return { type: item[\"type\"], input: item[\"input\"] };\n}\n\n/** A manual payload used to test an invocations API routine dispatch. */\nexport interface InvokeAgentInvocationsApiDispatchPayload extends RoutineDispatchPayload {\n /** The manual dispatch payload type. */\n type: \"invoke_agent_invocations_api\";\n /** The JSON value sent as the complete downstream invocations input. The value is passed through as-is and can be an object, string, number, boolean, array, or null. */\n input: unknown;\n}\n\nexport function invokeAgentInvocationsApiDispatchPayloadSerializer(\n item: InvokeAgentInvocationsApiDispatchPayload,\n): any {\n return { type: item[\"type\"], input: item[\"input\"] };\n}\n\n/** Identifiers returned after a routine dispatch is queued. */\nexport interface DispatchRoutineResponse {\n /** The dispatch identifier created for the routine dispatch. */\n dispatch_id?: string;\n /** A downstream action correlation identifier, when available. */\n action_correlation_id?: string;\n /** A workspace task identifier created for the dispatch, when available. */\n task_id?: string;\n}\n\nexport function dispatchRoutineResponseDeserializer(item: any): DispatchRoutineResponse {\n return {\n dispatch_id: item[\"dispatch_id\"],\n action_correlation_id: item[\"action_correlation_id\"],\n task_id: item[\"task_id\"],\n };\n}\n\n/** Schedule model. */\nexport interface Schedule {\n /** Identifier of the schedule. */\n readonly schedule_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 schedule_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\" | \"Updating\" | \"Deleting\" | \"Succeeded\" | \"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 /** The type discriminator, always 'Cron'. */\n type: \"Cron\";\n /** Cron expression that defines the schedule frequency. */\n expression: string;\n /** Time zone for the cron schedule. Defaults to `UTC`. */\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. Defaults to `UTC`. */\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 /** The type discriminator, always 'Hourly'. */\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\"],\n };\n}\n\nexport function dailyRecurrenceScheduleDeserializer(item: any): DailyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n hours: item[\"hours\"],\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\"],\n };\n}\n\nexport function weeklyRecurrenceScheduleDeserializer(item: any): WeeklyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfWeek: item[\"daysOfWeek\"],\n };\n}\n\n/** Days of the week for recurrence schedule. */\nexport type DayOfWeek =\n \"Sunday\" | \"Monday\" | \"Tuesday\" | \"Wednesday\" | \"Thursday\" | \"Friday\" | \"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\"],\n };\n}\n\nexport function monthlyRecurrenceScheduleDeserializer(item: any): MonthlyRecurrenceSchedule {\n return {\n type: item[\"type\"],\n daysOfMonth: item[\"daysOfMonth\"],\n };\n}\n\n/** One-time trigger. */\nexport interface OneTimeTrigger extends Trigger {\n /** The type discriminator, always 'OneTime'. */\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. Defaults to `UTC`. */\n timeZone?: string;\n}\n\nexport function oneTimeTriggerSerializer(item: OneTimeTrigger): any {\n return { type: item[\"type\"], triggerAt: item[\"triggerAt\"], timeZone: item[\"timeZone\"] };\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 of the task, which is always 'Evaluation'. */\n type: \"Evaluation\";\n /** Identifier of the evaluation group. */\n evalId: string;\n /** The evaluation run payload. */\n evalRun: Record<string, unknown>;\n}\n\nexport function evaluationScheduleTaskSerializer(item: EvaluationScheduleTask): any {\n return {\n type: item[\"type\"],\n configuration: item[\"configuration\"],\n evalId: item[\"evalId\"],\n evalRun: 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: item[\"evalRun\"],\n };\n}\n\n/** Insight task for the schedule. */\nexport interface InsightScheduleTask extends ScheduleTask {\n /** Type of the task, which is always 'Insight'. */\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 runId: 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 runId: 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/** A skill resource. */\nexport interface Skill {\n /** The unique identifier of the skill. */\n id: string;\n /** The unique name of the skill. */\n name: string;\n /** A human-readable description of the skill. */\n description: string;\n /** The Unix timestamp (seconds) when the skill was created. */\n created_at: Date;\n /** The default version for the skill. Can be changed via updateSkill. */\n default_version: string;\n /** The latest version for the skill. */\n latest_version: string;\n}\n\nexport function skillDeserializer(item: any): Skill {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n default_version: item[\"default_version\"],\n latest_version: item[\"latest_version\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultSkill {\n /** The requested list of items. */\n data: Skill[];\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 _agentsPagedResultSkillDeserializer(item: any): _AgentsPagedResultSkill {\n return {\n data: skillArrayDeserializer(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 skillArrayDeserializer(result: Array<Skill>): any[] {\n return result.map((item) => {\n return skillDeserializer(item);\n });\n}\n\n/** A deleted skill. */\nexport interface DeleteSkillResponse {\n /** The unique identifier of the deleted skill. */\n id: string;\n /** The unique name of the skill. */\n name: string;\n /** Whether the skill was successfully deleted. */\n deleted: boolean;\n}\n\nexport function deleteSkillResponseDeserializer(item: any): DeleteSkillResponse {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n };\n}\n\n/** Inline content for defining a simple skill without uploading files. Follows the agentskills.io SKILL.md specification. */\nexport interface SkillInlineContent {\n /** A human-readable description of what the skill does and when to use it. */\n description: string;\n /** The skill instructions in markdown format. This is the body content of the SKILL.md file. */\n instructions: string;\n /** License name or reference to a bundled license file. */\n license?: string;\n /** Environment requirements or compatibility notes for the skill. */\n compatibility?: string;\n /** Arbitrary key-value metadata for additional properties. */\n metadata?: Record<string, string>;\n /** List of pre-approved tools the skill may use. Experimental. */\n allowed_tools?: string[];\n}\n\nexport function skillInlineContentSerializer(item: SkillInlineContent): any {\n return {\n description: item[\"description\"],\n instructions: item[\"instructions\"],\n license: item[\"license\"],\n compatibility: item[\"compatibility\"],\n metadata: item[\"metadata\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : item[\"allowed_tools\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** A specific version of a skill. */\nexport interface SkillVersion {\n /** The unique identifier of the skill version. */\n id: string;\n /** The identifier of the parent skill. */\n skill_id: string;\n /** The name of the skill version. */\n name: string;\n /** The version identifier. Skill versions are immutable. */\n version: string;\n /** A human-readable description of the skill version. */\n description: string;\n /** The Unix timestamp (seconds) when the skill version was created. */\n created_at: Date;\n}\n\nexport function skillVersionDeserializer(item: any): SkillVersion {\n return {\n id: item[\"id\"],\n skill_id: item[\"skill_id\"],\n name: item[\"name\"],\n version: item[\"version\"],\n description: item[\"description\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n };\n}\n\n/** Multipart request body for creating a skill version from files. Accepts either a single zip file or multiple individual skill files (directory upload). For zip uploads, the server extracts and validates contents. For directory uploads, files are validated as-is. */\nexport interface CreateSkillVersionFromFilesBody {\n /** Skill files to upload. Upload a single zip file or multiple individual files with relative paths. */\n files: Array<FileContents | { contents: FileContents; contentType?: string; filename?: string }>;\n /** Whether to set this version as the default. Defaults to false. */\n default?: boolean;\n}\n\nexport function createSkillVersionFromFilesBodySerializer(\n item: CreateSkillVersionFromFilesBody,\n): any {\n return [\n ...item[\"files\"].map((x: any) => createFilePartDescriptor(\"files\", x)),\n ...(item[\"default\"] === undefined ? [] : [{ name: \"default\", body: item[\"default\"] }]),\n ];\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultSkillVersion {\n /** The requested list of items. */\n data: SkillVersion[];\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 _agentsPagedResultSkillVersionDeserializer(\n item: any,\n): _AgentsPagedResultSkillVersion {\n return {\n data: skillVersionArrayDeserializer(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 skillVersionArrayDeserializer(result: Array<SkillVersion>): any[] {\n return result.map((item) => {\n return skillVersionDeserializer(item);\n });\n}\n\n/** A deleted skill version. */\nexport interface DeleteSkillVersionResponse {\n /** The unique identifier of the deleted skill version. */\n id: string;\n /** The name of the skill. */\n name: string;\n /** Whether the skill version was successfully deleted. */\n deleted: boolean;\n /** The version that was deleted. */\n version: string;\n}\n\nexport function deleteSkillVersionResponseDeserializer(item: any): DeleteSkillVersionResponse {\n return {\n id: item[\"id\"],\n name: item[\"name\"],\n deleted: item[\"deleted\"],\n version: item[\"version\"],\n };\n}\n\n/** Data Generation Job resource. */\nexport interface DataGenerationJob {\n /** Server-assigned unique identifier. */\n readonly id?: string;\n /** Caller-supplied inputs. */\n inputs?: DataGenerationJobInputs;\n /** Result produced on success. */\n readonly result?: DataGenerationJobResult;\n /** Current lifecycle status. */\n readonly status?: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time (seconds since January 1, 1970). */\n readonly created_at?: Date;\n /** The timestamp when the job was finished, represented in Unix time (seconds since January 1, 1970). */\n readonly finished_at?: Date;\n}\n\nexport function dataGenerationJobSerializer(item: DataGenerationJob): any {\n return {\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : dataGenerationJobInputsSerializer(item[\"inputs\"]),\n };\n}\n\nexport function dataGenerationJobDeserializer(item: any): DataGenerationJob {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : dataGenerationJobInputsDeserializer(item[\"inputs\"]),\n result: !item[\"result\"] ? item[\"result\"] : dataGenerationJobResultDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : errorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n finished_at: !item[\"finished_at\"] ? item[\"finished_at\"] : new Date(item[\"finished_at\"] * 1000),\n };\n}\n\n/** Caller-supplied inputs for a data generation job. */\nexport interface DataGenerationJobInputs {\n /** The display name of the data generation job. */\n name: string;\n /** The sources used for the data generation job. */\n sources: DataGenerationJobSourceUnion[];\n /** The options for the data generation job. */\n options: DataGenerationJobOptionsUnion;\n /** The scenario of the data generation job. Either for fine-tuning or evaluation. */\n scenario: DataGenerationJobScenario;\n /** Optional caller-supplied metadata for the job's output. See individual fields for whether they apply to file outputs (fine-tuning scenarios), dataset outputs (evaluation scenario), or both. */\n output_options?: DataGenerationJobOutputOptions;\n}\n\nexport function dataGenerationJobInputsSerializer(item: DataGenerationJobInputs): any {\n return {\n name: item[\"name\"],\n sources: dataGenerationJobSourceUnionArraySerializer(item[\"sources\"]),\n options: dataGenerationJobOptionsUnionSerializer(item[\"options\"]),\n scenario: item[\"scenario\"],\n output_options: !item[\"output_options\"]\n ? item[\"output_options\"]\n : dataGenerationJobOutputOptionsSerializer(item[\"output_options\"]),\n };\n}\n\nexport function dataGenerationJobInputsDeserializer(item: any): DataGenerationJobInputs {\n return {\n name: item[\"name\"],\n sources: dataGenerationJobSourceUnionArrayDeserializer(item[\"sources\"]),\n options: dataGenerationJobOptionsUnionDeserializer(item[\"options\"]),\n scenario: item[\"scenario\"],\n output_options: !item[\"output_options\"]\n ? item[\"output_options\"]\n : dataGenerationJobOutputOptionsDeserializer(item[\"output_options\"]),\n };\n}\n\nexport function dataGenerationJobSourceUnionArraySerializer(\n result: Array<DataGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return dataGenerationJobSourceUnionSerializer(item);\n });\n}\n\nexport function dataGenerationJobSourceUnionArrayDeserializer(\n result: Array<DataGenerationJobSourceUnion>,\n): any[] {\n return result.map((item) => {\n return dataGenerationJobSourceUnionDeserializer(item);\n });\n}\n\n/** The base source model for data generation jobs. */\nexport interface DataGenerationJobSource {\n /** The type of source. */\n /** The discriminator possible values: prompt, agent, traces, file */\n type: DataGenerationJobSourceType;\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n}\n\nexport function dataGenerationJobSourceSerializer(item: DataGenerationJobSource): any {\n return { type: item[\"type\"], description: item[\"description\"] };\n}\n\nexport function dataGenerationJobSourceDeserializer(item: any): DataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n };\n}\n\n/** Alias for DataGenerationJobSourceUnion */\nexport type DataGenerationJobSourceUnion =\n | PromptDataGenerationJobSource\n | AgentDataGenerationJobSource\n | TracesDataGenerationJobSource\n | FileDataGenerationJobSource\n | DataGenerationJobSource;\n\nexport function dataGenerationJobSourceUnionSerializer(item: DataGenerationJobSourceUnion): any {\n switch (item.type) {\n case \"prompt\":\n return promptDataGenerationJobSourceSerializer(item as PromptDataGenerationJobSource);\n\n case \"agent\":\n return agentDataGenerationJobSourceSerializer(item as AgentDataGenerationJobSource);\n\n case \"traces\":\n return tracesDataGenerationJobSourceSerializer(item as TracesDataGenerationJobSource);\n\n case \"file\":\n return fileDataGenerationJobSourceSerializer(item as FileDataGenerationJobSource);\n\n default:\n return dataGenerationJobSourceSerializer(item);\n }\n}\n\nexport function dataGenerationJobSourceUnionDeserializer(item: any): DataGenerationJobSourceUnion {\n switch (item[\"type\"]) {\n case \"prompt\":\n return promptDataGenerationJobSourceDeserializer(item as PromptDataGenerationJobSource);\n\n case \"agent\":\n return agentDataGenerationJobSourceDeserializer(item as AgentDataGenerationJobSource);\n\n case \"traces\":\n return tracesDataGenerationJobSourceDeserializer(item as TracesDataGenerationJobSource);\n\n case \"file\":\n return fileDataGenerationJobSourceDeserializer(item as FileDataGenerationJobSource);\n\n default:\n return dataGenerationJobSourceDeserializer(item);\n }\n}\n\n/** The supported source types for data generation jobs. */\nexport type DataGenerationJobSourceType = \"prompt\" | \"agent\" | \"traces\" | \"file\";\n\n/** Prompt source for data generation jobs \u2014 inline text provided by the user. */\nexport interface PromptDataGenerationJobSource extends DataGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Prompt. */\n type: \"prompt\";\n /** Inline prompt text (e.g., agent description, policy text, supplementary context). */\n prompt: string;\n}\n\nexport function promptDataGenerationJobSourceSerializer(item: PromptDataGenerationJobSource): any {\n return { type: item[\"type\"], description: item[\"description\"], prompt: item[\"prompt\"] };\n}\n\nexport function promptDataGenerationJobSourceDeserializer(\n item: any,\n): PromptDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n prompt: item[\"prompt\"],\n };\n}\n\n/** Agent source for data generation jobs \u2014 references an agent to fetch instructions and metadata from. */\nexport interface AgentDataGenerationJobSource extends DataGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Agent. */\n type: \"agent\";\n /** The agent name to fetch instructions from. */\n agent_name: string;\n /** The agent version. If not specified, the latest version is used. */\n agent_version?: string;\n}\n\nexport function agentDataGenerationJobSourceSerializer(item: AgentDataGenerationJobSource): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\nexport function agentDataGenerationJobSourceDeserializer(item: any): AgentDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Traces source for data generation jobs \u2014 conversation traces from Application Insights. */\nexport interface TracesDataGenerationJobSource extends DataGenerationJobSource {\n /** Optional description of what this source represents \u2014 helps the pipeline interpret its content (e.g., 'Company refund policy document' or 'Describes the agent's core capabilities'). */\n description?: string;\n /** The source type for this source, which is Traces. */\n type: \"traces\";\n /** The unique agent ID used to filter traces. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_id?: string;\n /** The agent name to fetch traces for. Provide either `agent_id` or `agent_name` \u2014 at least one is required. */\n agent_name?: string;\n /** The agent version. If not specified, traces for ALL versions of the agent are included within the time window. */\n agent_version?: string;\n /** Start of the time window (Unix timestamp in seconds) for fetching traces. */\n start_time: Date;\n /** End of the time window (Unix timestamp in seconds). Defaults to current time. */\n end_time?: Date;\n\n /** Optional explicit list of trace IDs to include. */\n trace_ids?: string[];\n}\n\nexport function tracesDataGenerationJobSourceSerializer(item: TracesDataGenerationJobSource): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: !item[\"start_time\"] ? item[\"start_time\"] : item[\"start_time\"].getTime() / 1000 || 0,\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : item[\"end_time\"].getTime() / 1000 || 0,\n\n trace_ids: !item[\"trace_ids\"]\n ? item[\"trace_ids\"]\n : item[\"trace_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function tracesDataGenerationJobSourceDeserializer(\n item: any,\n): TracesDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n agent_id: item[\"agent_id\"],\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n start_time: new Date(item[\"start_time\"] * 1000),\n end_time: !item[\"end_time\"] ? item[\"end_time\"] : new Date(item[\"end_time\"] * 1000),\n\n trace_ids: !item[\"trace_ids\"]\n ? item[\"trace_ids\"]\n : item[\"trace_ids\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** File source for data generation jobs \u2014 Azure OpenAI file input. */\nexport interface FileDataGenerationJobSource extends DataGenerationJobSource {\n /** The source type for this job, which is File. */\n type: \"file\";\n /** Input Azure Open AI file id used for data generation. */\n id: string;\n}\n\nexport function fileDataGenerationJobSourceSerializer(item: FileDataGenerationJobSource): any {\n return { type: item[\"type\"], description: item[\"description\"], id: item[\"id\"] };\n}\n\nexport function fileDataGenerationJobSourceDeserializer(item: any): FileDataGenerationJobSource {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n id: item[\"id\"],\n };\n}\n\n/** Options for managing data generation jobs. */\nexport interface DataGenerationJobOptions {\n /** The data generation job type. */\n /** The discriminator possible values: simple_qna, traces, task_generation, simulation_seed, tool_use */\n type: DataGenerationJobType;\n /** The proportion of the generated data to be used for training when the data is used for fine-tuning. The rest will be used for validation. Value should be between 0 and 1. */\n train_split?: number;\n /** The LLM model options. */\n model_options?: DataGenerationModelOptions;\n}\n\nexport function dataGenerationJobOptionsSerializer(item: DataGenerationJobOptions): any {\n return {\n type: item[\"type\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function dataGenerationJobOptionsDeserializer(item: any): DataGenerationJobOptions {\n return {\n type: item[\"type\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** Alias for DataGenerationJobOptionsUnion */\nexport type DataGenerationJobOptionsUnion =\n | SimpleQnADataGenerationJobOptions\n | TracesDataGenerationJobOptions\n | TaskGenerationDataGenerationJobOptions\n | SimulationSeedDataGenerationJobOptions\n | ToolUseFineTuningDataGenerationJobOptions\n | DataGenerationJobOptions;\n\nexport function dataGenerationJobOptionsUnionSerializer(item: DataGenerationJobOptionsUnion): any {\n switch (item.type) {\n case \"simple_qna\":\n return simpleQnADataGenerationJobOptionsSerializer(item as SimpleQnADataGenerationJobOptions);\n\n case \"traces\":\n return tracesDataGenerationJobOptionsSerializer(item as TracesDataGenerationJobOptions);\n\n case \"simulation_seed\":\n return simulationSeedDataGenerationJobOptionsSerializer(\n item as SimulationSeedDataGenerationJobOptions,\n );\n\n case \"task_generation\":\n return taskGenerationDataGenerationJobOptionsSerializer(\n item as TaskGenerationDataGenerationJobOptions,\n );\n\n case \"tool_use\":\n return toolUseFineTuningDataGenerationJobOptionsSerializer(\n item as ToolUseFineTuningDataGenerationJobOptions,\n );\n\n default:\n return dataGenerationJobOptionsSerializer(item);\n }\n}\n\nexport function dataGenerationJobOptionsUnionDeserializer(\n item: any,\n): DataGenerationJobOptionsUnion {\n switch (item[\"type\"]) {\n case \"simple_qna\":\n return simpleQnADataGenerationJobOptionsDeserializer(\n item as SimpleQnADataGenerationJobOptions,\n );\n\n case \"traces\":\n return tracesDataGenerationJobOptionsDeserializer(item as TracesDataGenerationJobOptions);\n\n case \"simulation_seed\":\n return simulationSeedDataGenerationJobOptionsDeserializer(\n item as SimulationSeedDataGenerationJobOptions,\n );\n\n case \"task_generation\":\n return taskGenerationDataGenerationJobOptionsDeserializer(\n item as TaskGenerationDataGenerationJobOptions,\n );\n\n case \"tool_use\":\n return toolUseFineTuningDataGenerationJobOptionsDeserializer(\n item as ToolUseFineTuningDataGenerationJobOptions,\n );\n\n default:\n return dataGenerationJobOptionsDeserializer(item);\n }\n}\n\n/** The supported data generation job types. */\nexport type DataGenerationJobType =\n \"simple_qna\" | \"traces\" | \"tool_use\" | \"task_generation\" | \"simulation_seed\";\n\n/** LLM model options for data generation jobs. */\nexport interface DataGenerationModelOptions {\n /** Base model name used to generate data. */\n model: string;\n}\n\nexport function dataGenerationModelOptionsSerializer(item: DataGenerationModelOptions): any {\n return { model: item[\"model\"] };\n}\n\nexport function dataGenerationModelOptionsDeserializer(item: any): DataGenerationModelOptions {\n return {\n model: item[\"model\"],\n };\n}\n\n/** The options for a data generation job with SimpleQnA type. */\nexport interface SimpleQnADataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is SimpleQnA for this model. */\n type: \"simple_qna\";\n /** The question types to generate. Used only for fine-tuning scenarios. */\n question_types?: SimpleQnAFineTuningQuestionType[];\n\n /** Maximum number of samples to generate, up to service-defined limits. */\n max_samples: number;\n}\n\nexport function simpleQnADataGenerationJobOptionsSerializer(\n item: SimpleQnADataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n question_types: !item[\"question_types\"]\n ? item[\"question_types\"]\n : item[\"question_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function simpleQnADataGenerationJobOptionsDeserializer(\n item: any,\n): SimpleQnADataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n question_types: !item[\"question_types\"]\n ? item[\"question_types\"]\n : item[\"question_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The supported question types for SimpleQnA data generation jobs used for fine-tuning scenarios. */\nexport type SimpleQnAFineTuningQuestionType = \"short_answer\" | \"long_answer\";\n\n/** The options for a data generation job with Traces type. */\nexport interface TracesDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is Traces for this model. */\n type: \"traces\";\n /** Whether to redact private content from traces. When omitted or set to true, private content is redacted. Set to false to opt out of redaction. */\n redact_private_content?: boolean;\n\n /** Maximum number of samples to generate, up to service-defined limits. If omitted, sampling is turned off. */\n max_samples?: number;\n}\n\nexport function tracesDataGenerationJobOptionsSerializer(\n item: TracesDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n redact_private_content: item[\"redact_private_content\"],\n };\n}\n\nexport function tracesDataGenerationJobOptionsDeserializer(\n item: any,\n): TracesDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n redact_private_content: item[\"redact_private_content\"],\n };\n}\n\n/** The options for a simulation seed data generation job. Use with multiturn evaluation scenarios and with prompt, file, or agent sources. Generated dataset rows include fields such as `id`, `category`, `test_case_description`, and `desired_num_turns`. */\nexport interface SimulationSeedDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is SimulationSeed for this model. */\n type: \"simulation_seed\";\n}\n\nexport function simulationSeedDataGenerationJobOptionsSerializer(\n item: SimulationSeedDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function simulationSeedDataGenerationJobOptionsDeserializer(\n item: any,\n): SimulationSeedDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/**\n * Options for the legacy task generation job, including the maximum number of generated samples.\n *\n * @deprecated Use `SimulationSeedDataGenerationJobOptions` instead.\n */\nexport interface TaskGenerationDataGenerationJobOptions extends DataGenerationJobOptions {\n /** Maximum number of samples to generate. */\n max_samples: number;\n /** The data generation job type. */\n type: \"task_generation\";\n}\n\nexport function taskGenerationDataGenerationJobOptionsSerializer(\n item: TaskGenerationDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function taskGenerationDataGenerationJobOptionsDeserializer(\n item: any,\n): TaskGenerationDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** The options for a data generation job with ToolUse type. Used only for fine-tuning scenarios. */\nexport interface ToolUseFineTuningDataGenerationJobOptions extends DataGenerationJobOptions {\n /** The data generation job type, which is ToolUse for this model. */\n type: \"tool_use\";\n\n /** Maximum number of samples to generate, up to service-defined limits. */\n max_samples: number;\n}\n\nexport function toolUseFineTuningDataGenerationJobOptionsSerializer(\n item: ToolUseFineTuningDataGenerationJobOptions,\n): any {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsSerializer(item[\"model_options\"]),\n };\n}\n\nexport function toolUseFineTuningDataGenerationJobOptionsDeserializer(\n item: any,\n): ToolUseFineTuningDataGenerationJobOptions {\n return {\n type: item[\"type\"],\n max_samples: item[\"max_samples\"],\n train_split: item[\"train_split\"],\n model_options: !item[\"model_options\"]\n ? item[\"model_options\"]\n : dataGenerationModelOptionsDeserializer(item[\"model_options\"]),\n };\n}\n\n/** The supported scenarios for a data generation job. */\nexport type DataGenerationJobScenario =\n \"supervised_finetuning\" | \"reinforcement_finetuning\" | \"evaluation\";\n\n/** Output options for data generation job. */\nexport interface DataGenerationJobOutputOptions {\n /** Name to assign to the output. Used as the filename for Azure OpenAI file outputs (fine-tuning scenarios) and as the dataset name for dataset outputs (evaluation scenario). */\n name?: string;\n /** Description to assign to the output. Applies only to dataset outputs (evaluation scenario); ignored for Azure OpenAI file outputs. */\n description?: string;\n /** Tags to assign to the output. Applies only to dataset outputs (evaluation scenario); ignored for Azure OpenAI file outputs. */\n tags?: Record<string, string>;\n\n /** Controls how dataset outputs are written. If omitted, defaults to `overwrite` and creates the next dataset version using only newly generated rows. */\n write_mode?: DataGenerationJobOutputWriteMode;\n}\n\nexport function dataGenerationJobOutputOptionsSerializer(\n item: DataGenerationJobOutputOptions,\n): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n write_mode: item[\"write_mode\"],\n };\n}\n\nexport function dataGenerationJobOutputOptionsDeserializer(\n item: any,\n): DataGenerationJobOutputOptions {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n tags: item[\"tags\"],\n\n write_mode: item[\"write_mode\"],\n };\n}\n\n/** Result produced by a successful data generation job. */\nexport interface DataGenerationJobResult {\n /** The final job outputs: Azure OpenAI files for fine-tuning, or datasets for evaluation. */\n outputs?: DataGenerationJobOutputUnion[];\n /** The number of samples actually generated. */\n generated_samples: number;\n /** The token usage information for the data generation job. */\n token_usage?: DataGenerationTokenUsage;\n}\n\nexport function dataGenerationJobResultDeserializer(item: any): DataGenerationJobResult {\n return {\n outputs: !item[\"outputs\"]\n ? item[\"outputs\"]\n : dataGenerationJobOutputUnionArrayDeserializer(item[\"outputs\"]),\n generated_samples: item[\"generated_samples\"],\n token_usage: !item[\"token_usage\"]\n ? item[\"token_usage\"]\n : dataGenerationTokenUsageDeserializer(item[\"token_usage\"]),\n };\n}\n\nexport function dataGenerationJobOutputUnionArrayDeserializer(\n result: Array<DataGenerationJobOutputUnion>,\n): any[] {\n return result.map((item) => {\n return dataGenerationJobOutputUnionDeserializer(item);\n });\n}\n\n/** Output information for a data generation job. */\nexport interface DataGenerationJobOutput {\n /** The type of the output. */\n /** The discriminator possible values: file, dataset */\n type: DataGenerationJobOutputType;\n}\n\nexport function dataGenerationJobOutputDeserializer(item: any): DataGenerationJobOutput {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for DataGenerationJobOutputUnion */\nexport type DataGenerationJobOutputUnion =\n FileDataGenerationJobOutput | DatasetDataGenerationJobOutput | DataGenerationJobOutput;\n\nexport function dataGenerationJobOutputUnionDeserializer(item: any): DataGenerationJobOutputUnion {\n switch (item[\"type\"]) {\n case \"file\":\n return fileDataGenerationJobOutputDeserializer(item as FileDataGenerationJobOutput);\n\n case \"dataset\":\n return datasetDataGenerationJobOutputDeserializer(item as DatasetDataGenerationJobOutput);\n\n default:\n return dataGenerationJobOutputDeserializer(item);\n }\n}\n\n/** The supported output file types for a data generation job. */\nexport type DataGenerationJobOutputType = \"file\" | \"dataset\";\n\n/** Azure OpenAI file output for a data generation job. */\nexport interface FileDataGenerationJobOutput extends DataGenerationJobOutput {\n /** Azure OpenAI file output. */\n type: \"file\";\n /** The id of the output Azure OpenAI file. */\n readonly id: string;\n /** The filename of the output Azure OpenAI file. */\n readonly filename: string;\n}\n\nexport function fileDataGenerationJobOutputDeserializer(item: any): FileDataGenerationJobOutput {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n filename: item[\"filename\"],\n };\n}\n\n/** Dataset output for a data generation job. */\nexport interface DatasetDataGenerationJobOutput extends DataGenerationJobOutput {\n /** Dataset output. */\n type: \"dataset\";\n /** The id of the output dataset created. */\n readonly id?: string;\n /** The name of the output dataset. */\n readonly name?: string;\n /** The version of the output dataset. */\n readonly version?: string;\n /** Description of the output dataset. */\n readonly description?: string;\n /** Tag dictionary of the output dataset. */\n readonly tags?: Record<string, string>;\n}\n\nexport function datasetDataGenerationJobOutputDeserializer(\n item: any,\n): DatasetDataGenerationJobOutput {\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/** Token usage information for a data generation job. */\nexport interface DataGenerationTokenUsage {\n /** The number of prompt tokens used. */\n readonly prompt_tokens: number;\n /** The number of completion tokens generated. */\n readonly completion_tokens: number;\n /** Total number of tokens used. */\n readonly total_tokens: number;\n}\n\nexport function dataGenerationTokenUsageDeserializer(item: any): DataGenerationTokenUsage {\n return {\n prompt_tokens: item[\"prompt_tokens\"],\n completion_tokens: item[\"completion_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultDataGenerationJob {\n /** The requested list of items. */\n data: DataGenerationJob[];\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 _agentsPagedResultDataGenerationJobDeserializer(\n item: any,\n): _AgentsPagedResultDataGenerationJob {\n return {\n data: dataGenerationJobArrayDeserializer(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 dataGenerationJobArraySerializer(result: Array<DataGenerationJob>): any[] {\n return result.map((item) => {\n return dataGenerationJobSerializer(item);\n });\n}\n\nexport function dataGenerationJobArrayDeserializer(result: Array<DataGenerationJob>): any[] {\n return result.map((item) => {\n return dataGenerationJobDeserializer(item);\n });\n}\n\n/** Agent optimization job resource \u2014 a long-running job that optimizes an agent's configuration (instructions, model, skills, tools) to maximize evaluation scores. On success, the result contains scored candidates. */\nexport interface AgentOptimizationJob {\n /** Server-assigned unique identifier. */\n readonly id: string;\n /** Caller-supplied inputs. */\n inputs?: AgentOptimizationJobInputs;\n /** Result produced on success. */\n readonly result?: AgentOptimizationJobResult;\n /** Current lifecycle status. */\n readonly status: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time. */\n readonly created_at: Date;\n /** The timestamp when the job was last updated, represented in Unix time. */\n readonly updated_at: Date;\n /** Progress snapshot. May be present in terminal states reflecting last-known progress. */\n readonly progress?: AgentOptimizationJobProgress;\n /** Non-fatal warnings emitted at any point during optimization. */\n readonly warnings?: string[];\n}\n\nexport function agentOptimizationJobSerializer(item: AgentOptimizationJob): any {\n return {\n inputs: !item[\"inputs\"] ? item[\"inputs\"] : agentOptimizationJobInputsSerializer(item[\"inputs\"]),\n };\n}\n\nexport function agentOptimizationJobDeserializer(item: any): AgentOptimizationJob {\n return {\n id: item[\"id\"],\n inputs: !item[\"inputs\"]\n ? item[\"inputs\"]\n : agentOptimizationJobInputsDeserializer(item[\"inputs\"]),\n result: !item[\"result\"]\n ? item[\"result\"]\n : agentOptimizationJobResultDeserializer(item[\"result\"]),\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : errorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n progress: !item[\"progress\"]\n ? item[\"progress\"]\n : agentOptimizationJobProgressDeserializer(item[\"progress\"]),\n warnings: !item[\"warnings\"]\n ? item[\"warnings\"]\n : item[\"warnings\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** Caller-supplied inputs for an optimization job. */\nexport interface AgentOptimizationJobInputs {\n /** The agent (and pinned version) being optimized. */\n agent: OptimizedAgentIdentifier;\n /** Training dataset \u2014 either inline items or a reference to a registered dataset. Required. */\n train_dataset: AgentOptimizationDatasetInputUnion;\n /** Optional held-out validation dataset for measuring generalization of the final candidate. */\n validation_dataset?: AgentOptimizationDatasetInputUnion;\n /** Job-level evaluators referenced by name and optional version. Required; at least one must be provided. */\n evaluators: AgentOptimizationEvaluatorRef[];\n /** Tuning knobs and run-mode. */\n options?: AgentOptimizationOptions;\n}\n\nexport function agentOptimizationJobInputsSerializer(item: AgentOptimizationJobInputs): any {\n return {\n agent: optimizedAgentIdentifierSerializer(item[\"agent\"]),\n train_dataset: agentOptimizationDatasetInputUnionSerializer(item[\"train_dataset\"]),\n validation_dataset: !item[\"validation_dataset\"]\n ? item[\"validation_dataset\"]\n : agentOptimizationDatasetInputUnionSerializer(item[\"validation_dataset\"]),\n evaluators: agentOptimizationEvaluatorRefArraySerializer(item[\"evaluators\"]),\n options: !item[\"options\"]\n ? item[\"options\"]\n : agentOptimizationOptionsSerializer(item[\"options\"]),\n };\n}\n\nexport function agentOptimizationJobInputsDeserializer(item: any): AgentOptimizationJobInputs {\n return {\n agent: optimizedAgentIdentifierDeserializer(item[\"agent\"]),\n train_dataset: agentOptimizationDatasetInputUnionDeserializer(item[\"train_dataset\"]),\n validation_dataset: !item[\"validation_dataset\"]\n ? item[\"validation_dataset\"]\n : agentOptimizationDatasetInputUnionDeserializer(item[\"validation_dataset\"]),\n evaluators: agentOptimizationEvaluatorRefArrayDeserializer(item[\"evaluators\"]),\n options: !item[\"options\"]\n ? item[\"options\"]\n : agentOptimizationOptionsDeserializer(item[\"options\"]),\n };\n}\n\n/** Identifies the registered Foundry agent to optimize (request-only). Skills, tools, and system_prompt are specified in options.optimization_config. */\nexport interface OptimizedAgentIdentifier {\n /** Registered Foundry agent name (required). */\n agent_name: string;\n /** Pinned agent version. Defaults to latest if omitted. */\n agent_version?: string;\n}\n\nexport function optimizedAgentIdentifierSerializer(item: OptimizedAgentIdentifier): any {\n return { agent_name: item[\"agent_name\"], agent_version: item[\"agent_version\"] };\n}\n\nexport function optimizedAgentIdentifierDeserializer(item: any): OptimizedAgentIdentifier {\n return {\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** Base discriminated model for dataset input. Either inline items or a registered reference. */\nexport interface AgentOptimizationDatasetInput {\n /** Dataset input type discriminator. */\n /** The discriminator possible values: inline, reference */\n type: AgentOptimizationDatasetInputType;\n}\n\nexport function agentOptimizationDatasetInputSerializer(item: AgentOptimizationDatasetInput): any {\n return { type: item[\"type\"] };\n}\n\nexport function agentOptimizationDatasetInputDeserializer(\n item: any,\n): AgentOptimizationDatasetInput {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for AgentOptimizationDatasetInputUnion */\nexport type AgentOptimizationDatasetInputUnion =\n | AgentOptimizationInlineDatasetInput\n | AgentOptimizationReferenceDatasetInput\n | AgentOptimizationDatasetInput;\n\nexport function agentOptimizationDatasetInputUnionSerializer(\n item: AgentOptimizationDatasetInputUnion,\n): any {\n switch (item.type) {\n case \"inline\":\n return agentOptimizationInlineDatasetInputSerializer(\n item as AgentOptimizationInlineDatasetInput,\n );\n\n case \"reference\":\n return agentOptimizationReferenceDatasetInputSerializer(\n item as AgentOptimizationReferenceDatasetInput,\n );\n\n default:\n return agentOptimizationDatasetInputSerializer(item);\n }\n}\n\nexport function agentOptimizationDatasetInputUnionDeserializer(\n item: any,\n): AgentOptimizationDatasetInputUnion {\n switch (item[\"type\"]) {\n case \"inline\":\n return agentOptimizationInlineDatasetInputDeserializer(\n item as AgentOptimizationInlineDatasetInput,\n );\n\n case \"reference\":\n return agentOptimizationReferenceDatasetInputDeserializer(\n item as AgentOptimizationReferenceDatasetInput,\n );\n\n default:\n return agentOptimizationDatasetInputDeserializer(item);\n }\n}\n\n/** Discriminator values for the dataset input union. */\nexport type AgentOptimizationDatasetInputType = \"inline\" | \"reference\";\n\n/** Inline dataset \u2014 items supplied directly in the request body. */\nexport interface AgentOptimizationInlineDatasetInput extends AgentOptimizationDatasetInput {\n /** Dataset input type discriminator. */\n type: \"inline\";\n /** Dataset items. */\n items: AgentOptimizationDatasetItem[];\n}\n\nexport function agentOptimizationInlineDatasetInputSerializer(\n item: AgentOptimizationInlineDatasetInput,\n): any {\n return { type: item[\"type\"], items: agentOptimizationDatasetItemArraySerializer(item[\"items\"]) };\n}\n\nexport function agentOptimizationInlineDatasetInputDeserializer(\n item: any,\n): AgentOptimizationInlineDatasetInput {\n return {\n type: item[\"type\"],\n items: agentOptimizationDatasetItemArrayDeserializer(item[\"items\"]),\n };\n}\n\nexport function agentOptimizationDatasetItemArraySerializer(\n result: Array<AgentOptimizationDatasetItem>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetItemSerializer(item);\n });\n}\n\nexport function agentOptimizationDatasetItemArrayDeserializer(\n result: Array<AgentOptimizationDatasetItem>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetItemDeserializer(item);\n });\n}\n\n/** A single item in an inline dataset. */\nexport interface AgentOptimizationDatasetItem {\n /** The user query / prompt. */\n query?: string;\n /** Expected ground truth answer. */\n ground_truth?: string;\n /** Desired number of conversation turns for simulation mode (1-20). */\n desired_num_turns?: number;\n /** Per-item evaluation criteria. */\n criteria?: AgentOptimizationDatasetCriterion[];\n}\n\nexport function agentOptimizationDatasetItemSerializer(item: AgentOptimizationDatasetItem): any {\n return {\n query: item[\"query\"],\n ground_truth: item[\"ground_truth\"],\n desired_num_turns: item[\"desired_num_turns\"],\n criteria: !item[\"criteria\"]\n ? item[\"criteria\"]\n : agentOptimizationDatasetCriterionArraySerializer(item[\"criteria\"]),\n };\n}\n\nexport function agentOptimizationDatasetItemDeserializer(item: any): AgentOptimizationDatasetItem {\n return {\n query: item[\"query\"],\n ground_truth: item[\"ground_truth\"],\n desired_num_turns: item[\"desired_num_turns\"],\n criteria: !item[\"criteria\"]\n ? item[\"criteria\"]\n : agentOptimizationDatasetCriterionArrayDeserializer(item[\"criteria\"]),\n };\n}\n\nexport function agentOptimizationDatasetCriterionArraySerializer(\n result: Array<AgentOptimizationDatasetCriterion>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetCriterionSerializer(item);\n });\n}\n\nexport function agentOptimizationDatasetCriterionArrayDeserializer(\n result: Array<AgentOptimizationDatasetCriterion>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationDatasetCriterionDeserializer(item);\n });\n}\n\n/** Evaluation criterion: a name + instruction pair used for per-item scoring. */\nexport interface AgentOptimizationDatasetCriterion {\n /** Criterion name. */\n name: string;\n /** Criterion instruction / description. */\n instruction: string;\n}\n\nexport function agentOptimizationDatasetCriterionSerializer(\n item: AgentOptimizationDatasetCriterion,\n): any {\n return { name: item[\"name\"], instruction: item[\"instruction\"] };\n}\n\nexport function agentOptimizationDatasetCriterionDeserializer(\n item: any,\n): AgentOptimizationDatasetCriterion {\n return {\n name: item[\"name\"],\n instruction: item[\"instruction\"],\n };\n}\n\n/** Reference to a registered Foundry dataset. */\nexport interface AgentOptimizationReferenceDatasetInput extends AgentOptimizationDatasetInput {\n /** Dataset input type discriminator. */\n type: \"reference\";\n /** Registered dataset name. */\n name: string;\n /** Dataset version. If not specified, the latest version is used. */\n version?: string;\n}\n\nexport function agentOptimizationReferenceDatasetInputSerializer(\n item: AgentOptimizationReferenceDatasetInput,\n): any {\n return { type: item[\"type\"], name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function agentOptimizationReferenceDatasetInputDeserializer(\n item: any,\n): AgentOptimizationReferenceDatasetInput {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\nexport function agentOptimizationEvaluatorRefArraySerializer(\n result: Array<AgentOptimizationEvaluatorRef>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationEvaluatorRefSerializer(item);\n });\n}\n\nexport function agentOptimizationEvaluatorRefArrayDeserializer(\n result: Array<AgentOptimizationEvaluatorRef>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationEvaluatorRefDeserializer(item);\n });\n}\n\n/** Reference to a named evaluator, optionally pinned to a version. */\nexport interface AgentOptimizationEvaluatorRef {\n /** Evaluator name. */\n name: string;\n /** Evaluator version. If not specified, the latest version is used. */\n version?: string;\n}\n\nexport function agentOptimizationEvaluatorRefSerializer(item: AgentOptimizationEvaluatorRef): any {\n return { name: item[\"name\"], version: item[\"version\"] };\n}\n\nexport function agentOptimizationEvaluatorRefDeserializer(\n item: any,\n): AgentOptimizationEvaluatorRef {\n return {\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Tuning knobs and run-mode for an optimization job. */\nexport interface AgentOptimizationOptions {\n /** Maximum number of optimization candidates to generate. Must be >= 1. Default: 5. */\n max_candidates?: number;\n /** Per-target-attribute configuration overrides. Contains skills, tools, system_prompt for the agent, plus model space for model optimization. */\n optimization_config?: Record<string, any>;\n /** Model deployment used for evaluation. Defaults to server config (typically 'gpt-4o'). */\n eval_model?: string;\n /** Model deployment for optimization reasoning (must be gpt-5 family). Falls back to the default eval model when not set. */\n optimization_model?: string;\n /** Evaluation granularity. Null/omitted means per-item single-turn. Set to 'conversation' for per-conversation multi-turn simulation scoring. */\n evaluation_level?: EvaluationLevel;\n /** Maximum number of consecutive reflective minibatch rejections before stopping early. A 'stall' occurs when the optimizer proposes a prompt change, evaluates it on a small subset, and the score does not improve \u2014 so no full validation-set evaluation is triggered. The counter resets whenever a minibatch passes and its full-validation score beats the current best. Only a sustained plateau of `max_stalls` consecutive minibatch failures triggers the stop. The service defaults to 5 if a value is not specified by the caller. Must be >= 1 when set. */\n max_stalls?: number;\n}\n\nexport function agentOptimizationOptionsSerializer(item: AgentOptimizationOptions): any {\n return {\n max_candidates: item[\"max_candidates\"],\n optimization_config: item[\"optimization_config\"],\n eval_model: item[\"eval_model\"],\n optimization_model: item[\"optimization_model\"],\n evaluation_level: item[\"evaluation_level\"],\n max_stalls: item[\"max_stalls\"],\n };\n}\n\nexport function agentOptimizationOptionsDeserializer(item: any): AgentOptimizationOptions {\n return {\n max_candidates: item[\"max_candidates\"],\n optimization_config: !item[\"optimization_config\"]\n ? item[\"optimization_config\"]\n : Object.fromEntries(\n Object.entries(item[\"optimization_config\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n eval_model: item[\"eval_model\"],\n optimization_model: item[\"optimization_model\"],\n evaluation_level: item[\"evaluation_level\"],\n max_stalls: item[\"max_stalls\"],\n };\n}\n\n/** Terminal-state result body. Populated when status is succeeded or failed. */\nexport interface AgentOptimizationJobResult {\n /** Candidate ID of the original (un-optimized) baseline evaluation. */\n baseline?: string;\n /** Candidate ID of the highest-scoring candidate found during optimization. */\n best?: string;\n /** All evaluated candidates including baseline. */\n candidates?: AgentOptimizationCandidate[];\n}\n\nexport function agentOptimizationJobResultDeserializer(item: any): AgentOptimizationJobResult {\n return {\n baseline: item[\"baseline\"],\n best: item[\"best\"],\n candidates: !item[\"candidates\"]\n ? item[\"candidates\"]\n : agentOptimizationCandidateArrayDeserializer(item[\"candidates\"]),\n };\n}\n\nexport function agentOptimizationCandidateArrayDeserializer(\n result: Array<AgentOptimizationCandidate>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationCandidateDeserializer(item);\n });\n}\n\n/** Aggregated evaluation result for a single candidate agent configuration across all tasks. */\nexport interface AgentOptimizationCandidate {\n /** Server-assigned candidate identifier. Use with GET /candidates/{id} sub-endpoints. */\n candidate_id?: string;\n /** Display name of the candidate (e.g., 'baseline', 'instruction-v2'). */\n name: string;\n /** What was mutated from the baseline (e.g., {system_prompt: 'new prompt'}). */\n mutations?: Record<string, any>;\n /** Average composite score across all tasks. */\n avg_score: number;\n /** Average token usage across all tasks. */\n avg_tokens: number;\n /** Foundry evaluation identifier used to score this candidate. */\n eval_id?: string;\n /** Foundry evaluation run identifier for this candidate's scoring run. */\n eval_run_id?: string;\n /** Promotion metadata. Null if the candidate has not been promoted. */\n promotion?: PromotionInfo;\n}\n\nexport function agentOptimizationCandidateDeserializer(item: any): AgentOptimizationCandidate {\n return {\n candidate_id: item[\"candidate_id\"],\n name: item[\"name\"],\n mutations: !item[\"mutations\"]\n ? item[\"mutations\"]\n : Object.fromEntries(\n Object.entries(item[\"mutations\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n avg_score: item[\"avg_score\"],\n avg_tokens: item[\"avg_tokens\"],\n eval_id: item[\"eval_id\"],\n eval_run_id: item[\"eval_run_id\"],\n promotion: !item[\"promotion\"]\n ? item[\"promotion\"]\n : promotionInfoDeserializer(item[\"promotion\"]),\n };\n}\n\n/** Promotion metadata recorded when a candidate is deployed to a Foundry agent. */\nexport interface PromotionInfo {\n /** Timestamp when promotion occurred, represented in Unix time. */\n promoted_at: Date;\n /** Name of the Foundry agent this candidate was promoted to. */\n agent_name: string;\n /** Version of the Foundry agent this candidate was promoted to. */\n agent_version: string;\n}\n\nexport function promotionInfoDeserializer(item: any): PromotionInfo {\n return {\n promoted_at: new Date(item[\"promoted_at\"] * 1000),\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n };\n}\n\n/** In-flight progress; only populated while status is queued or in_progress. */\nexport interface AgentOptimizationJobProgress {\n /** Number of candidates whose evaluation has completed so far. */\n candidates_completed: number;\n /** Best score observed so far across all candidates. */\n best_score: number;\n /** Wall-clock time elapsed in seconds since the job began executing. */\n elapsed_seconds: number;\n}\n\nexport function agentOptimizationJobProgressDeserializer(item: any): AgentOptimizationJobProgress {\n return {\n candidates_completed: item[\"candidates_completed\"],\n best_score: item[\"best_score\"],\n elapsed_seconds: item[\"elapsed_seconds\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultAgentOptimizationJobListItem {\n /** The requested list of items. */\n data: AgentOptimizationJobListItem[];\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 _agentsPagedResultAgentOptimizationJobListItemDeserializer(\n item: any,\n): _AgentsPagedResultAgentOptimizationJobListItem {\n return {\n data: agentOptimizationJobListItemArrayDeserializer(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 agentOptimizationJobListItemArrayDeserializer(\n result: Array<AgentOptimizationJobListItem>,\n): any[] {\n return result.map((item) => {\n return agentOptimizationJobListItemDeserializer(item);\n });\n}\n\n/** Slim job representation returned by the LIST endpoint. */\nexport interface AgentOptimizationJobListItem {\n /** Server-assigned unique identifier. */\n readonly id: string;\n /** Current lifecycle status. */\n readonly status: JobStatus;\n /** Error details \u2014 populated only on failure. */\n readonly error?: ErrorModel;\n /** The timestamp when the job was created, represented in Unix time. */\n readonly created_at: Date;\n /** The timestamp when the job was last updated, represented in Unix time. */\n readonly updated_at: Date;\n /** Progress snapshot. May be present in terminal states reflecting last-known progress. */\n readonly progress?: AgentOptimizationJobProgress;\n /** The agent targeted by this optimization job. */\n readonly agent?: OptimizedAgentIdentifier;\n}\n\n/**\n * An agent optimization job that tracks inputs, progress, status, and candidate evaluation results.\n *\n * @deprecated Use `AgentOptimizationJob` instead.\n */\nexport type OptimizationJob = AgentOptimizationJob;\n/**\n * The agent, datasets, evaluators, and options supplied to an agent optimization job.\n *\n * @deprecated Use `AgentOptimizationJobInputs` instead.\n */\nexport type OptimizationJobInputs = AgentOptimizationJobInputs;\n/**\n * Identifies the registered Foundry agent and optional version to optimize.\n *\n * @deprecated Use `OptimizedAgentIdentifier` instead.\n */\nexport type OptimizationAgentIdentifier = OptimizedAgentIdentifier;\n/**\n * The base description of an inline or registered dataset supplied to an agent optimization job.\n *\n * @deprecated Use `AgentOptimizationDatasetInput` instead.\n */\nexport type OptimizationDatasetInput = AgentOptimizationDatasetInput;\n/**\n * An optimization dataset supplied as inline items or a reference to a registered Foundry dataset.\n *\n * @deprecated Use `AgentOptimizationDatasetInputUnion` instead.\n */\nexport type OptimizationDatasetInputUnion = AgentOptimizationDatasetInputUnion;\n/**\n * The supported forms of optimization dataset input: inline items or a registered dataset\n * reference.\n *\n * @deprecated Use `AgentOptimizationDatasetInputType` instead.\n */\nexport type OptimizationDatasetInputType = AgentOptimizationDatasetInputType;\n/**\n * Optimization dataset items supplied directly in the request body.\n *\n * @deprecated Use `AgentOptimizationInlineDatasetInput` instead.\n */\nexport type OptimizationInlineDatasetInput = AgentOptimizationInlineDatasetInput;\n/**\n * An inline optimization dataset item containing a query, expected answer, and evaluation criteria.\n *\n * @deprecated Use `AgentOptimizationDatasetItem` instead.\n */\nexport type OptimizationDatasetItem = AgentOptimizationDatasetItem;\n/**\n * A named evaluation instruction used to score an optimization dataset item.\n *\n * @deprecated Use `AgentOptimizationDatasetCriterion` instead.\n */\nexport type OptimizationDatasetCriterion = AgentOptimizationDatasetCriterion;\n/**\n * A reference to a registered Foundry dataset by name and optional version for agent optimization.\n *\n * @deprecated Use `AgentOptimizationReferenceDatasetInput` instead.\n */\nexport type OptimizationReferenceDatasetInput = AgentOptimizationReferenceDatasetInput;\n/**\n * A reference to an evaluator by name and optional version for an agent optimization job.\n *\n * @deprecated Use `AgentOptimizationEvaluatorRef` instead.\n */\nexport type OptimizationEvaluatorRef = AgentOptimizationEvaluatorRef;\n/**\n * Settings that control candidate generation, model selection, and evaluation for an agent\n * optimization job.\n *\n * @deprecated Use `AgentOptimizationOptions` instead.\n */\nexport type OptimizationOptions = AgentOptimizationOptions;\n/**\n * The evaluated candidates and identifiers of the baseline and best candidate from an optimization\n * job.\n *\n * @deprecated Use `AgentOptimizationJobResult` instead.\n */\nexport type OptimizationJobResult = AgentOptimizationJobResult;\n/**\n * The configuration changes and aggregated evaluation results for an agent optimization candidate.\n *\n * @deprecated Use `AgentOptimizationCandidate` instead.\n */\nexport type OptimizationCandidate = AgentOptimizationCandidate;\n/**\n * A progress snapshot containing completed candidate counts, the best score, and elapsed execution\n * time.\n *\n * @deprecated Use `AgentOptimizationJobProgress` instead.\n */\nexport type OptimizationJobProgress = AgentOptimizationJobProgress;\n/**\n * A summary of an agent optimization job returned by a list operation.\n *\n * @deprecated Use `AgentOptimizationJobListItem` instead.\n */\nexport type OptimizationJobListItem = AgentOptimizationJobListItem;\n\nexport function agentOptimizationJobListItemDeserializer(item: any): AgentOptimizationJobListItem {\n return {\n id: item[\"id\"],\n status: item[\"status\"],\n error: !item[\"error\"] ? item[\"error\"] : errorDeserializer(item[\"error\"]),\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n progress: !item[\"progress\"]\n ? item[\"progress\"]\n : agentOptimizationJobProgressDeserializer(item[\"progress\"]),\n agent: !item[\"agent\"] ? item[\"agent\"] : optimizedAgentIdentifierDeserializer(item[\"agent\"]),\n };\n}\n\n/** model interface UpdateToolboxRequest */\nexport interface UpdateToolboxRequest {\n /** The name of the toolbox to update. */\n name: string;\n /** The version identifier that the toolbox should point to. When set, the toolbox's default version will resolve to this version instead of the latest. */\n default_version: string;\n}\n\nexport function updateToolboxRequestSerializer(item: UpdateToolboxRequest): any {\n return { default_version: item[\"default_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/** Type of AgentType */\nexport type AgentType =\n \"agent\" | \"agent.version\" | \"agent.deleted\" | \"agent.version.deleted\" | \"agent.container\";\n\n/** Feature opt-in keys for agent definition operations supporting conditional preview features. */\nexport type AgentDefinitionOptInKeys =\n | \"WorkflowAgents=V1Preview\"\n | \"ExternalAgents=V1Preview\"\n | \"DraftAgents=V1Preview\"\n | \"VoiceAgents=V1Preview\"\n | \"DigitalWorker=V1Preview\"\n | \"GitHubCopilot=V1Preview\"\n | \"Skills=V1Preview\";\n\n/** Type of PageOrder */\nexport type PageOrder = \"asc\" | \"desc\";\n\n/** Type of FoundryFeaturesOptInKeys */\nexport type FoundryFeaturesOptInKeys =\n | \"Evaluations=V1Preview\"\n | \"Schedules=V1Preview\"\n | \"RedTeams=V1Preview\"\n | \"Insights=V1Preview\"\n | \"AgentInsights=V1Preview\"\n | \"MemoryStores=V1Preview\"\n | \"Routines=V1Preview\"\n | \"Routines=V2Preview\"\n | \"Skills=V1Preview\"\n | \"DataGenerationJobs=V1Preview\"\n | \"Models=V1Preview\"\n | \"AgentsOptimization=V2Preview\"\n | \"ModelRouterControls=V1Preview\";\n\n/** The type of pending upload. */\nexport type PendingUploadType = \"None\" | \"BlobReference\" | \"TemporaryBlobReference\";\n/** Type of MemoryStoreType */\nexport type MemoryStoreType =\n | \"memory_store\"\n | \"memory_store.deleted\"\n | \"memory_store.scope.deleted\"\n | \"memory_store.item.deleted\";\n\n/** Microsoft Foundry API versions */\nexport enum KnownApiVersions {\n /** Microsoft Foundry API version v1. */\n v1 = \"v1\",\n}\n\n/** The downloaded agent session file, exposed as a browser Blob or Node.js readable stream. */\nexport type AgentsDownloadSessionFileResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/** The binary Microsoft 365 app package generated for a Foundry agent. */\nexport type GetMicrosoft365PackageResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/**\n * The downloaded ZIP archive containing hosted agent code, exposed as a browser Blob or Node.js\n * readable stream.\n */\nexport type AgentsDownloadAgentCodeResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/**\n * The ZIP archive for a specified skill version, exposed as a browser Blob or Node.js readable\n * stream.\n */\nexport type DownloadVersionResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/**\n * The ZIP archive for the default version of a skill, exposed as a browser Blob or Node.js readable\n * stream.\n */\nexport type BetaSkillsDownloadResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/** Type of CallableToolAllowedCaller */\nexport type CallableToolAllowedCaller = \"direct\" | \"programmatic\";\n\n/** model interface ProgrammaticToolCallingParam */\nexport interface ProgrammaticToolCallingParam extends Tool {\n /** The type of the tool. Always `programmatic_tool_calling`. */\n type: \"programmatic_tool_calling\";\n}\n\n/** model interface SpecificProgrammaticToolCallingParam */\nexport interface SpecificProgrammaticToolCallingParam extends ToolChoiceParam {\n /** The tool to call. Always `programmatic_tool_calling`. */\n type: \"programmatic_tool_calling\";\n}\n\n/** Alias for ReasoningModeEnum */\nexport type ReasoningModeEnum = string | \"standard\" | \"pro\";\n\nexport function programmaticToolCallingParamDeserializer(item: any): ProgrammaticToolCallingParam {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function programmaticToolCallingParamSerializer(item: ProgrammaticToolCallingParam): any {\n return { type: item[\"type\"] };\n}\n\nexport function reasoningModeEnumDeserializer(item: any): ReasoningModeEnum {\n return item;\n}\n\nexport function reasoningModeEnumSerializer(item: ReasoningModeEnum): any {\n return item;\n}\n\nexport function specificProgrammaticToolCallingParamDeserializer(\n item: any,\n): SpecificProgrammaticToolCallingParam {\n return {\n type: item[\"type\"],\n };\n}\n\nexport function specificProgrammaticToolCallingParamSerializer(\n item: SpecificProgrammaticToolCallingParam,\n): any {\n return { type: item[\"type\"] };\n}\n\n/** Session defaults applied to sessions created for a hosted agent version. */\nexport interface SessionConfiguration {\n /**\n * The idle duration, in seconds, before a session's sandbox is suspended. Optional \u2014 when\n * unset, the server default of 900 seconds is used. Must be between 120 and 3600 seconds\n * (inclusive).\n */\n idle_timeout_seconds?: number;\n}\n\nexport function sessionConfigurationSerializer(item: SessionConfiguration): any {\n return { idle_timeout_seconds: item[\"idle_timeout_seconds\"] };\n}\n\nexport function sessionConfigurationDeserializer(item: any): SessionConfiguration {\n return {\n idle_timeout_seconds: item[\"idle_timeout_seconds\"],\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\";\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 * When `true`, Foundry sends its credentials when fetching the remote\n * agent's Agent Card. The service defaults to `false` if a value is not\n * specified by the caller (anonymous fetch).\n */\n send_credentials_for_agent_card?: boolean;\n /** The A2A protocol version supported by the agent. */\n a2a_version: A2AProtocolVersion;\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 send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n a2a_version: item[\"a2a_version\"],\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 send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n a2a_version: item[\"a2a_version\"],\n };\n}\n\n/** Supported A2A protocol versions. */\nexport type A2AProtocolVersion = \"1.0\";\n\n/** A WebIQ server-side tool. */\nexport interface WebIQPreviewTool extends Tool {\n /** The object type, which is always 'web_iq_preview'. */\n type: \"web_iq_preview\";\n /** The ID of the WebIQ project connection. */\n project_connection_id: string;\n /** The label of the WebIQ MCP server to connect to. When omitted, the service defaults to connection name extracted from project_connection_id. */\n server_label?: string;\n /** Whether the agent requires approval before executing actions. When omitted, the service defaults to \"always\". */\n require_approval?: MCPToolRequireApproval | string;\n}\n\nexport function webIQPreviewToolSerializer(item: WebIQPreviewTool): any {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _webIQPreviewToolRequireApprovalSerializer(item[\"require_approval\"]),\n };\n}\n\nexport function webIQPreviewToolDeserializer(item: any): WebIQPreviewTool {\n return {\n type: item[\"type\"],\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _webIQPreviewToolRequireApprovalDeserializer(item[\"require_approval\"]),\n };\n}\n\n/** Alias for _WebIQPreviewToolRequireApproval */\nexport type _WebIQPreviewToolRequireApproval = MCPToolRequireApproval | string;\n\nexport function _webIQPreviewToolRequireApprovalSerializer(\n item: _WebIQPreviewToolRequireApproval,\n): any {\n return item;\n}\n\nexport function _webIQPreviewToolRequireApprovalDeserializer(\n item: any,\n): _WebIQPreviewToolRequireApproval {\n return item;\n}\n\n/** An access boundary for the activity protocol. */\nexport type ActivityProtocolAccessBoundary =\n | \"read.1on1.developers\"\n | \"read.1on1.manager\"\n | \"read.1on1.allowlisted\"\n | \"read.1on1.tenant\"\n | \"write.1on1.developers\"\n | \"write.1on1.manager\"\n | \"write.1on1.allowlisted\"\n | \"write.1on1.tenant\"\n | \"read.group.developers\"\n | \"read.group.allowlisted\"\n | \"read.group.manager-invited\"\n | \"read.group.manager-present\"\n | \"read.group.tenant\"\n | \"write.group.developers\"\n | \"write.group.allowlisted\"\n | \"write.group.manager-invited\"\n | \"write.group.manager-present\"\n | \"write.group.tenant\";\n\n/** The Microsoft Agent Certification review status of the Microsoft 365 store title published for an agent. */\nexport type PublishApprovalStatus =\n \"not_published\" | \"pending\" | \"approved\" | \"rejected\" | \"no_approval_needed\";\n\n/** A shell tool stored in a toolbox. This model is additive to toolbox configuration and does not modify the OpenAI tool contract or existing toolbox tool definitions. */\nexport interface ShellToolboxTool extends ToolboxTool {\n /** The type of the tool. Always `shell`. */\n type: \"shell\";\n /**\n * The invocation modes permitted to call this shell tool: direct calls, programmatic calls, or\n * both.\n */\n allowed_callers?: CallableToolAllowedCaller[];\n /** The environment in which shell commands are executed. Specify an automatically provisioned container or an existing container. */\n environment: ToolboxShellEnvironmentUnion;\n}\n\nexport function shellToolboxToolSerializer(item: ShellToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n environment: toolboxShellEnvironmentUnionSerializer(item[\"environment\"]),\n };\n}\n\nexport function shellToolboxToolDeserializer(item: any): ShellToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n environment: toolboxShellEnvironmentUnionDeserializer(item[\"environment\"]),\n };\n}\n\n/** An execution environment for a shell tool stored in a toolbox. This environment model is scoped to toolbox configuration and does not modify the OpenAI shell environment contract. */\nexport interface ToolboxShellEnvironment {\n /** The type of the shell execution environment. */\n /** The discriminator possible values: container_auto, container_reference */\n type: string;\n}\n\nexport function toolboxShellEnvironmentSerializer(item: ToolboxShellEnvironment): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolboxShellEnvironmentDeserializer(item: any): ToolboxShellEnvironment {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolboxShellEnvironmentUnion */\nexport type ToolboxShellEnvironmentUnion =\n | ToolboxShellContainerAutoEnvironment\n | ToolboxShellContainerReferenceEnvironment\n | ToolboxShellEnvironment;\n\nexport function toolboxShellEnvironmentUnionSerializer(item: ToolboxShellEnvironmentUnion): any {\n switch (item.type) {\n case \"container_auto\":\n return toolboxShellContainerAutoEnvironmentSerializer(\n item as ToolboxShellContainerAutoEnvironment,\n );\n\n case \"container_reference\":\n return toolboxShellContainerReferenceEnvironmentSerializer(\n item as ToolboxShellContainerReferenceEnvironment,\n );\n\n default:\n return toolboxShellEnvironmentSerializer(item);\n }\n}\n\nexport function toolboxShellEnvironmentUnionDeserializer(item: any): ToolboxShellEnvironmentUnion {\n switch (item[\"type\"]) {\n case \"container_auto\":\n return toolboxShellContainerAutoEnvironmentDeserializer(\n item as ToolboxShellContainerAutoEnvironment,\n );\n\n case \"container_reference\":\n return toolboxShellContainerReferenceEnvironmentDeserializer(\n item as ToolboxShellContainerReferenceEnvironment,\n );\n\n default:\n return toolboxShellEnvironmentDeserializer(item);\n }\n}\n\n/** An automatically provisioned container environment for a shell tool stored in a toolbox. */\nexport interface ToolboxShellContainerAutoEnvironment extends ToolboxShellEnvironment {\n /** The type of the shell execution environment. Always `container_auto`. */\n type: \"container_auto\";\n /** An optional list of uploaded files to make available to your code. */\n file_ids?: string[];\n /** The memory limit to apply to the automatically provisioned shell container. */\n memory_limit?: ContainerMemoryLimit;\n /** An optional list of skills referenced by id or inline data. */\n skills?: ContainerSkillUnion[];\n /** The network access policy for the container. When omitted, the service defaults to disabled outbound network access. */\n network_policy?: ToolboxShellNetworkPolicyUnion;\n}\n\nexport function toolboxShellContainerAutoEnvironmentSerializer(\n item: ToolboxShellContainerAutoEnvironment,\n): 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 memory_limit: item[\"memory_limit\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : containerSkillUnionArraySerializer(item[\"skills\"]),\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : toolboxShellNetworkPolicyUnionSerializer(item[\"network_policy\"]),\n };\n}\n\nexport function toolboxShellContainerAutoEnvironmentDeserializer(\n item: any,\n): ToolboxShellContainerAutoEnvironment {\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 memory_limit: item[\"memory_limit\"],\n skills: !item[\"skills\"] ? item[\"skills\"] : containerSkillUnionArrayDeserializer(item[\"skills\"]),\n network_policy: !item[\"network_policy\"]\n ? item[\"network_policy\"]\n : toolboxShellNetworkPolicyUnionDeserializer(item[\"network_policy\"]),\n };\n}\n\n/** Network access policy for an automatically provisioned toolbox shell container. */\nexport interface ToolboxShellNetworkPolicy {\n /** The type of network access policy. */\n /** The discriminator possible values: disabled */\n type: string;\n}\n\nexport function toolboxShellNetworkPolicySerializer(item: ToolboxShellNetworkPolicy): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolboxShellNetworkPolicyDeserializer(item: any): ToolboxShellNetworkPolicy {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for ToolboxShellNetworkPolicyUnion */\nexport type ToolboxShellNetworkPolicyUnion =\n ToolboxShellNetworkPolicyDisabled | ToolboxShellNetworkPolicy;\n\nexport function toolboxShellNetworkPolicyUnionSerializer(\n item: ToolboxShellNetworkPolicyUnion,\n): any {\n switch (item.type) {\n case \"disabled\":\n return toolboxShellNetworkPolicyDisabledSerializer(item as ToolboxShellNetworkPolicyDisabled);\n\n default:\n return toolboxShellNetworkPolicySerializer(item);\n }\n}\n\nexport function toolboxShellNetworkPolicyUnionDeserializer(\n item: any,\n): ToolboxShellNetworkPolicyUnion {\n switch (item[\"type\"]) {\n case \"disabled\":\n return toolboxShellNetworkPolicyDisabledDeserializer(\n item as ToolboxShellNetworkPolicyDisabled,\n );\n\n default:\n return toolboxShellNetworkPolicyDeserializer(item);\n }\n}\n\n/** A network policy that disables outbound access from a toolbox shell container. */\nexport interface ToolboxShellNetworkPolicyDisabled extends ToolboxShellNetworkPolicy {\n /** The type of network access policy. Always `disabled`. */\n type: \"disabled\";\n}\n\nexport function toolboxShellNetworkPolicyDisabledSerializer(\n item: ToolboxShellNetworkPolicyDisabled,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function toolboxShellNetworkPolicyDisabledDeserializer(\n item: any,\n): ToolboxShellNetworkPolicyDisabled {\n return {\n type: item[\"type\"],\n };\n}\n\n/** An existing container environment for a shell tool stored in a toolbox. */\nexport interface ToolboxShellContainerReferenceEnvironment extends ToolboxShellEnvironment {\n /** The type of the shell execution environment. Always `container_reference`. */\n type: \"container_reference\";\n /** The ID of the referenced container. */\n container_id: string;\n}\n\nexport function toolboxShellContainerReferenceEnvironmentSerializer(\n item: ToolboxShellContainerReferenceEnvironment,\n): any {\n return { type: item[\"type\"], container_id: item[\"container_id\"] };\n}\n\nexport function toolboxShellContainerReferenceEnvironmentDeserializer(\n item: any,\n): ToolboxShellContainerReferenceEnvironment {\n return {\n type: item[\"type\"],\n container_id: item[\"container_id\"],\n };\n}\n\n/** An A2A tool stored in a toolbox. */\nexport interface A2AToolboxTool extends ToolboxTool {\n /** The type of the A2A toolbox tool. Always `a2a`. */\n type: \"a2a\";\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 * When `true`, Foundry sends its credentials when fetching the remote\n * agent's Agent Card. The service defaults to `false` if a value is not\n * specified by the caller (anonymous fetch).\n */\n send_credentials_for_agent_card?: boolean;\n /** The A2A protocol version supported by the agent. */\n a2a_version: A2AProtocolVersion;\n}\n\nexport function a2AToolboxToolSerializer(item: A2AToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n a2a_version: item[\"a2a_version\"],\n };\n}\n\nexport function a2AToolboxToolDeserializer(item: any): A2AToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n base_url: item[\"base_url\"],\n agent_card_path: item[\"agent_card_path\"],\n project_connection_id: item[\"project_connection_id\"],\n send_credentials_for_agent_card: item[\"send_credentials_for_agent_card\"],\n a2a_version: item[\"a2a_version\"],\n };\n}\n\n/** A WebIQ tool stored in a toolbox. */\nexport interface WebIQPreviewToolboxTool extends ToolboxTool {\n /** The toolbox tool type. Always `web_iq_preview` for a WebIQ tool. */\n type: \"web_iq_preview\";\n /** The ID of the WebIQ project connection. */\n project_connection_id: string;\n /** The label of the WebIQ MCP server to connect to. When omitted, the service defaults to connection name extracted from project_connection_id. */\n server_label?: string;\n /** Whether the agent requires approval before executing actions. When omitted, the service defaults to \"always\". */\n require_approval?: MCPToolRequireApproval | string;\n}\n\nexport function webIQPreviewToolboxToolSerializer(item: WebIQPreviewToolboxTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _webIQPreviewToolRequireApprovalSerializer(item[\"require_approval\"]),\n };\n}\n\nexport function webIQPreviewToolboxToolDeserializer(item: any): WebIQPreviewToolboxTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n project_connection_id: item[\"project_connection_id\"],\n server_label: item[\"server_label\"],\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _webIQPreviewToolRequireApprovalDeserializer(item[\"require_approval\"]),\n };\n}\n\n/**\n * The voice agent definition. Its configuration (model, instructions, audio, tools, and optional avatar) drives a\n * managed speech-to-speech experience. Establish realtime voice sessions through\n * `GET /agents/{agent_name}/endpoint/protocols/voice`. Every create or update produces a new immutable version.\n */\nexport interface VoiceAgentDefinition extends AgentDefinition {\n /** The kind discriminator for a voice agent definition. Always `voice`. */\n kind: \"voice\";\n /** How the model backing this voice agent is served. Required with `model` for a model-backed voice agent and omitted when `conversation_engine` is provided. This is independent of the architecture (realtime or cascaded), which the service derives from the selected model. */\n model_type?: VoiceModelType;\n /** The model to use for this agent. Required with `model_type` for a model-backed voice agent and omitted when `conversation_engine` is provided. The model must support realtime or cascaded voice. */\n model?: string;\n /** The engine that owns conversation handling for this voice agent. Exactly one of this property and the model-backed configuration (`model_type` with `model`) must be provided. When this property is provided, `model_type`, `model`, `instructions`, `tools`, and `tool_choice` must be omitted, and `greeting.tool_choice` cannot be `required`, because the engine owns the conversation logic. The initial implementation supports a hosted-agent engine. */\n conversation_engine?: VoiceConversationEngineUnion;\n /** A system (or developer) message inserted into the model's context. Supports template substitution via `structured_inputs`, rendered per session before the live session starts. */\n instructions?: string;\n /** Optional session-start greeting. Template mode speaks exact rendered text; LLM-generated mode asks the session model to author the opening response and may use configured tools. */\n greeting?: VoiceAgentGreetingConfigUnion;\n /**\n * The audio configuration, including input and output formats, voice, turn detection, noise reduction, and\n * transcription. These values are session defaults; a client may override supported fields when connecting.\n */\n audio?: VoiceAgentAudioConfig;\n /**\n * The output modalities the agent produces. Defaults to `[\"audio\"]`. `animation` and `avatar` are available\n * when an avatar is configured.\n */\n output_modalities?: VoiceOutputModality[];\n /** The maximum output-token count for one response. */\n max_output_tokens?: VoiceAgentMaxOutputTokens;\n /** Additional fields to include in service outputs. */\n include?: VoiceAgentSessionIncludeOption[];\n /** Interim-response settings for latency and tool execution. */\n interim_response?: VoiceAgentInterimResponseConfigUnion;\n /** Optional avatar configuration. These values are session defaults and may be overridden when connecting. */\n avatar?: VoiceAgentAvatarConfig;\n /**\n * The tools the voice agent may use. Supported tool kinds are `function` (executed by the client), `mcp`,\n * `system` (service-managed session controls), and `toolbox`. Server-side tools such as `web_search`,\n * `azure_ai_search`, and `openapi` are provided through a toolbox rather than declared directly.\n */\n tools?: VoiceAgentToolUnion[];\n /**\n * How the model chooses tools for generated responses. `none` prevents tool calls, `auto` lets the model decide,\n * `required` requires at least one tool call, and a specific function or MCP tool can be selected with an object.\n * Defaults to `auto`.\n */\n tool_choice?: VoiceAgentToolChoice;\n /** Whether the model may call multiple tools in parallel. */\n parallel_tool_calls?: boolean;\n /** Set of structured inputs that participate in prompt template substitution, rendered per session before the live session starts. */\n structured_inputs?: Record<string, StructuredInputDefinition>;\n /** Optional configuration for sibling Foundry text agents that this voice agent may consult as background specialists. */\n subagent_config?: VoiceAgentSubagentConfig;\n /**\n * Whether conversations with this agent are persisted. A single, all-or-nothing persistence switch that defaults to\n * `false` (privacy-safe: off by default). When `true`, Foundry persists the full conversation \u2014 the transcript/event\n * timeline and raw audio. When `false`, nothing is persisted and no conversation is surfaced. There is no separate\n * audio-logging control; audio is persisted only as part of this switch. Latency/performance telemetry (e.g.\n * time-to-first-audio, inter-token latency, interruption) is observability-only (customer trace / App Insights) and\n * is not part of the persisted conversation content.\n */\n store?: boolean;\n}\n\nexport function voiceAgentDefinitionSerializer(item: VoiceAgentDefinition): any {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"] ? item[\"rai_config\"] : raiConfigSerializer(item[\"rai_config\"]),\n model_type: item[\"model_type\"],\n model: item[\"model\"],\n conversation_engine: !item[\"conversation_engine\"]\n ? item[\"conversation_engine\"]\n : voiceConversationEngineUnionSerializer(item[\"conversation_engine\"]),\n instructions: item[\"instructions\"],\n greeting: !item[\"greeting\"]\n ? item[\"greeting\"]\n : voiceAgentGreetingConfigUnionSerializer(item[\"greeting\"]),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceAgentAudioConfigSerializer(item[\"audio\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : voiceAgentMaxOutputTokensSerializer(item[\"max_output_tokens\"]),\n include: !item[\"include\"]\n ? item[\"include\"]\n : item[\"include\"].map((p: any) => {\n return p;\n }),\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionSerializer(item[\"interim_response\"]),\n avatar: !item[\"avatar\"] ? item[\"avatar\"] : voiceAgentAvatarConfigSerializer(item[\"avatar\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArraySerializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceSerializer(item[\"tool_choice\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordSerializer(item[\"structured_inputs\"]),\n subagent_config: !item[\"subagent_config\"]\n ? item[\"subagent_config\"]\n : voiceAgentSubagentConfigSerializer(item[\"subagent_config\"]),\n store: item[\"store\"],\n };\n}\n\nexport function voiceAgentDefinitionDeserializer(item: any): VoiceAgentDefinition {\n return {\n kind: item[\"kind\"],\n rai_config: !item[\"rai_config\"]\n ? item[\"rai_config\"]\n : raiConfigDeserializer(item[\"rai_config\"]),\n model_type: item[\"model_type\"],\n model: item[\"model\"],\n conversation_engine: !item[\"conversation_engine\"]\n ? item[\"conversation_engine\"]\n : voiceConversationEngineUnionDeserializer(item[\"conversation_engine\"]),\n instructions: item[\"instructions\"],\n greeting: !item[\"greeting\"]\n ? item[\"greeting\"]\n : voiceAgentGreetingConfigUnionDeserializer(item[\"greeting\"]),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceAgentAudioConfigDeserializer(item[\"audio\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : voiceAgentMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n include: !item[\"include\"]\n ? item[\"include\"]\n : item[\"include\"].map((p: any) => {\n return p;\n }),\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionDeserializer(item[\"interim_response\"]),\n avatar: !item[\"avatar\"] ? item[\"avatar\"] : voiceAgentAvatarConfigDeserializer(item[\"avatar\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArrayDeserializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceDeserializer(item[\"tool_choice\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : structuredInputDefinitionRecordDeserializer(item[\"structured_inputs\"]),\n subagent_config: !item[\"subagent_config\"]\n ? item[\"subagent_config\"]\n : voiceAgentSubagentConfigDeserializer(item[\"subagent_config\"]),\n store: item[\"store\"],\n };\n}\n\n/**\n * How the model backing a voice agent is served. This is independent of the architecture (realtime or cascaded),\n * which the service derives from the selected model.\n */\nexport type VoiceModelType = \"managed\" | \"self_deployed\";\n\n/** An engine that owns conversation handling for a voice agent. */\nexport interface VoiceConversationEngine {\n /** The conversation engine type. */\n /** The discriminator possible values: hosted_agent */\n type: string;\n}\n\nexport function voiceConversationEngineSerializer(item: VoiceConversationEngine): any {\n return { type: item[\"type\"] };\n}\n\nexport function voiceConversationEngineDeserializer(item: any): VoiceConversationEngine {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for VoiceConversationEngineUnion */\nexport type VoiceConversationEngineUnion =\n VoiceHostedAgentConversationEngine | VoiceConversationEngine;\n\nexport function voiceConversationEngineUnionSerializer(item: VoiceConversationEngineUnion): any {\n switch (item.type) {\n case \"hosted_agent\":\n return voiceHostedAgentConversationEngineSerializer(\n item as VoiceHostedAgentConversationEngine,\n );\n\n default:\n return voiceConversationEngineSerializer(item);\n }\n}\n\nexport function voiceConversationEngineUnionDeserializer(item: any): VoiceConversationEngineUnion {\n switch (item[\"type\"]) {\n case \"hosted_agent\":\n return voiceHostedAgentConversationEngineDeserializer(\n item as VoiceHostedAgentConversationEngine,\n );\n\n default:\n return voiceConversationEngineDeserializer(item);\n }\n}\n\n/** A closed reference to the hosted text agent that owns conversation handling for a voice agent. The hosted agent is resolved within the same project and must support the `invocations_ws` protocol, Voice Live compatibility, and Bridge Protocol 1.0. */\nexport interface VoiceHostedAgentConversationEngine extends VoiceConversationEngine {\n /** Selects a hosted Foundry agent as the conversation engine. */\n type: \"hosted_agent\";\n /** The non-empty DNS-like name of the target hosted text agent in the same project. */\n name: string;\n /** The target agent version. Omit this property to select the latest version when the voice session starts. When supplied, use a positive integer or `draft-{positive-unix-timestamp}` whose numeric component fits in a signed 64-bit integer. */\n version?: string;\n /** Additional properties */\n additionalProperties?: Record<string, any>;\n}\n\nexport function voiceHostedAgentConversationEngineSerializer(\n item: VoiceHostedAgentConversationEngine,\n): any {\n return {\n ...serializeRecord(item.additionalProperties ?? {}),\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\nexport function voiceHostedAgentConversationEngineDeserializer(\n item: any,\n): VoiceHostedAgentConversationEngine {\n return {\n additionalProperties: serializeRecord(item, [\"type\", \"name\", \"version\"]),\n type: item[\"type\"],\n name: item[\"name\"],\n version: item[\"version\"],\n };\n}\n\n/** Session-start greeting configuration for a voice agent. */\nexport interface VoiceAgentGreetingConfig {\n /** The greeting mode. */\n /** The discriminator possible values: template, llm_generated */\n type: string;\n}\n\nexport function voiceAgentGreetingConfigSerializer(item: VoiceAgentGreetingConfig): any {\n return { type: item[\"type\"] };\n}\n\nexport function voiceAgentGreetingConfigDeserializer(item: any): VoiceAgentGreetingConfig {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for VoiceAgentGreetingConfigUnion */\nexport type VoiceAgentGreetingConfigUnion =\n | VoiceAgentTemplateGreetingConfig\n | VoiceAgentLlmGeneratedGreetingConfig\n | VoiceAgentGreetingConfig;\n\nexport function voiceAgentGreetingConfigUnionSerializer(item: VoiceAgentGreetingConfigUnion): any {\n switch (item.type) {\n case \"template\":\n return voiceAgentTemplateGreetingConfigSerializer(item as VoiceAgentTemplateGreetingConfig);\n\n case \"llm_generated\":\n return voiceAgentLlmGeneratedGreetingConfigSerializer(\n item as VoiceAgentLlmGeneratedGreetingConfig,\n );\n\n default:\n return voiceAgentGreetingConfigSerializer(item);\n }\n}\n\nexport function voiceAgentGreetingConfigUnionDeserializer(\n item: any,\n): VoiceAgentGreetingConfigUnion {\n switch (item[\"type\"]) {\n case \"template\":\n return voiceAgentTemplateGreetingConfigDeserializer(item as VoiceAgentTemplateGreetingConfig);\n\n case \"llm_generated\":\n return voiceAgentLlmGeneratedGreetingConfigDeserializer(\n item as VoiceAgentLlmGeneratedGreetingConfig,\n );\n\n default:\n return voiceAgentGreetingConfigDeserializer(item);\n }\n}\n\n/** A deterministic greeting rendered with the voice agent's structured inputs and synthesized without model-authored generation. */\nexport interface VoiceAgentTemplateGreetingConfig extends VoiceAgentGreetingConfig {\n /** The greeting type. Always `template` for a greeting rendered from a text template. */\n type: \"template\";\n /** The Handlebars text template spoken at session start. */\n text: string;\n}\n\nexport function voiceAgentTemplateGreetingConfigSerializer(\n item: VoiceAgentTemplateGreetingConfig,\n): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\nexport function voiceAgentTemplateGreetingConfigDeserializer(\n item: any,\n): VoiceAgentTemplateGreetingConfig {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n };\n}\n\n/** A greeting authored by the session model from a scoped opening-turn prompt. */\nexport interface VoiceAgentLlmGeneratedGreetingConfig extends VoiceAgentGreetingConfig {\n /** The greeting type. Always `llm_generated` for a greeting generated by the session model. */\n type: \"llm_generated\";\n /** The Handlebars prompt that guides the opening turn. */\n prompt: string;\n /** The tool-selection policy for the opening response. Defaults to `none`. */\n tool_choice?: VoiceAgentToolChoice;\n}\n\nexport function voiceAgentLlmGeneratedGreetingConfigSerializer(\n item: VoiceAgentLlmGeneratedGreetingConfig,\n): any {\n return {\n type: item[\"type\"],\n prompt: item[\"prompt\"],\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceSerializer(item[\"tool_choice\"]),\n };\n}\n\nexport function voiceAgentLlmGeneratedGreetingConfigDeserializer(\n item: any,\n): VoiceAgentLlmGeneratedGreetingConfig {\n return {\n type: item[\"type\"],\n prompt: item[\"prompt\"],\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceDeserializer(item[\"tool_choice\"]),\n };\n}\n\n/** Tool-selection behavior for a voice agent. */\nexport type VoiceAgentToolChoice =\n \"none\" | \"auto\" | \"required\" | ToolChoiceFunction | ToolChoiceMCP;\n\nexport function voiceAgentToolChoiceSerializer(item: VoiceAgentToolChoice): any {\n return item;\n}\n\nexport function voiceAgentToolChoiceDeserializer(item: any): VoiceAgentToolChoice {\n return item;\n}\n\n/** The audio configuration for a voice agent. These values are session defaults and may be overridden when connecting. */\nexport interface VoiceAgentAudioConfig {\n /** Input (microphone) audio configuration. */\n input?: VoiceAgentAudioInputConfig;\n /** Output (agent speech) audio configuration. */\n output?: VoiceAgentAudioOutputConfig;\n}\n\nexport function voiceAgentAudioConfigSerializer(item: VoiceAgentAudioConfig): any {\n return {\n input: !item[\"input\"] ? item[\"input\"] : voiceAgentAudioInputConfigSerializer(item[\"input\"]),\n output: !item[\"output\"]\n ? item[\"output\"]\n : voiceAgentAudioOutputConfigSerializer(item[\"output\"]),\n };\n}\n\nexport function voiceAgentAudioConfigDeserializer(item: any): VoiceAgentAudioConfig {\n return {\n input: !item[\"input\"] ? item[\"input\"] : voiceAgentAudioInputConfigDeserializer(item[\"input\"]),\n output: !item[\"output\"]\n ? item[\"output\"]\n : voiceAgentAudioOutputConfigDeserializer(item[\"output\"]),\n };\n}\n\n/** Input audio configuration for a voice agent. */\nexport interface VoiceAgentAudioInputConfig {\n /** The input audio format. */\n format?: RealtimeAudioFormatsUnion;\n /** Input noise reduction. Set to null to disable. */\n noise_reduction?: VoiceAgentNoiseReduction;\n /** Turn (end-of-speech) detection. Server-side turn detection is enabled by default; set to null to disable it, in which case the client must trigger responses manually. */\n turn_detection?: VoiceAgentTurnDetectionConfigUnion;\n /** Optional server-side echo cancellation settings. */\n echo_cancellation?: VoiceAgentEchoCancellation;\n /** Asynchronous input-audio transcription. Set to null to disable transcription. */\n transcription?: VoiceAgentInputTranscription;\n}\n\nexport function voiceAgentAudioInputConfigSerializer(item: VoiceAgentAudioInputConfig): any {\n return {\n format: !item[\"format\"] ? item[\"format\"] : realtimeAudioFormatsUnionSerializer(item[\"format\"]),\n noise_reduction: !item[\"noise_reduction\"]\n ? item[\"noise_reduction\"]\n : voiceAgentNoiseReductionSerializer(item[\"noise_reduction\"]),\n turn_detection: !item[\"turn_detection\"]\n ? item[\"turn_detection\"]\n : voiceAgentTurnDetectionConfigUnionSerializer(item[\"turn_detection\"]),\n echo_cancellation: !item[\"echo_cancellation\"]\n ? item[\"echo_cancellation\"]\n : voiceAgentEchoCancellationSerializer(item[\"echo_cancellation\"]),\n transcription: !item[\"transcription\"]\n ? item[\"transcription\"]\n : voiceAgentInputTranscriptionSerializer(item[\"transcription\"]),\n };\n}\n\nexport function voiceAgentAudioInputConfigDeserializer(item: any): VoiceAgentAudioInputConfig {\n return {\n format: !item[\"format\"]\n ? item[\"format\"]\n : realtimeAudioFormatsUnionDeserializer(item[\"format\"]),\n noise_reduction: !item[\"noise_reduction\"]\n ? item[\"noise_reduction\"]\n : voiceAgentNoiseReductionDeserializer(item[\"noise_reduction\"]),\n turn_detection: !item[\"turn_detection\"]\n ? item[\"turn_detection\"]\n : voiceAgentTurnDetectionConfigUnionDeserializer(item[\"turn_detection\"]),\n echo_cancellation: !item[\"echo_cancellation\"]\n ? item[\"echo_cancellation\"]\n : voiceAgentEchoCancellationDeserializer(item[\"echo_cancellation\"]),\n transcription: !item[\"transcription\"]\n ? item[\"transcription\"]\n : voiceAgentInputTranscriptionDeserializer(item[\"transcription\"]),\n };\n}\n\n/** model interface RealtimeAudioFormats */\nexport interface RealtimeAudioFormats {\n /** The audio encoding used for realtime input or output. */\n type: RealtimeAudioFormatsType;\n}\n\nexport function realtimeAudioFormatsSerializer(item: RealtimeAudioFormats): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeAudioFormatsDeserializer(item: any): RealtimeAudioFormats {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RealtimeAudioFormatsUnion */\nexport type RealtimeAudioFormatsUnion =\n | RealtimeAudioFormatsAudioPcm\n | RealtimeAudioFormatsAudioPcmu\n | RealtimeAudioFormatsAudioPcma\n | RealtimeAudioFormats;\n\nexport function realtimeAudioFormatsUnionSerializer(item: RealtimeAudioFormatsUnion): any {\n switch (item.type) {\n case \"audio/pcm\":\n return realtimeAudioFormatsAudioPcmSerializer(item as RealtimeAudioFormatsAudioPcm);\n\n case \"audio/pcmu\":\n return realtimeAudioFormatsAudioPcmuSerializer(item as RealtimeAudioFormatsAudioPcmu);\n\n case \"audio/pcma\":\n return realtimeAudioFormatsAudioPcmaSerializer(item as RealtimeAudioFormatsAudioPcma);\n\n default:\n return realtimeAudioFormatsSerializer(item);\n }\n}\n\nexport function realtimeAudioFormatsUnionDeserializer(item: any): RealtimeAudioFormatsUnion {\n switch (item[\"type\"]) {\n case \"audio/pcm\":\n return realtimeAudioFormatsAudioPcmDeserializer(item as RealtimeAudioFormatsAudioPcm);\n\n case \"audio/pcmu\":\n return realtimeAudioFormatsAudioPcmuDeserializer(item as RealtimeAudioFormatsAudioPcmu);\n\n case \"audio/pcma\":\n return realtimeAudioFormatsAudioPcmaDeserializer(item as RealtimeAudioFormatsAudioPcma);\n\n default:\n return realtimeAudioFormatsDeserializer(item);\n }\n}\n\n/** Type of RealtimeAudioFormatsType */\nexport type RealtimeAudioFormatsType = \"audio/pcm\" | \"audio/pcmu\" | \"audio/pcma\";\n\n/** model interface RealtimeAudioFormatsAudioPcm */\nexport interface RealtimeAudioFormatsAudioPcm extends RealtimeAudioFormats {\n /** The PCM audio format identifier. Always `audio/pcm`. */\n type: \"audio/pcm\";\n /** The PCM sample rate in hertz. The supported value is `24000`. */\n rate?: 24000;\n}\n\nexport function realtimeAudioFormatsAudioPcmSerializer(item: RealtimeAudioFormatsAudioPcm): any {\n return { type: item[\"type\"], rate: item[\"rate\"] };\n}\n\nexport function realtimeAudioFormatsAudioPcmDeserializer(item: any): RealtimeAudioFormatsAudioPcm {\n return {\n type: item[\"type\"],\n rate: item[\"rate\"],\n };\n}\n\n/** model interface RealtimeAudioFormatsAudioPcmu */\nexport interface RealtimeAudioFormatsAudioPcmu extends RealtimeAudioFormats {\n /** The mu-law PCM audio format identifier. Always `audio/pcmu`. */\n type: \"audio/pcmu\";\n}\n\nexport function realtimeAudioFormatsAudioPcmuSerializer(item: RealtimeAudioFormatsAudioPcmu): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeAudioFormatsAudioPcmuDeserializer(\n item: any,\n): RealtimeAudioFormatsAudioPcmu {\n return {\n type: item[\"type\"],\n };\n}\n\n/** model interface RealtimeAudioFormatsAudioPcma */\nexport interface RealtimeAudioFormatsAudioPcma extends RealtimeAudioFormats {\n /** The A-law PCM audio format identifier. Always `audio/pcma`. */\n type: \"audio/pcma\";\n}\n\nexport function realtimeAudioFormatsAudioPcmaSerializer(item: RealtimeAudioFormatsAudioPcma): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeAudioFormatsAudioPcmaDeserializer(\n item: any,\n): RealtimeAudioFormatsAudioPcma {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Input audio noise reduction configuration. */\nexport interface VoiceAgentNoiseReduction {\n /** The noise reduction mode. */\n type: VoiceAgentNoiseReductionType;\n}\n\nexport function voiceAgentNoiseReductionSerializer(item: VoiceAgentNoiseReduction): any {\n return { type: item[\"type\"] };\n}\n\nexport function voiceAgentNoiseReductionDeserializer(item: any): VoiceAgentNoiseReduction {\n return {\n type: item[\"type\"],\n };\n}\n\n/** The input audio noise reduction mode. */\nexport type VoiceAgentNoiseReductionType =\n \"near_field\" | \"far_field\" | \"azure_deep_noise_suppression\";\n\n/** Turn-detection configuration for a voice agent. */\nexport interface VoiceAgentTurnDetectionConfig {\n /** The turn-detection strategy. */\n /** The discriminator possible values: server_vad, azure_semantic_vad, azure_semantic_vad_en, azure_semantic_vad_multilingual, semantic_vad */\n type: VoiceAgentTurnDetectionType;\n /** Whether the input audio buffer is truncated automatically when speech stops. */\n auto_truncate?: boolean;\n}\n\nexport function voiceAgentTurnDetectionConfigSerializer(item: VoiceAgentTurnDetectionConfig): any {\n return { type: item[\"type\"], auto_truncate: item[\"auto_truncate\"] };\n}\n\nexport function voiceAgentTurnDetectionConfigDeserializer(\n item: any,\n): VoiceAgentTurnDetectionConfig {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n };\n}\n\n/** Alias for VoiceAgentTurnDetectionConfigUnion */\nexport type VoiceAgentTurnDetectionConfigUnion =\n | VoiceAgentServerVadTurnDetection\n | VoiceAgentAzureSemanticVadTurnDetection\n | VoiceAgentAzureSemanticVadEnTurnDetection\n | VoiceAgentAzureSemanticVadMultilingualTurnDetection\n | VoiceAgentSemanticVadTurnDetection\n | VoiceAgentTurnDetectionConfig;\n\nexport function voiceAgentTurnDetectionConfigUnionSerializer(\n item: VoiceAgentTurnDetectionConfigUnion,\n): any {\n switch (item.type) {\n case \"server_vad\":\n return voiceAgentServerVadTurnDetectionSerializer(item as VoiceAgentServerVadTurnDetection);\n\n case \"azure_semantic_vad\":\n return voiceAgentAzureSemanticVadTurnDetectionSerializer(\n item as VoiceAgentAzureSemanticVadTurnDetection,\n );\n\n case \"azure_semantic_vad_en\":\n return voiceAgentAzureSemanticVadEnTurnDetectionSerializer(\n item as VoiceAgentAzureSemanticVadEnTurnDetection,\n );\n\n case \"azure_semantic_vad_multilingual\":\n return voiceAgentAzureSemanticVadMultilingualTurnDetectionSerializer(\n item as VoiceAgentAzureSemanticVadMultilingualTurnDetection,\n );\n\n case \"semantic_vad\":\n return voiceAgentSemanticVadTurnDetectionSerializer(\n item as VoiceAgentSemanticVadTurnDetection,\n );\n\n default:\n return voiceAgentTurnDetectionConfigSerializer(item);\n }\n}\n\nexport function voiceAgentTurnDetectionConfigUnionDeserializer(\n item: any,\n): VoiceAgentTurnDetectionConfigUnion {\n switch (item[\"type\"]) {\n case \"server_vad\":\n return voiceAgentServerVadTurnDetectionDeserializer(item as VoiceAgentServerVadTurnDetection);\n\n case \"azure_semantic_vad\":\n return voiceAgentAzureSemanticVadTurnDetectionDeserializer(\n item as VoiceAgentAzureSemanticVadTurnDetection,\n );\n\n case \"azure_semantic_vad_en\":\n return voiceAgentAzureSemanticVadEnTurnDetectionDeserializer(\n item as VoiceAgentAzureSemanticVadEnTurnDetection,\n );\n\n case \"azure_semantic_vad_multilingual\":\n return voiceAgentAzureSemanticVadMultilingualTurnDetectionDeserializer(\n item as VoiceAgentAzureSemanticVadMultilingualTurnDetection,\n );\n\n case \"semantic_vad\":\n return voiceAgentSemanticVadTurnDetectionDeserializer(\n item as VoiceAgentSemanticVadTurnDetection,\n );\n\n default:\n return voiceAgentTurnDetectionConfigDeserializer(item);\n }\n}\n\n/** The turn-detection strategy. Additional values may be added over time. */\nexport type VoiceAgentTurnDetectionType =\n | \"server_vad\"\n | \"semantic_vad\"\n | \"azure_semantic_vad\"\n | \"azure_semantic_vad_en\"\n | \"azure_semantic_vad_multilingual\";\n\n/** Server-side voice activity detection. */\nexport interface VoiceAgentServerVadTurnDetection extends VoiceAgentTurnDetectionConfig {\n /**\n * The activation threshold for voice activity detection. Higher values require louder audio to\n * detect speech.\n */\n threshold?: number;\n /** The amount of audio, in milliseconds, to include before the detected start of speech. */\n prefix_padding_ms?: number;\n /** The duration of silence, in milliseconds, required to detect the end of speech. */\n silence_duration_ms?: number;\n /**\n * Whether to generate a response automatically when voice activity detection identifies the end\n * of speech.\n */\n create_response?: boolean;\n /** Whether detected user speech automatically interrupts an ongoing response. */\n interrupt_response?: boolean;\n /**\n * The idle duration, in milliseconds, after the last response's audio finishes playing before an\n * automatic response is triggered.\n */\n idle_timeout_ms?: number;\n /** The turn-detection type. Always `server_vad` for server-side voice activity detection. */\n type: \"server_vad\";\n /** Minimum speech duration required to trigger detection, in milliseconds. */\n speech_duration_ms?: number;\n /** Semantic end-of-utterance detection configuration. Set to null to disable it. */\n end_of_utterance_detection?: VoiceAgentEndOfUtteranceDetection;\n}\n\nexport function voiceAgentServerVadTurnDetectionSerializer(\n item: VoiceAgentServerVadTurnDetection,\n): any {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n speech_duration_ms: item[\"speech_duration_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionSerializer(item[\"end_of_utterance_detection\"]),\n };\n}\n\nexport function voiceAgentServerVadTurnDetectionDeserializer(\n item: any,\n): VoiceAgentServerVadTurnDetection {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n speech_duration_ms: item[\"speech_duration_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionDeserializer(item[\"end_of_utterance_detection\"]),\n };\n}\n\n/** Semantic end-of-utterance detection configuration. */\nexport interface VoiceAgentEndOfUtteranceDetection {\n /** The semantic detection model. */\n model: VoiceAgentEndOfUtteranceDetectionModel;\n /** The sensitivity threshold. */\n threshold_level?: VoiceAgentEndOfUtteranceThresholdLevel;\n /** The detection timeout in milliseconds. */\n timeout_ms?: number;\n}\n\nexport function voiceAgentEndOfUtteranceDetectionSerializer(\n item: VoiceAgentEndOfUtteranceDetection,\n): any {\n return {\n model: item[\"model\"],\n threshold_level: item[\"threshold_level\"],\n timeout_ms: item[\"timeout_ms\"],\n };\n}\n\nexport function voiceAgentEndOfUtteranceDetectionDeserializer(\n item: any,\n): VoiceAgentEndOfUtteranceDetection {\n return {\n model: item[\"model\"],\n threshold_level: item[\"threshold_level\"],\n timeout_ms: item[\"timeout_ms\"],\n };\n}\n\n/** The semantic end-of-utterance detection model. */\nexport type VoiceAgentEndOfUtteranceDetectionModel =\n | \"semantic_detection_v1\"\n | \"semantic_detection_v1_en\"\n | \"semantic_detection_v1_multilingual\"\n | \"smart_end_of_turn_detection\";\n\n/** The sensitivity threshold for semantic end-of-utterance detection. */\nexport type VoiceAgentEndOfUtteranceThresholdLevel = \"low\" | \"medium\" | \"high\" | \"default\";\n\n/** Azure semantic voice activity detection. */\nexport interface VoiceAgentAzureSemanticVadTurnDetection extends VoiceAgentTurnDetectionConfig {\n /**\n * The turn-detection type. Always `azure_semantic_vad` for Azure semantic voice activity\n * detection.\n */\n type: \"azure_semantic_vad\";\n /** Activation threshold for voice activity detection, from 0 to 1. */\n threshold?: number;\n /** Audio to include before detected speech, in milliseconds. */\n prefix_padding_ms?: number;\n /** Silence required to end speech detection, in milliseconds. */\n silence_duration_ms?: number;\n /** Maximum idle time before the detector ends the turn, in milliseconds. */\n idle_timeout_ms?: number;\n /** Semantic end-of-utterance detection configuration. Set to null to disable it. */\n end_of_utterance_detection?: VoiceAgentEndOfUtteranceDetection;\n /** Minimum speech duration required to trigger detection, in milliseconds. */\n speech_duration_ms?: number;\n /** Whether filler words are removed from transcription. */\n remove_filler_words?: boolean;\n /** Whether a response is created automatically when speech stops. */\n create_response?: boolean;\n /** Whether user speech may interrupt the agent's response. */\n interrupt_response?: boolean;\n /** BCP-47 language codes used for speech detection. */\n languages?: string[];\n}\n\nexport function voiceAgentAzureSemanticVadTurnDetectionSerializer(\n item: VoiceAgentAzureSemanticVadTurnDetection,\n): any {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionSerializer(item[\"end_of_utterance_detection\"]),\n speech_duration_ms: item[\"speech_duration_ms\"],\n remove_filler_words: item[\"remove_filler_words\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : item[\"languages\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentAzureSemanticVadTurnDetectionDeserializer(\n item: any,\n): VoiceAgentAzureSemanticVadTurnDetection {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionDeserializer(item[\"end_of_utterance_detection\"]),\n speech_duration_ms: item[\"speech_duration_ms\"],\n remove_filler_words: item[\"remove_filler_words\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : item[\"languages\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** English-optimized Azure semantic voice activity detection. */\nexport interface VoiceAgentAzureSemanticVadEnTurnDetection extends VoiceAgentTurnDetectionConfig {\n /**\n * The turn-detection type. Always `azure_semantic_vad_en` for English-optimized Azure semantic\n * voice activity detection.\n */\n type: \"azure_semantic_vad_en\";\n /** Activation threshold for voice activity detection, from 0 to 1. */\n threshold?: number;\n /** Audio to include before detected speech, in milliseconds. */\n prefix_padding_ms?: number;\n /** Silence required to end speech detection, in milliseconds. */\n silence_duration_ms?: number;\n /** Maximum idle time before the detector ends the turn, in milliseconds. */\n idle_timeout_ms?: number;\n /** Semantic end-of-utterance detection configuration. Set to null to disable it. */\n end_of_utterance_detection?: VoiceAgentEndOfUtteranceDetection;\n /** Minimum speech duration required to trigger detection, in milliseconds. */\n speech_duration_ms?: number;\n /** Whether filler words are removed from transcription. */\n remove_filler_words?: boolean;\n /** Whether a response is created automatically when speech stops. */\n create_response?: boolean;\n /** Whether user speech may interrupt the agent's response. */\n interrupt_response?: boolean;\n}\n\nexport function voiceAgentAzureSemanticVadEnTurnDetectionSerializer(\n item: VoiceAgentAzureSemanticVadEnTurnDetection,\n): any {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionSerializer(item[\"end_of_utterance_detection\"]),\n speech_duration_ms: item[\"speech_duration_ms\"],\n remove_filler_words: item[\"remove_filler_words\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n };\n}\n\nexport function voiceAgentAzureSemanticVadEnTurnDetectionDeserializer(\n item: any,\n): VoiceAgentAzureSemanticVadEnTurnDetection {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionDeserializer(item[\"end_of_utterance_detection\"]),\n speech_duration_ms: item[\"speech_duration_ms\"],\n remove_filler_words: item[\"remove_filler_words\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n };\n}\n\n/** Multilingual Azure semantic voice activity detection. */\nexport interface VoiceAgentAzureSemanticVadMultilingualTurnDetection extends VoiceAgentTurnDetectionConfig {\n /**\n * The turn-detection type. Always `azure_semantic_vad_multilingual` for multilingual Azure\n * semantic voice activity detection.\n */\n type: \"azure_semantic_vad_multilingual\";\n /** Activation threshold for voice activity detection, from 0 to 1. */\n threshold?: number;\n /** Audio to include before detected speech, in milliseconds. */\n prefix_padding_ms?: number;\n /** Silence required to end speech detection, in milliseconds. */\n silence_duration_ms?: number;\n /** Maximum idle time before the detector ends the turn, in milliseconds. */\n idle_timeout_ms?: number;\n /** Semantic end-of-utterance detection configuration. Set to null to disable it. */\n end_of_utterance_detection?: VoiceAgentEndOfUtteranceDetection;\n /** Minimum speech duration required to trigger detection, in milliseconds. */\n speech_duration_ms?: number;\n /** Whether filler words are removed from transcription. */\n remove_filler_words?: boolean;\n /** Whether a response is created automatically when speech stops. */\n create_response?: boolean;\n /** Whether user speech may interrupt the agent's response. */\n interrupt_response?: boolean;\n /** BCP-47 language codes used for speech detection. */\n languages?: string[];\n}\n\nexport function voiceAgentAzureSemanticVadMultilingualTurnDetectionSerializer(\n item: VoiceAgentAzureSemanticVadMultilingualTurnDetection,\n): any {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionSerializer(item[\"end_of_utterance_detection\"]),\n speech_duration_ms: item[\"speech_duration_ms\"],\n remove_filler_words: item[\"remove_filler_words\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : item[\"languages\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentAzureSemanticVadMultilingualTurnDetectionDeserializer(\n item: any,\n): VoiceAgentAzureSemanticVadMultilingualTurnDetection {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n threshold: item[\"threshold\"],\n prefix_padding_ms: item[\"prefix_padding_ms\"],\n silence_duration_ms: item[\"silence_duration_ms\"],\n idle_timeout_ms: item[\"idle_timeout_ms\"],\n end_of_utterance_detection: !item[\"end_of_utterance_detection\"]\n ? item[\"end_of_utterance_detection\"]\n : voiceAgentEndOfUtteranceDetectionDeserializer(item[\"end_of_utterance_detection\"]),\n speech_duration_ms: item[\"speech_duration_ms\"],\n remove_filler_words: item[\"remove_filler_words\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : item[\"languages\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** OpenAI semantic VAD turn-detection settings. */\nexport interface VoiceAgentSemanticVadTurnDetection extends VoiceAgentTurnDetectionConfig {\n /**\n * How quickly the detector concludes that the user has finished speaking. `low` allows longer\n * pauses, while `high` responds sooner.\n */\n eagerness?: \"low\" | \"medium\" | \"high\" | \"auto\";\n /**\n * Whether to generate a response automatically when the detector determines that the user has\n * finished speaking.\n */\n create_response?: boolean;\n /** Whether detected user speech automatically interrupts an ongoing response. */\n interrupt_response?: boolean;\n /** The turn-detection type. Always `semantic_vad` for semantic voice activity detection. */\n type: \"semantic_vad\";\n}\n\nexport function voiceAgentSemanticVadTurnDetectionSerializer(\n item: VoiceAgentSemanticVadTurnDetection,\n): any {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n eagerness: item[\"eagerness\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n };\n}\n\nexport function voiceAgentSemanticVadTurnDetectionDeserializer(\n item: any,\n): VoiceAgentSemanticVadTurnDetection {\n return {\n type: item[\"type\"],\n auto_truncate: item[\"auto_truncate\"],\n eagerness: item[\"eagerness\"],\n create_response: item[\"create_response\"],\n interrupt_response: item[\"interrupt_response\"],\n };\n}\n\n/** Server-side echo cancellation settings for input audio. */\nexport interface VoiceAgentEchoCancellation {\n /** The echo cancellation implementation. Always `server_echo_cancellation`. */\n type: \"server_echo_cancellation\";\n /** Whether reference audio comes from server playback or a client-provided channel. */\n reference_source?: VoiceAgentEchoCancellationReferenceSource;\n /** The number of input channels. Use two interleaved channels when `reference_source` is `client`. */\n channels?: number;\n}\n\nexport function voiceAgentEchoCancellationSerializer(item: VoiceAgentEchoCancellation): any {\n return {\n type: item[\"type\"],\n reference_source: item[\"reference_source\"],\n channels: item[\"channels\"],\n };\n}\n\nexport function voiceAgentEchoCancellationDeserializer(item: any): VoiceAgentEchoCancellation {\n return {\n type: item[\"type\"],\n reference_source: item[\"reference_source\"],\n channels: item[\"channels\"],\n };\n}\n\n/** The source of reference audio used for echo cancellation. */\nexport type VoiceAgentEchoCancellationReferenceSource = \"server\" | \"client\";\n\n/**\n * Asynchronous input-audio transcription configuration. Extends the OpenAI Realtime transcription\n * options with the Azure and MAI transcription models, custom speech models, and phrase hints.\n */\nexport interface VoiceAgentInputTranscription {\n /**\n * The language of the input audio. Supplying the input language in\n * [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format\n * will improve accuracy and latency.\n */\n language?: string;\n /**\n * An optional text to guide the model's style or continue a previous audio\n * segment.\n * For `whisper-1`, the [prompt is a list of keywords](/docs/guides/speech-to-text#prompting).\n * For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for example \"expect words related to technology\".\n * Prompt is not supported with `gpt-realtime-whisper` in GA Realtime sessions.\n */\n prompt?: string;\n /**\n * Controls how long the model waits before emitting transcription text.\n * Higher values can improve transcription accuracy at the cost of latency.\n * Only supported with `gpt-realtime-whisper` in GA Realtime sessions.\n */\n delay?: \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\";\n /** The transcription model identifier. Configure customer custom speech deployments in `custom_speech`. */\n model: VoiceAgentInputTranscriptionModel;\n /** Optional customer custom speech deployment configuration, keyed by locale. */\n custom_speech?: Record<string, string>;\n /** Optional phrase hints that bias recognition toward domain terms. */\n phrase_list?: string[];\n /** Possible languages of the input audio, in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. Supported by `gpt-transcribe` and `gpt-live-transcribe`. */\n languages?: string[];\n /** Words or phrases to guide transcription of the input audio. Supported by `gpt-transcribe` and `gpt-live-transcribe`. */\n keywords?: string[];\n}\n\nexport function voiceAgentInputTranscriptionSerializer(item: VoiceAgentInputTranscription): any {\n return {\n language: item[\"language\"],\n prompt: item[\"prompt\"],\n delay: item[\"delay\"],\n model: item[\"model\"],\n custom_speech: item[\"custom_speech\"],\n phrase_list: !item[\"phrase_list\"]\n ? item[\"phrase_list\"]\n : item[\"phrase_list\"].map((p: any) => {\n return p;\n }),\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : item[\"languages\"].map((p: any) => {\n return p;\n }),\n keywords: !item[\"keywords\"]\n ? item[\"keywords\"]\n : item[\"keywords\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentInputTranscriptionDeserializer(item: any): VoiceAgentInputTranscription {\n return {\n language: item[\"language\"],\n prompt: item[\"prompt\"],\n delay: item[\"delay\"],\n model: item[\"model\"],\n custom_speech: !item[\"custom_speech\"]\n ? item[\"custom_speech\"]\n : Object.fromEntries(\n Object.entries(item[\"custom_speech\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n phrase_list: !item[\"phrase_list\"]\n ? item[\"phrase_list\"]\n : item[\"phrase_list\"].map((p: any) => {\n return p;\n }),\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : item[\"languages\"].map((p: any) => {\n return p;\n }),\n keywords: !item[\"keywords\"]\n ? item[\"keywords\"]\n : item[\"keywords\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/**\n * The input-audio transcription model identifier. This is a model name, not a Foundry deployment name. Mirrors the transcription models supported by the managed\n * voice backend, covering the OpenAI Realtime transcription models plus the Azure and MAI models.\n * Additional values may be added over time.\n */\nexport type VoiceAgentInputTranscriptionModel =\n | \"whisper-1\"\n | \"gpt-realtime-whisper\"\n | \"gpt-4o-transcribe\"\n | \"gpt-4o-mini-transcribe\"\n | \"gpt-4o-transcribe-diarize\"\n | \"gpt-transcribe\"\n | \"gpt-live-transcribe\"\n | \"mai-transcribe\"\n | \"azure-speech\";\n\n/**\n * Output audio configuration for a voice agent.\n * Provider-specific fields are selected by `voice_type`:\n * - `openai`: `voice` and `speed`.\n * - `azure-standard`: `voice`, `voice_locale`, `speed`, `voice_temperature`, `custom_lexicon_url`,\n * `custom_text_normalization_url`, `prefer_locales`, `style`, `pitch`, and `volume`.\n * - `azure-custom`: all `azure-standard` fields except `style`, plus `custom_voice_endpoint_id`.\n * - `azure-personal`: all `azure-standard` fields except `style`, plus `personal_voice_model`.\n * - `avatar-voice-sync`: all `azure-standard` fields except `voice` and `style`, plus `personal_voice_model`; the voice name is derived from the avatar.\n * - `azure-realtime-native`: `voice` and `speed`.\n * `format` and `output_audio_timestamp_types` apply to every voice type.\n */\nexport interface VoiceAgentAudioOutputConfig {\n /** The output audio format. Applies to every `voice_type` and defaults to 24 kHz PCM. */\n format?: RealtimeAudioFormatsUnion;\n /** The voice name or identifier. Applies to `openai`, `azure-standard`, `azure-custom`, `azure-personal`, and `azure-realtime-native`. It does not apply to `avatar-voice-sync`, which derives the voice name from the avatar. */\n voice?: string;\n /** The voice implementation. */\n voice_type?: VoiceType;\n /** The enforced BCP-47 output locale. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n voice_locale?: string;\n /** The numeric output speed multiplier. Applies to all known `voice_type` values and defaults to 1. */\n speed?: number;\n /** The voice variation temperature. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n voice_temperature?: number;\n /** The URL of a custom pronunciation lexicon. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n custom_lexicon_url?: string;\n /** The URL of a custom text-normalization configuration. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n custom_text_normalization_url?: string;\n /** Preferred BCP-47 locales for multilingual synthesis. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n prefer_locales?: string[];\n /** The voice speaking style. Applies only when `voice_type` is `azure-standard`. */\n style?: string;\n /** The voice pitch adjustment. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n pitch?: string;\n /** The voice volume adjustment. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. */\n volume?: string;\n /** The Azure custom-voice deployment endpoint identifier. Applies only when `voice_type` is `azure-custom`. */\n custom_voice_endpoint_id?: string;\n /** The Azure personal or avatar voice model. Applies only when `voice_type` is `azure-personal` or `avatar-voice-sync`. */\n personal_voice_model?: string;\n /** Timestamp kinds to include with output audio. Applies to every `voice_type`. */\n output_audio_timestamp_types?: VoiceAgentAudioTimestampType[];\n}\n\nexport function voiceAgentAudioOutputConfigSerializer(item: VoiceAgentAudioOutputConfig): any {\n return {\n format: !item[\"format\"] ? item[\"format\"] : realtimeAudioFormatsUnionSerializer(item[\"format\"]),\n voice: item[\"voice\"],\n voice_type: item[\"voice_type\"],\n voice_locale: item[\"voice_locale\"],\n speed: item[\"speed\"],\n voice_temperature: item[\"voice_temperature\"],\n custom_lexicon_url: item[\"custom_lexicon_url\"],\n custom_text_normalization_url: item[\"custom_text_normalization_url\"],\n prefer_locales: !item[\"prefer_locales\"]\n ? item[\"prefer_locales\"]\n : item[\"prefer_locales\"].map((p: any) => {\n return p;\n }),\n style: item[\"style\"],\n pitch: item[\"pitch\"],\n volume: item[\"volume\"],\n custom_voice_endpoint_id: item[\"custom_voice_endpoint_id\"],\n personal_voice_model: item[\"personal_voice_model\"],\n output_audio_timestamp_types: !item[\"output_audio_timestamp_types\"]\n ? item[\"output_audio_timestamp_types\"]\n : item[\"output_audio_timestamp_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentAudioOutputConfigDeserializer(item: any): VoiceAgentAudioOutputConfig {\n return {\n format: !item[\"format\"]\n ? item[\"format\"]\n : realtimeAudioFormatsUnionDeserializer(item[\"format\"]),\n voice: item[\"voice\"],\n voice_type: item[\"voice_type\"],\n voice_locale: item[\"voice_locale\"],\n speed: item[\"speed\"],\n voice_temperature: item[\"voice_temperature\"],\n custom_lexicon_url: item[\"custom_lexicon_url\"],\n custom_text_normalization_url: item[\"custom_text_normalization_url\"],\n prefer_locales: !item[\"prefer_locales\"]\n ? item[\"prefer_locales\"]\n : item[\"prefer_locales\"].map((p: any) => {\n return p;\n }),\n style: item[\"style\"],\n pitch: item[\"pitch\"],\n volume: item[\"volume\"],\n custom_voice_endpoint_id: item[\"custom_voice_endpoint_id\"],\n personal_voice_model: item[\"personal_voice_model\"],\n output_audio_timestamp_types: !item[\"output_audio_timestamp_types\"]\n ? item[\"output_audio_timestamp_types\"]\n : item[\"output_audio_timestamp_types\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The voice implementation. Additional values may be added over time. */\nexport type VoiceType =\n | \"openai\"\n | \"azure-standard\"\n | \"azure-custom\"\n | \"azure-personal\"\n | \"avatar-voice-sync\"\n | \"azure-realtime-native\";\n\n/** An output-audio timestamp kind supported by a voice agent. */\nexport type VoiceAgentAudioTimestampType = \"word\";\n\n/** An output modality the agent may produce. `animation` and `avatar` are used when an avatar is configured. */\nexport type VoiceOutputModality = \"text\" | \"audio\" | \"animation\" | \"avatar\";\n\n/** The maximum output-token count or the literal `inf`. */\nexport type VoiceAgentMaxOutputTokens = number | \"inf\";\n\nexport function voiceAgentMaxOutputTokensSerializer(item: VoiceAgentMaxOutputTokens): any {\n return item;\n}\n\nexport function voiceAgentMaxOutputTokensDeserializer(item: any): VoiceAgentMaxOutputTokens {\n return item;\n}\n\n/** Additional fields that a voice-agent session may include in service outputs. */\nexport type VoiceAgentSessionIncludeOption =\n | \"item.input_audio_transcription.logprobs\"\n | \"item.input_audio_transcription.phrases\"\n | \"file_search_call.results\";\n\n/** Fields shared by interim-response configurations. */\nexport interface VoiceAgentInterimResponseConfig {\n /** The interim-response implementation. */\n /** The discriminator possible values: static_interim_response, llm_interim_response */\n type: string;\n /** Conditions that may trigger one interim response. */\n triggers?: VoiceAgentInterimResponseTrigger[];\n /** The latency threshold in milliseconds. */\n latency_threshold_ms?: number;\n}\n\nexport function voiceAgentInterimResponseConfigSerializer(\n item: VoiceAgentInterimResponseConfig,\n): any {\n return {\n type: item[\"type\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : item[\"triggers\"].map((p: any) => {\n return p;\n }),\n latency_threshold_ms: item[\"latency_threshold_ms\"],\n };\n}\n\nexport function voiceAgentInterimResponseConfigDeserializer(\n item: any,\n): VoiceAgentInterimResponseConfig {\n return {\n type: item[\"type\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : item[\"triggers\"].map((p: any) => {\n return p;\n }),\n latency_threshold_ms: item[\"latency_threshold_ms\"],\n };\n}\n\n/** Alias for VoiceAgentInterimResponseConfigUnion */\nexport type VoiceAgentInterimResponseConfigUnion =\n | VoiceAgentStaticInterimResponseConfig\n | VoiceAgentLlmInterimResponseConfig\n | VoiceAgentInterimResponseConfig;\n\nexport function voiceAgentInterimResponseConfigUnionSerializer(\n item: VoiceAgentInterimResponseConfigUnion,\n): any {\n switch (item.type) {\n case \"static_interim_response\":\n return voiceAgentStaticInterimResponseConfigSerializer(\n item as VoiceAgentStaticInterimResponseConfig,\n );\n\n case \"llm_interim_response\":\n return voiceAgentLlmInterimResponseConfigSerializer(\n item as VoiceAgentLlmInterimResponseConfig,\n );\n\n default:\n return voiceAgentInterimResponseConfigSerializer(item);\n }\n}\n\nexport function voiceAgentInterimResponseConfigUnionDeserializer(\n item: any,\n): VoiceAgentInterimResponseConfigUnion {\n switch (item[\"type\"]) {\n case \"static_interim_response\":\n return voiceAgentStaticInterimResponseConfigDeserializer(\n item as VoiceAgentStaticInterimResponseConfig,\n );\n\n case \"llm_interim_response\":\n return voiceAgentLlmInterimResponseConfigDeserializer(\n item as VoiceAgentLlmInterimResponseConfig,\n );\n\n default:\n return voiceAgentInterimResponseConfigDeserializer(item);\n }\n}\n\n/** A condition that may trigger an interim response. */\nexport type VoiceAgentInterimResponseTrigger = \"latency\" | \"tool\";\n\n/** A static interim response selected from configured text. */\nexport interface VoiceAgentStaticInterimResponseConfig extends VoiceAgentInterimResponseConfig {\n /**\n * The interim-response type. Always `static_interim_response` for a response selected from\n * configured text.\n */\n type: \"static_interim_response\";\n /** Candidate text values for the interim response. */\n texts?: string[];\n}\n\nexport function voiceAgentStaticInterimResponseConfigSerializer(\n item: VoiceAgentStaticInterimResponseConfig,\n): any {\n return {\n type: item[\"type\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : item[\"triggers\"].map((p: any) => {\n return p;\n }),\n latency_threshold_ms: item[\"latency_threshold_ms\"],\n texts: !item[\"texts\"]\n ? item[\"texts\"]\n : item[\"texts\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentStaticInterimResponseConfigDeserializer(\n item: any,\n): VoiceAgentStaticInterimResponseConfig {\n return {\n type: item[\"type\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : item[\"triggers\"].map((p: any) => {\n return p;\n }),\n latency_threshold_ms: item[\"latency_threshold_ms\"],\n texts: !item[\"texts\"]\n ? item[\"texts\"]\n : item[\"texts\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** An interim response generated by a language model. */\nexport interface VoiceAgentLlmInterimResponseConfig extends VoiceAgentInterimResponseConfig {\n /**\n * The interim-response type. Always `llm_interim_response` for a response generated by a language\n * model.\n */\n type: \"llm_interim_response\";\n /** The model used to generate interim responses. */\n model?: string;\n /** Optional instructions for generating interim responses. */\n instructions?: string;\n /** The maximum completion-token count for an interim response. */\n max_completion_tokens?: number;\n}\n\nexport function voiceAgentLlmInterimResponseConfigSerializer(\n item: VoiceAgentLlmInterimResponseConfig,\n): any {\n return {\n type: item[\"type\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : item[\"triggers\"].map((p: any) => {\n return p;\n }),\n latency_threshold_ms: item[\"latency_threshold_ms\"],\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n max_completion_tokens: item[\"max_completion_tokens\"],\n };\n}\n\nexport function voiceAgentLlmInterimResponseConfigDeserializer(\n item: any,\n): VoiceAgentLlmInterimResponseConfig {\n return {\n type: item[\"type\"],\n triggers: !item[\"triggers\"]\n ? item[\"triggers\"]\n : item[\"triggers\"].map((p: any) => {\n return p;\n }),\n latency_threshold_ms: item[\"latency_threshold_ms\"],\n model: item[\"model\"],\n instructions: item[\"instructions\"],\n max_completion_tokens: item[\"max_completion_tokens\"],\n };\n}\n\n/** Avatar configuration for a voice agent. These values are session defaults and may be overridden when connecting. */\nexport interface VoiceAgentAvatarConfig {\n /** The avatar type. */\n type: VoiceAgentAvatarType;\n /** The avatar character identifier, e.g. 'lisa'. */\n character: string;\n /** The avatar style, e.g. 'casual-sitting'. */\n style?: string;\n /** Whether the avatar is a customer-customized avatar. Defaults to false. */\n customized?: boolean;\n /** The transport used to deliver the avatar video stream. */\n output_protocol?: VoiceAgentAvatarOutputProtocol;\n /** The avatar model identifier. */\n model?: string;\n /** Avatar video encoder and presentation settings. */\n video?: VoiceAgentAvatarVideoParams;\n /** Avatar placement and motion settings. */\n scene?: VoiceAgentAvatarScene;\n /** Whether audit audio is emitted with avatar output. Defaults to false. */\n output_audit_audio?: boolean;\n}\n\nexport function voiceAgentAvatarConfigSerializer(item: VoiceAgentAvatarConfig): any {\n return {\n type: item[\"type\"],\n character: item[\"character\"],\n style: item[\"style\"],\n customized: item[\"customized\"],\n output_protocol: item[\"output_protocol\"],\n model: item[\"model\"],\n video: !item[\"video\"] ? item[\"video\"] : voiceAgentAvatarVideoParamsSerializer(item[\"video\"]),\n scene: !item[\"scene\"] ? item[\"scene\"] : voiceAgentAvatarSceneSerializer(item[\"scene\"]),\n output_audit_audio: item[\"output_audit_audio\"],\n };\n}\n\nexport function voiceAgentAvatarConfigDeserializer(item: any): VoiceAgentAvatarConfig {\n return {\n type: item[\"type\"],\n character: item[\"character\"],\n style: item[\"style\"],\n customized: item[\"customized\"],\n output_protocol: item[\"output_protocol\"],\n model: item[\"model\"],\n video: !item[\"video\"] ? item[\"video\"] : voiceAgentAvatarVideoParamsDeserializer(item[\"video\"]),\n scene: !item[\"scene\"] ? item[\"scene\"] : voiceAgentAvatarSceneDeserializer(item[\"scene\"]),\n output_audit_audio: item[\"output_audit_audio\"],\n };\n}\n\n/** The avatar type. */\nexport type VoiceAgentAvatarType = \"video_avatar\" | \"photo_avatar\";\n\n/** The transport used to deliver the avatar video stream. */\nexport type VoiceAgentAvatarOutputProtocol = \"webrtc\" | \"websocket\";\n\n/** Avatar video encoder and presentation settings. */\nexport interface VoiceAgentAvatarVideoParams {\n /** The target video bitrate in bits per second. */\n bitrate?: number;\n /** The rectangular region to retain when cropping the avatar video. */\n crop?: VoiceAgentAvatarVideoCrop;\n /** The width and height of the avatar video. */\n resolution?: VoiceAgentAvatarVideoResolution;\n /** The background image or color used for the avatar video. */\n background?: VoiceAgentAvatarVideoBackground;\n /** The group-of-pictures (GOP) size, which controls the interval between video keyframes. */\n gop_size?: number;\n}\n\nexport function voiceAgentAvatarVideoParamsSerializer(item: VoiceAgentAvatarVideoParams): any {\n return {\n bitrate: item[\"bitrate\"],\n crop: !item[\"crop\"] ? item[\"crop\"] : voiceAgentAvatarVideoCropSerializer(item[\"crop\"]),\n resolution: !item[\"resolution\"]\n ? item[\"resolution\"]\n : voiceAgentAvatarVideoResolutionSerializer(item[\"resolution\"]),\n background: !item[\"background\"]\n ? item[\"background\"]\n : voiceAgentAvatarVideoBackgroundSerializer(item[\"background\"]),\n gop_size: item[\"gop_size\"],\n };\n}\n\nexport function voiceAgentAvatarVideoParamsDeserializer(item: any): VoiceAgentAvatarVideoParams {\n return {\n bitrate: item[\"bitrate\"],\n crop: !item[\"crop\"] ? item[\"crop\"] : voiceAgentAvatarVideoCropDeserializer(item[\"crop\"]),\n resolution: !item[\"resolution\"]\n ? item[\"resolution\"]\n : voiceAgentAvatarVideoResolutionDeserializer(item[\"resolution\"]),\n background: !item[\"background\"]\n ? item[\"background\"]\n : voiceAgentAvatarVideoBackgroundDeserializer(item[\"background\"]),\n gop_size: item[\"gop_size\"],\n };\n}\n\n/** The rectangular crop applied to avatar video. */\nexport interface VoiceAgentAvatarVideoCrop {\n /** The [x, y] coordinates of the bottom-right corner of the video crop rectangle. */\n bottom_right: number[];\n /** The [x, y] coordinates of the top-left corner of the video crop rectangle. */\n top_left: number[];\n}\n\nexport function voiceAgentAvatarVideoCropSerializer(item: VoiceAgentAvatarVideoCrop): any {\n return {\n bottom_right: item[\"bottom_right\"].map((p: any) => {\n return p;\n }),\n top_left: item[\"top_left\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentAvatarVideoCropDeserializer(item: any): VoiceAgentAvatarVideoCrop {\n return {\n bottom_right: item[\"bottom_right\"].map((p: any) => {\n return p;\n }),\n top_left: item[\"top_left\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** The avatar video resolution. */\nexport interface VoiceAgentAvatarVideoResolution {\n /** The width of the avatar video, in pixels. */\n width: number;\n /** The height of the avatar video, in pixels. */\n height: number;\n}\n\nexport function voiceAgentAvatarVideoResolutionSerializer(\n item: VoiceAgentAvatarVideoResolution,\n): any {\n return { width: item[\"width\"], height: item[\"height\"] };\n}\n\nexport function voiceAgentAvatarVideoResolutionDeserializer(\n item: any,\n): VoiceAgentAvatarVideoResolution {\n return {\n width: item[\"width\"],\n height: item[\"height\"],\n };\n}\n\n/** The avatar video background. */\nexport interface VoiceAgentAvatarVideoBackground {\n /** The URL of the image used as the avatar video background. */\n image_url?: string;\n /** The background color of the avatar video. */\n color?: string;\n}\n\nexport function voiceAgentAvatarVideoBackgroundSerializer(\n item: VoiceAgentAvatarVideoBackground,\n): any {\n return { image_url: item[\"image_url\"], color: item[\"color\"] };\n}\n\nexport function voiceAgentAvatarVideoBackgroundDeserializer(\n item: any,\n): VoiceAgentAvatarVideoBackground {\n return {\n image_url: item[\"image_url\"],\n color: item[\"color\"],\n };\n}\n\n/** Avatar placement and motion settings. */\nexport interface VoiceAgentAvatarScene {\n /** The zoom level applied to the avatar in the scene. */\n zoom?: number;\n /** The horizontal position of the avatar in the scene. */\n position_x?: number;\n /** The vertical position of the avatar in the scene. */\n position_y?: number;\n /** The avatar's rotation around the x-axis. */\n rotation_x?: number;\n /** The avatar's rotation around the y-axis. */\n rotation_y?: number;\n /** The avatar's rotation around the z-axis. */\n rotation_z?: number;\n /** The amplitude of the avatar's motion. */\n amplitude?: number;\n}\n\nexport function voiceAgentAvatarSceneSerializer(item: VoiceAgentAvatarScene): any {\n return {\n zoom: item[\"zoom\"],\n position_x: item[\"position_x\"],\n position_y: item[\"position_y\"],\n rotation_x: item[\"rotation_x\"],\n rotation_y: item[\"rotation_y\"],\n rotation_z: item[\"rotation_z\"],\n amplitude: item[\"amplitude\"],\n };\n}\n\nexport function voiceAgentAvatarSceneDeserializer(item: any): VoiceAgentAvatarScene {\n return {\n zoom: item[\"zoom\"],\n position_x: item[\"position_x\"],\n position_y: item[\"position_y\"],\n rotation_x: item[\"rotation_x\"],\n rotation_y: item[\"rotation_y\"],\n rotation_z: item[\"rotation_z\"],\n amplitude: item[\"amplitude\"],\n };\n}\n\nexport function voiceAgentToolUnionArraySerializer(result: Array<VoiceAgentToolUnion>): any[] {\n return result.map((item) => {\n return voiceAgentToolUnionSerializer(item);\n });\n}\n\nexport function voiceAgentToolUnionArrayDeserializer(result: Array<VoiceAgentToolUnion>): any[] {\n return result.map((item) => {\n return voiceAgentToolUnionDeserializer(item);\n });\n}\n\n/** A tool usable by a voice agent. */\nexport interface VoiceAgentTool {\n /** The tool kind. */\n /** The discriminator possible values: function, mcp, system, toolbox */\n type: string;\n}\n\nexport function voiceAgentToolSerializer(item: VoiceAgentTool): any {\n return { type: item[\"type\"] };\n}\n\nexport function voiceAgentToolDeserializer(item: any): VoiceAgentTool {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for VoiceAgentToolUnion */\nexport type VoiceAgentToolUnion =\n | VoiceAgentFunctionTool\n | VoiceAgentMcpTool\n | VoiceAgentSystemToolUnion\n | VoiceAgentToolboxTool\n | VoiceAgentTool;\n\nexport function voiceAgentToolUnionSerializer(item: VoiceAgentToolUnion): any {\n switch (item.type) {\n case \"function\":\n return voiceAgentFunctionToolSerializer(item as VoiceAgentFunctionTool);\n\n case \"mcp\":\n return voiceAgentMcpToolSerializer(item as VoiceAgentMcpTool);\n\n case \"system\":\n return voiceAgentSystemToolUnionSerializer(item as VoiceAgentSystemToolUnion);\n\n case \"toolbox\":\n return voiceAgentToolboxToolSerializer(item as VoiceAgentToolboxTool);\n\n default:\n return voiceAgentToolSerializer(item);\n }\n}\n\nexport function voiceAgentToolUnionDeserializer(item: any): VoiceAgentToolUnion {\n switch (item[\"type\"]) {\n case \"function\":\n return voiceAgentFunctionToolDeserializer(item as VoiceAgentFunctionTool);\n\n case \"mcp\":\n return voiceAgentMcpToolDeserializer(item as VoiceAgentMcpTool);\n\n case \"system\":\n return voiceAgentSystemToolUnionDeserializer(item as VoiceAgentSystemToolUnion);\n\n case \"toolbox\":\n return voiceAgentToolboxToolDeserializer(item as VoiceAgentToolboxTool);\n\n default:\n return voiceAgentToolDeserializer(item);\n }\n}\n\n/** A native function tool executed by the client. */\nexport interface VoiceAgentFunctionTool extends VoiceAgentTool {\n /**\n * The description of the function, including guidance on when and how\n * to call it, and guidance about what to tell the user when calling\n * (if anything).\n */\n description?: string;\n /** Parameters of the function in JSON Schema. */\n parameters?: RealtimeFunctionToolParameters;\n /** The tool type. Always `function` for a function executed by the client. */\n type: \"function\";\n /** The function name. */\n name: string;\n}\n\nexport function voiceAgentFunctionToolSerializer(item: VoiceAgentFunctionTool): any {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : realtimeFunctionToolParametersSerializer(item[\"parameters\"]),\n name: item[\"name\"],\n };\n}\n\nexport function voiceAgentFunctionToolDeserializer(item: any): VoiceAgentFunctionTool {\n return {\n type: item[\"type\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : realtimeFunctionToolParametersDeserializer(item[\"parameters\"]),\n name: item[\"name\"],\n };\n}\n\n/** model interface RealtimeFunctionToolParameters */\nexport type RealtimeFunctionToolParameters = Record<string, unknown>;\n\nexport function realtimeFunctionToolParametersSerializer(\n item: RealtimeFunctionToolParameters,\n): any {\n return item;\n}\n\nexport function realtimeFunctionToolParametersDeserializer(\n item: any,\n): RealtimeFunctionToolParameters {\n return item;\n}\n\n/** An MCP tool available to a voice agent. */\nexport interface VoiceAgentMcpTool extends VoiceAgentTool {\n /** A label for this MCP server, used to identify it in tool calls. */\n server_label: string;\n /**\n * An OAuth access token that can be used with a remote MCP server, either\n * with a custom MCP server URL or a service connector. Your application\n * must handle the OAuth authorization flow and provide the token here.\n */\n authorization?: string;\n /** Optional description of the MCP server, used to provide more context. */\n server_description?: string;\n /** HTTP headers to include in requests to the MCP server. */\n headers?: Record<string, string>;\n /**\n * The tool names or filter that determines which tools from the MCP server are available to the\n * voice agent.\n */\n allowed_tools?: string[] | MCPToolFilter;\n /** The callers that may invoke tools exposed by this MCP server. */\n allowed_callers?: CallableToolAllowedCaller[];\n /** The approval policy for MCP tool calls, specified globally or for selected tools. */\n require_approval?: MCPToolRequireApproval | \"always\" | \"never\";\n /** Whether this MCP tool is deferred and discovered via tool search. */\n defer_loading?: boolean;\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 /** Deprecated. This property is deprecated and will be removed in a future version. */\n tool_configs?: Record<string, ToolConfig>;\n /** The tool type. Always `mcp` for tools exposed by an MCP server. */\n type: \"mcp\";\n /** The URL for the MCP server. */\n server_url?: string;\n /** When the MCP invocation creates a follow-up response. Defaults to `when_idle`. */\n response_scheduling?: VoiceAgentToolResponseScheduling;\n}\n\nexport function voiceAgentMcpToolSerializer(item: VoiceAgentMcpTool): any {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: item[\"headers\"],\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsSerializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p: any) => {\n return p;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalSerializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordSerializer(item[\"tool_configs\"]),\n server_url: item[\"server_url\"],\n response_scheduling: item[\"response_scheduling\"],\n };\n}\n\nexport function voiceAgentMcpToolDeserializer(item: any): VoiceAgentMcpTool {\n return {\n type: item[\"type\"],\n server_label: item[\"server_label\"],\n authorization: item[\"authorization\"],\n server_description: item[\"server_description\"],\n headers: !item[\"headers\"]\n ? item[\"headers\"]\n : Object.fromEntries(\n Object.entries(item[\"headers\"]).map(([k1, p1]: [string, any]) => [k1, p1]),\n ),\n allowed_tools: !item[\"allowed_tools\"]\n ? item[\"allowed_tools\"]\n : _mcpToolAllowedToolsDeserializer(item[\"allowed_tools\"]),\n allowed_callers: !item[\"allowed_callers\"]\n ? item[\"allowed_callers\"]\n : item[\"allowed_callers\"].map((p1: any) => {\n return p1;\n }),\n require_approval: !item[\"require_approval\"]\n ? item[\"require_approval\"]\n : _mcpToolRequireApprovalDeserializer(item[\"require_approval\"]),\n defer_loading: item[\"defer_loading\"],\n project_connection_id: item[\"project_connection_id\"],\n tool_configs: !item[\"tool_configs\"]\n ? item[\"tool_configs\"]\n : toolConfigRecordDeserializer(item[\"tool_configs\"]),\n server_url: item[\"server_url\"],\n response_scheduling: item[\"response_scheduling\"],\n };\n}\n\n/** When a tool invocation creates a follow-up response. Additional values may be added over time. */\nexport type VoiceAgentToolResponseScheduling =\n \"silent\" | \"when_idle\" | \"interrupt\" | \"skip_if_busy\";\n\n/** A service-managed control that acts on the active voice session without customer code or external authentication. */\nexport interface VoiceAgentSystemTool extends VoiceAgentTool {\n /** The type of the tool. Always `system`. */\n type: \"system\";\n /** The service-managed control action. Known values are stable; additional values may be added over time. */\n /** The discriminator possible values: end_conversation */\n name: VoiceAgentSystemToolName;\n /** An optional description of the system tool. */\n description?: string;\n}\n\nexport function voiceAgentSystemToolSerializer(item: VoiceAgentSystemTool): any {\n return { type: item[\"type\"], name: item[\"name\"], description: item[\"description\"] };\n}\n\nexport function voiceAgentSystemToolDeserializer(item: any): VoiceAgentSystemTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n };\n}\n\n/** Alias for VoiceAgentSystemToolUnion */\nexport type VoiceAgentSystemToolUnion = VoiceAgentEndConversationSystemTool | VoiceAgentSystemTool;\n\nexport function voiceAgentSystemToolUnionSerializer(item: VoiceAgentSystemToolUnion): any {\n switch (item.name) {\n case \"end_conversation\":\n return voiceAgentEndConversationSystemToolSerializer(\n item as VoiceAgentEndConversationSystemTool,\n );\n\n default:\n return voiceAgentSystemToolSerializer(item);\n }\n}\n\nexport function voiceAgentSystemToolUnionDeserializer(item: any): VoiceAgentSystemToolUnion {\n switch (item[\"name\"]) {\n case \"end_conversation\":\n return voiceAgentEndConversationSystemToolDeserializer(\n item as VoiceAgentEndConversationSystemTool,\n );\n\n default:\n return voiceAgentSystemToolDeserializer(item);\n }\n}\n\n/** A service-managed voice-session control action. Known values are stable; additional values may be added over time. */\nexport type VoiceAgentSystemToolName = \"end_conversation\";\n\n/** A service-managed control that ends the active conversation. */\nexport interface VoiceAgentEndConversationSystemTool extends VoiceAgentSystemTool {\n /** The service-managed control action. Always `end_conversation`. */\n name: \"end_conversation\";\n}\n\nexport function voiceAgentEndConversationSystemToolSerializer(\n item: VoiceAgentEndConversationSystemTool,\n): any {\n return { type: item[\"type\"], name: item[\"name\"], description: item[\"description\"] };\n}\n\nexport function voiceAgentEndConversationSystemToolDeserializer(\n item: any,\n): VoiceAgentEndConversationSystemTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n };\n}\n\n/** A reference to a Foundry toolbox, which is a versioned bundle of tools executed through its MCP endpoint. */\nexport interface VoiceAgentToolboxTool extends VoiceAgentTool {\n /** The type of the tool. Always `toolbox`. */\n type: \"toolbox\";\n /** The name of the toolbox to attach. */\n toolbox_name: string;\n /** The immutable version of the toolbox to attach. */\n toolbox_version: string;\n /** When the toolbox invocation creates a follow-up response. Defaults to `when_idle`. */\n response_scheduling?: VoiceAgentToolResponseScheduling;\n}\n\nexport function voiceAgentToolboxToolSerializer(item: VoiceAgentToolboxTool): any {\n return {\n type: item[\"type\"],\n toolbox_name: item[\"toolbox_name\"],\n toolbox_version: item[\"toolbox_version\"],\n response_scheduling: item[\"response_scheduling\"],\n };\n}\n\nexport function voiceAgentToolboxToolDeserializer(item: any): VoiceAgentToolboxTool {\n return {\n type: item[\"type\"],\n toolbox_name: item[\"toolbox_name\"],\n toolbox_version: item[\"toolbox_version\"],\n response_scheduling: item[\"response_scheduling\"],\n };\n}\n\n/** Configuration for sibling Foundry text agents that a voice agent may consult. */\nexport interface VoiceAgentSubagentConfig {\n /** The sibling Foundry text agents, in the same project, that this voice agent may consult. */\n subagents: VoiceAgentSubagent[];\n}\n\nexport function voiceAgentSubagentConfigSerializer(item: VoiceAgentSubagentConfig): any {\n return { subagents: voiceAgentSubagentArraySerializer(item[\"subagents\"]) };\n}\n\nexport function voiceAgentSubagentConfigDeserializer(item: any): VoiceAgentSubagentConfig {\n return {\n subagents: voiceAgentSubagentArrayDeserializer(item[\"subagents\"]),\n };\n}\n\nexport function voiceAgentSubagentArraySerializer(result: Array<VoiceAgentSubagent>): any[] {\n return result.map((item) => {\n return voiceAgentSubagentSerializer(item);\n });\n}\n\nexport function voiceAgentSubagentArrayDeserializer(result: Array<VoiceAgentSubagent>): any[] {\n return result.map((item) => {\n return voiceAgentSubagentDeserializer(item);\n });\n}\n\n/** A sibling Foundry text agent that a voice agent may consult as a background specialist. */\nexport interface VoiceAgentSubagent {\n /** The name of the subagent. The subagent must be in the same project as the voice agent. */\n agent_name: string;\n /** The version of the subagent. When omitted, the active version is used. */\n agent_version?: string;\n /** A description of the subagent's capabilities, used by the voice agent to decide whether to forward a query. */\n agent_capabilities: string;\n /** Policy for acknowledging forwarded requests and filling gaps while waiting for this subagent's response. */\n response_policy?: VoiceAgentSubagentResponsePolicy;\n /** The wall-clock timeout, in seconds, for each invocation of this subagent. When omitted, the service timeout is used. */\n invoke_timeout_seconds?: number;\n}\n\nexport function voiceAgentSubagentSerializer(item: VoiceAgentSubagent): any {\n return {\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n agent_capabilities: item[\"agent_capabilities\"],\n response_policy: !item[\"response_policy\"]\n ? item[\"response_policy\"]\n : voiceAgentSubagentResponsePolicySerializer(item[\"response_policy\"]),\n invoke_timeout_seconds: item[\"invoke_timeout_seconds\"],\n };\n}\n\nexport function voiceAgentSubagentDeserializer(item: any): VoiceAgentSubagent {\n return {\n agent_name: item[\"agent_name\"],\n agent_version: item[\"agent_version\"],\n agent_capabilities: item[\"agent_capabilities\"],\n response_policy: !item[\"response_policy\"]\n ? item[\"response_policy\"]\n : voiceAgentSubagentResponsePolicyDeserializer(item[\"response_policy\"]),\n invoke_timeout_seconds: item[\"invoke_timeout_seconds\"],\n };\n}\n\n/** Policy for delivering responses while a voice agent waits for a subagent. */\nexport interface VoiceAgentSubagentResponsePolicy {\n /** Whether the voice agent provides an immediate acknowledgement before forwarding a request to a subagent. */\n immediate_ack?: boolean;\n /** The number of seconds without subagent content or user input before the voice agent provides a gap-filling response. */\n gap_filling_interval?: number;\n /** Instructions used to generate the immediate acknowledgement. */\n ack_instructions?: string;\n /** Instructions used to generate gap-filling speech while waiting for progress. */\n gap_filling_instructions?: string;\n /** Whether progress updates are emitted incrementally instead of only when the subagent invocation completes. Defaults to `false`. */\n enable_delta_progress?: boolean;\n /** Instructions used to summarize streamed subagent progress for speech. */\n progress_instructions?: string;\n /** The minimum number of seconds between spoken progress updates. */\n progress_update_interval?: number;\n}\n\nexport function voiceAgentSubagentResponsePolicySerializer(\n item: VoiceAgentSubagentResponsePolicy,\n): any {\n return {\n immediate_ack: item[\"immediate_ack\"],\n gap_filling_interval: item[\"gap_filling_interval\"],\n ack_instructions: item[\"ack_instructions\"],\n gap_filling_instructions: item[\"gap_filling_instructions\"],\n enable_delta_progress: item[\"enable_delta_progress\"],\n progress_instructions: item[\"progress_instructions\"],\n progress_update_interval: item[\"progress_update_interval\"],\n };\n}\n\nexport function voiceAgentSubagentResponsePolicyDeserializer(\n item: any,\n): VoiceAgentSubagentResponsePolicy {\n return {\n immediate_ack: item[\"immediate_ack\"],\n gap_filling_interval: item[\"gap_filling_interval\"],\n ack_instructions: item[\"ack_instructions\"],\n gap_filling_instructions: item[\"gap_filling_instructions\"],\n enable_delta_progress: item[\"enable_delta_progress\"],\n progress_instructions: item[\"progress_instructions\"],\n progress_update_interval: item[\"progress_update_interval\"],\n };\n}\n\n/**\n * The inputs for generating a voice agent. Only `kind` and `name` are always required.\n * The authoring service expands these inputs into a full, editable `VoiceAgentDefinition`, which is then created through `POST /agents`.\n * The generated `instructions` and audio/voice settings are stored as separate fields on the resulting agent\n * definition, so the caller can edit or override any of them afterward via standard agent versioning.\n */\nexport interface GenerateVoiceAgentRequest {\n /** The agent kind. Always `voice`. */\n kind: \"voice\";\n /** The unique name for the agent to create. Must be a non-empty DNS-like agent name. */\n name: string;\n /** Optional inference mode. When omitted, the authoring service uses `managed`. When supplied, use `managed` or `self_deployed`. */\n model_type?: VoiceModelType;\n /** Optional model identifier. Required when `model_type` is `self_deployed`; optional when `model_type` is `managed` or omitted. The service never invents a customer deployment name. */\n model?: string;\n /** An optional authoring use case. An empty string is accepted. */\n use_case?: string;\n /** An optional natural-language description of what the agent should do. When supplied, it seeds the generated instructions. */\n goal?: string;\n /** An optional agent description. The authoring service resolves its fallback when omitted. */\n description?: string;\n /** Optional tools carried through verbatim onto the generated agent (see `VoiceAgentTool`). */\n tools?: VoiceAgentToolUnion[];\n /** (Preview) When `true`, the generated voice agent is created as a draft \u2014 an editable, unpublished version the caller can review and refine before publishing it via the standard create/version path. The service defaults to `false` if a value is not specified by the caller, in which case the agent is created and published normally. */\n draft?: boolean;\n}\n\nexport function generateVoiceAgentRequestSerializer(item: GenerateVoiceAgentRequest): any {\n return {\n kind: item[\"kind\"],\n name: item[\"name\"],\n model_type: item[\"model_type\"],\n model: item[\"model\"],\n use_case: item[\"use_case\"],\n goal: item[\"goal\"],\n description: item[\"description\"],\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArraySerializer(item[\"tools\"]),\n draft: item[\"draft\"],\n };\n}\n\n/** The request to create a telephony binding. */\nexport interface CreateTelephonyBindingRequest {\n /** The telephony provider. */\n /** The discriminator possible values: teams_phone_extension, twilio */\n provider: TelephonyProvider;\n /** The Foundry connection name for the telephony provider. */\n connection_name: string;\n /** An optional display label for the binding. */\n label?: string;\n}\n\nexport function createTelephonyBindingRequestSerializer(item: CreateTelephonyBindingRequest): any {\n return {\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n };\n}\n\n/** Alias for CreateTelephonyBindingRequestUnion */\nexport type CreateTelephonyBindingRequestUnion =\n | CreateTeamsPhoneExtensionTelephonyBindingRequest\n | CreateTwilioTelephonyBindingRequest\n | CreateTelephonyBindingRequest;\n\nexport function createTelephonyBindingRequestUnionSerializer(\n item: CreateTelephonyBindingRequestUnion,\n): any {\n switch (item.provider) {\n case \"teams_phone_extension\":\n return createTeamsPhoneExtensionTelephonyBindingRequestSerializer(\n item as CreateTeamsPhoneExtensionTelephonyBindingRequest,\n );\n\n case \"twilio\":\n return createTwilioTelephonyBindingRequestSerializer(\n item as CreateTwilioTelephonyBindingRequest,\n );\n\n default:\n return createTelephonyBindingRequestSerializer(item);\n }\n}\n\n/** A telephony provider supported by an agent binding. Known values are stable; additional values may be added over time. */\nexport type TelephonyProvider = \"teams_phone_extension\" | \"twilio\";\n\n/** The request to create a Microsoft Teams Phone Extension binding. */\nexport interface CreateTeamsPhoneExtensionTelephonyBindingRequest extends CreateTelephonyBindingRequest {\n /** The Microsoft Teams Phone Extension provider. */\n provider: \"teams_phone_extension\";\n /** The optional display phone number for the Teams resource account. */\n phone_number?: string;\n /** The Microsoft Teams resource-account object identifier as a GUID. */\n resource_account_object_id: string;\n}\n\nexport function createTeamsPhoneExtensionTelephonyBindingRequestSerializer(\n item: CreateTeamsPhoneExtensionTelephonyBindingRequest,\n): any {\n return {\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n phone_number: item[\"phone_number\"],\n resource_account_object_id: item[\"resource_account_object_id\"],\n };\n}\n\n/** The request to create a Twilio binding. */\nexport interface CreateTwilioTelephonyBindingRequest extends CreateTelephonyBindingRequest {\n /** The Twilio provider. */\n provider: \"twilio\";\n /** The Twilio E.164 phone number. */\n phone_number: string;\n}\n\nexport function createTwilioTelephonyBindingRequestSerializer(\n item: CreateTwilioTelephonyBindingRequest,\n): any {\n return {\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n phone_number: item[\"phone_number\"],\n };\n}\n\n/** A telephony binding owned by a voice agent. */\nexport interface TelephonyBinding {\n /** The service-generated binding identifier. */\n id: string;\n /** The telephony provider. */\n /** The discriminator possible values: teams_phone_extension, twilio */\n provider: TelephonyProvider;\n /** The Foundry connection name for the telephony provider. */\n connection_name: string;\n /** The optional display label for the binding. */\n label?: string;\n /** The lifecycle status. */\n status: TelephonyBindingStatus;\n /** The service-generated webhook URL to configure with the telephony provider. */\n incoming_call_url: string;\n}\n\nexport function telephonyBindingDeserializer(item: any): TelephonyBinding {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n status: item[\"status\"],\n incoming_call_url: item[\"incoming_call_url\"],\n };\n}\n\n/** Alias for TelephonyBindingUnion */\nexport type TelephonyBindingUnion =\n TeamsPhoneExtensionTelephonyBinding | TwilioTelephonyBinding | TelephonyBinding;\n\nexport function telephonyBindingUnionDeserializer(item: any): TelephonyBindingUnion {\n switch (item[\"provider\"]) {\n case \"teams_phone_extension\":\n return teamsPhoneExtensionTelephonyBindingDeserializer(\n item as TeamsPhoneExtensionTelephonyBinding,\n );\n\n case \"twilio\":\n return twilioTelephonyBindingDeserializer(item as TwilioTelephonyBinding);\n\n default:\n return telephonyBindingDeserializer(item);\n }\n}\n\n/** The lifecycle status of a telephony binding. */\nexport type TelephonyBindingStatus = \"active\" | \"suspended\";\n\n/** A Microsoft Teams Phone Extension binding owned by a voice agent. */\nexport interface TeamsPhoneExtensionTelephonyBinding extends TelephonyBinding {\n /** The Microsoft Teams Phone Extension provider. */\n provider: \"teams_phone_extension\";\n /** The optional display phone number for the Teams resource account. */\n phone_number?: string;\n /** The Microsoft Teams resource-account object identifier as a GUID. */\n resource_account_object_id: string;\n}\n\nexport function teamsPhoneExtensionTelephonyBindingDeserializer(\n item: any,\n): TeamsPhoneExtensionTelephonyBinding {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n status: item[\"status\"],\n incoming_call_url: item[\"incoming_call_url\"],\n phone_number: item[\"phone_number\"],\n resource_account_object_id: item[\"resource_account_object_id\"],\n };\n}\n\n/** A Twilio binding owned by a voice agent. */\nexport interface TwilioTelephonyBinding extends TelephonyBinding {\n /** The Twilio provider. */\n provider: \"twilio\";\n /** The Twilio E.164 phone number. */\n phone_number: string;\n}\n\nexport function twilioTelephonyBindingDeserializer(item: any): TwilioTelephonyBinding {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n status: item[\"status\"],\n incoming_call_url: item[\"incoming_call_url\"],\n phone_number: item[\"phone_number\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultTelephonyBindingListItem {\n /** The requested list of items. */\n data: TelephonyBindingListItemUnion[];\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 _agentsPagedResultTelephonyBindingListItemDeserializer(\n item: any,\n): _AgentsPagedResultTelephonyBindingListItem {\n return {\n data: telephonyBindingListItemUnionArrayDeserializer(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 telephonyBindingListItemUnionArrayDeserializer(\n result: Array<TelephonyBindingListItemUnion>,\n): any[] {\n return result.map((item) => {\n return telephonyBindingListItemUnionDeserializer(item);\n });\n}\n\n/** A telephony binding returned in a list, including its entity tag. */\nexport interface TelephonyBindingListItem {\n /** The service-generated binding identifier. */\n id: string;\n /** The telephony provider. */\n /** The discriminator possible values: teams_phone_extension, twilio */\n provider: TelephonyProvider;\n /** The Foundry connection name for the telephony provider. */\n connection_name: string;\n /** The optional display label for the binding. */\n label?: string;\n /** The lifecycle status. */\n status: TelephonyBindingStatus;\n /** The service-generated webhook URL to configure with the telephony provider. */\n incoming_call_url: string;\n /** The entity tag to send in the `If-Match` header when updating or deleting this binding. */\n readonly etag: string;\n}\n\nexport function telephonyBindingListItemDeserializer(item: any): TelephonyBindingListItem {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n status: item[\"status\"],\n incoming_call_url: item[\"incoming_call_url\"],\n etag: item[\"etag\"],\n };\n}\n\n/** Alias for TelephonyBindingListItemUnion */\nexport type TelephonyBindingListItemUnion =\n | TeamsPhoneExtensionTelephonyBindingListItem\n | TwilioTelephonyBindingListItem\n | TelephonyBindingListItem;\n\nexport function telephonyBindingListItemUnionDeserializer(\n item: any,\n): TelephonyBindingListItemUnion {\n switch (item[\"provider\"]) {\n case \"teams_phone_extension\":\n return teamsPhoneExtensionTelephonyBindingListItemDeserializer(\n item as TeamsPhoneExtensionTelephonyBindingListItem,\n );\n\n case \"twilio\":\n return twilioTelephonyBindingListItemDeserializer(item as TwilioTelephonyBindingListItem);\n\n default:\n return telephonyBindingListItemDeserializer(item);\n }\n}\n\n/** A Microsoft Teams Phone Extension binding returned in a list, including its entity tag. */\nexport interface TeamsPhoneExtensionTelephonyBindingListItem extends TelephonyBindingListItem {\n /** The Microsoft Teams Phone Extension provider. */\n provider: \"teams_phone_extension\";\n /** The optional display phone number for the Teams resource account. */\n phone_number?: string;\n /** The Microsoft Teams resource-account object identifier as a GUID. */\n resource_account_object_id: string;\n}\n\nexport function teamsPhoneExtensionTelephonyBindingListItemDeserializer(\n item: any,\n): TeamsPhoneExtensionTelephonyBindingListItem {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n status: item[\"status\"],\n incoming_call_url: item[\"incoming_call_url\"],\n etag: item[\"etag\"],\n phone_number: item[\"phone_number\"],\n resource_account_object_id: item[\"resource_account_object_id\"],\n };\n}\n\n/** A Twilio binding returned in a list, including its entity tag. */\nexport interface TwilioTelephonyBindingListItem extends TelephonyBindingListItem {\n /** The Twilio provider. */\n provider: \"twilio\";\n /** The Twilio E.164 phone number. */\n phone_number: string;\n}\n\nexport function twilioTelephonyBindingListItemDeserializer(\n item: any,\n): TwilioTelephonyBindingListItem {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n connection_name: item[\"connection_name\"],\n label: item[\"label\"],\n status: item[\"status\"],\n incoming_call_url: item[\"incoming_call_url\"],\n etag: item[\"etag\"],\n phone_number: item[\"phone_number\"],\n };\n}\n\n/** The request to update an existing telephony binding. Every property is optional and the binding's provider is immutable. */\nexport interface UpdateTelephonyBindingRequest {\n /** The new lifecycle status. */\n status?: TelephonyBindingStatus;\n /** The replacement display label. Omit it to preserve the current value; use null to clear it. */\n label?: string;\n /** The replacement Foundry connection name. This property is valid only for a Teams Phone Extension binding; a Twilio binding's connection is immutable. */\n connection_name?: string;\n /** The replacement Teams Phone Extension display phone number. Omit it to preserve the current value; use null to clear it. This property is valid only for a Teams Phone Extension binding. */\n phone_number?: string;\n}\n\nexport function updateTelephonyBindingRequestSerializer(item: UpdateTelephonyBindingRequest): any {\n return {\n status: item[\"status\"],\n label: item[\"label\"],\n connection_name: item[\"connection_name\"],\n phone_number: item[\"phone_number\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultTelephonyCallSummary {\n /** The requested list of items. */\n data: TelephonyCallSummary[];\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 _agentsPagedResultTelephonyCallSummaryDeserializer(\n item: any,\n): _AgentsPagedResultTelephonyCallSummary {\n return {\n data: telephonyCallSummaryArrayDeserializer(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 telephonyCallSummaryArrayDeserializer(result: Array<TelephonyCallSummary>): any[] {\n return result.map((item) => {\n return telephonyCallSummaryDeserializer(item);\n });\n}\n\n/** A summary of a durable inbound call to a voice agent. */\nexport interface TelephonyCallSummary {\n /** The service-generated call identifier. */\n id: string;\n /** The telephony provider. */\n provider: TelephonyProvider;\n /** The provider-assigned call identifier, when available. */\n provider_call_id?: string;\n /** The caller's phone number, when supplied by the provider. */\n caller_number?: string;\n /** The Teams Phone Extension or Twilio number that received the call. */\n provider_number?: string;\n /** The lifecycle status of the call. */\n status: TelephonyCallStatus;\n /** The provider-neutral lifecycle phase reached by the call. */\n phase: TelephonyCallPhase;\n /** The Unix timestamp (in seconds) for when the inbound webhook was received. */\n started_at: Date;\n /** The Unix timestamp (in seconds) for when the provider reported the call as answered. */\n answered_at?: Date;\n /** The Unix timestamp (in seconds) for when the provider media channel connected. */\n media_connected_at?: Date;\n /** The Unix timestamp (in seconds) for when the voice-agent session became ready. */\n agent_session_ready_at?: Date;\n /** The Unix timestamp (in seconds) for when the call ended. */\n ended_at?: Date;\n /** The call duration. */\n duration_ms?: number;\n /** The service-generated reason that this single call ended, rather than the outcome of an overall outbound call job. Additional string codes may be returned. */\n end_reason?: TelephonyCallEndReason;\n /** The provider status code associated with the terminal result. */\n provider_status_code?: number;\n /** The provider subcode associated with the terminal result. */\n provider_sub_code?: number;\n /** The provider message associated with the terminal result. */\n provider_message?: string;\n}\n\nexport function telephonyCallSummaryDeserializer(item: any): TelephonyCallSummary {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n provider_call_id: item[\"provider_call_id\"],\n caller_number: item[\"caller_number\"],\n provider_number: item[\"provider_number\"],\n status: item[\"status\"],\n phase: item[\"phase\"],\n started_at: new Date(item[\"started_at\"] * 1000),\n answered_at: !item[\"answered_at\"] ? item[\"answered_at\"] : new Date(item[\"answered_at\"] * 1000),\n media_connected_at: !item[\"media_connected_at\"]\n ? item[\"media_connected_at\"]\n : new Date(item[\"media_connected_at\"] * 1000),\n agent_session_ready_at: !item[\"agent_session_ready_at\"]\n ? item[\"agent_session_ready_at\"]\n : new Date(item[\"agent_session_ready_at\"] * 1000),\n ended_at: !item[\"ended_at\"] ? item[\"ended_at\"] : new Date(item[\"ended_at\"] * 1000),\n duration_ms: item[\"duration_ms\"],\n end_reason: item[\"end_reason\"],\n provider_status_code: item[\"provider_status_code\"],\n provider_sub_code: item[\"provider_sub_code\"],\n provider_message: item[\"provider_message\"],\n };\n}\n\n/** The lifecycle status of an inbound telephony call. */\nexport type TelephonyCallStatus = \"in_progress\" | \"success\" | \"failed\";\n\n/** The provider-neutral phase reached by an inbound telephony call. */\nexport type TelephonyCallPhase =\n | \"received\"\n | \"validated\"\n | \"admitted\"\n | \"answering\"\n | \"answered\"\n | \"media_connected\"\n | \"agent_session_ready\"\n | \"bridging\"\n | \"managing\"\n | \"completed\"\n | \"rejected\"\n | \"failed\";\n\n/** Known service-generated reasons that one telephony call ended, rather than reasons for an overall outbound call job. Additional string codes may be returned. */\nexport type TelephonyCallEndReason =\n | \"invalid_webhook_payload\"\n | \"webhook_validation_failed\"\n | \"binding_not_found\"\n | \"binding_suspended\"\n | \"admission_rejected\"\n | \"admission_check_failed\"\n | \"route_agent_mismatch\"\n | \"invalid_binding_configuration\"\n | \"credential_resolution_failed\"\n | \"provider_resource_mismatch\"\n | \"endpoint_resolution_failed\"\n | \"ingress_setup_failed\"\n | \"live_call_conflict\"\n | \"live_call_persistence_failed\"\n | \"answer_failed\"\n | \"provider_disconnected\"\n | \"provider_busy\"\n | \"provider_no_answer\"\n | \"provider_cancelled\"\n | \"provider_failed\"\n | \"provider_stream_error\"\n | \"provider_stream_stopped\"\n | \"agent_session_connect_failed\"\n | \"media_stream_ended\"\n | \"bridge_cancelled\"\n | \"bridge_failed\"\n | \"managed_hangup\"\n | \"managed_transfer\"\n | \"manage_hangup_failed\"\n | \"manage_transfer_failed\"\n | string;\n\n/** Detailed diagnostics for a durable inbound call to a voice agent. */\nexport interface TelephonyCallRecord {\n /** The service-generated call identifier. */\n id: string;\n /** The telephony provider. */\n provider: TelephonyProvider;\n /** The provider-assigned call identifier, when available. */\n provider_call_id?: string;\n /** The caller's phone number, when supplied by the provider. */\n caller_number?: string;\n /** The Teams Phone Extension or Twilio number that received the call. */\n provider_number?: string;\n /** The lifecycle status of the call. */\n status: TelephonyCallStatus;\n /** The provider-neutral lifecycle phase reached by the call. */\n phase: TelephonyCallPhase;\n /** The Unix timestamp (in seconds) for when the inbound webhook was received. */\n started_at: Date;\n /** The Unix timestamp (in seconds) for when the provider reported the call as answered. */\n answered_at?: Date;\n /** The Unix timestamp (in seconds) for when the provider media channel connected. */\n media_connected_at?: Date;\n /** The Unix timestamp (in seconds) for when the voice-agent session became ready. */\n agent_session_ready_at?: Date;\n /** The Unix timestamp (in seconds) for when the call ended. */\n ended_at?: Date;\n /** The call duration. */\n duration_ms?: number;\n /** The service-generated reason that this single call ended, rather than the outcome of an overall outbound call job. Additional string codes may be returned. */\n end_reason?: TelephonyCallEndReason;\n /** The provider status code associated with the terminal result. */\n provider_status_code?: number;\n /** The provider subcode associated with the terminal result. */\n provider_sub_code?: number;\n /** The provider message associated with the terminal result. */\n provider_message?: string;\n /** Detailed provider-neutral call timing. */\n timing: TelephonyCallTiming;\n /** Correlation to the customer-facing Foundry trace. */\n trace?: TelephonyCallTrace;\n /** The lifecycle timeline. */\n events: TelephonyCallLifecycleEvent[];\n /** Whether older lifecycle events were omitted from the timeline. */\n events_truncated: boolean;\n}\n\nexport function telephonyCallRecordDeserializer(item: any): TelephonyCallRecord {\n return {\n id: item[\"id\"],\n provider: item[\"provider\"],\n provider_call_id: item[\"provider_call_id\"],\n caller_number: item[\"caller_number\"],\n provider_number: item[\"provider_number\"],\n status: item[\"status\"],\n phase: item[\"phase\"],\n started_at: new Date(item[\"started_at\"] * 1000),\n answered_at: !item[\"answered_at\"] ? item[\"answered_at\"] : new Date(item[\"answered_at\"] * 1000),\n media_connected_at: !item[\"media_connected_at\"]\n ? item[\"media_connected_at\"]\n : new Date(item[\"media_connected_at\"] * 1000),\n agent_session_ready_at: !item[\"agent_session_ready_at\"]\n ? item[\"agent_session_ready_at\"]\n : new Date(item[\"agent_session_ready_at\"] * 1000),\n ended_at: !item[\"ended_at\"] ? item[\"ended_at\"] : new Date(item[\"ended_at\"] * 1000),\n duration_ms: item[\"duration_ms\"],\n end_reason: item[\"end_reason\"],\n provider_status_code: item[\"provider_status_code\"],\n provider_sub_code: item[\"provider_sub_code\"],\n provider_message: item[\"provider_message\"],\n timing: telephonyCallTimingDeserializer(item[\"timing\"]),\n trace: !item[\"trace\"] ? item[\"trace\"] : telephonyCallTraceDeserializer(item[\"trace\"]),\n events: telephonyCallLifecycleEventArrayDeserializer(item[\"events\"]),\n events_truncated: item[\"events_truncated\"],\n };\n}\n\n/** Detailed provider-neutral timing for an inbound telephony call. */\nexport interface TelephonyCallTiming {\n /** The Unix timestamp (in seconds) for when the provider webhook was received. */\n received_at?: Date;\n /** The Unix timestamp (in seconds) for when webhook validation completed. */\n validated_at?: Date;\n /** The Unix timestamp (in seconds) for when the call was admitted to an agent binding. */\n admitted_at?: Date;\n /** The Unix timestamp (in seconds) for when the service requested that the provider answer the call. */\n answer_requested_at?: Date;\n /** The Unix timestamp (in seconds) for when the provider reported that the call was answered. */\n answered_at?: Date;\n /** The Unix timestamp (in seconds) for when the provider media channel connected. */\n media_connected_at?: Date;\n /** The Unix timestamp (in seconds) for when the voice-agent session became ready. */\n agent_session_ready_at?: Date;\n /** The Unix timestamp (in seconds) for when caller audio was first observed. */\n first_caller_audio_at?: Date;\n /** The Unix timestamp (in seconds) for when agent audio was first observed. */\n first_agent_audio_at?: Date;\n /** The Unix timestamp (in seconds) for when the call reached a terminal state. */\n ended_at?: Date;\n /** The timestamp used as the basis for duration. */\n duration_basis?: TelephonyCallDurationBasis;\n /** The primary source of the timing milestones. Individual lifecycle events identify their own timestamp source separately. */\n timestamp_source: TelephonyCallTimestampSource;\n}\n\nexport function telephonyCallTimingDeserializer(item: any): TelephonyCallTiming {\n return {\n received_at: !item[\"received_at\"] ? item[\"received_at\"] : new Date(item[\"received_at\"] * 1000),\n validated_at: !item[\"validated_at\"]\n ? item[\"validated_at\"]\n : new Date(item[\"validated_at\"] * 1000),\n admitted_at: !item[\"admitted_at\"] ? item[\"admitted_at\"] : new Date(item[\"admitted_at\"] * 1000),\n answer_requested_at: !item[\"answer_requested_at\"]\n ? item[\"answer_requested_at\"]\n : new Date(item[\"answer_requested_at\"] * 1000),\n answered_at: !item[\"answered_at\"] ? item[\"answered_at\"] : new Date(item[\"answered_at\"] * 1000),\n media_connected_at: !item[\"media_connected_at\"]\n ? item[\"media_connected_at\"]\n : new Date(item[\"media_connected_at\"] * 1000),\n agent_session_ready_at: !item[\"agent_session_ready_at\"]\n ? item[\"agent_session_ready_at\"]\n : new Date(item[\"agent_session_ready_at\"] * 1000),\n first_caller_audio_at: !item[\"first_caller_audio_at\"]\n ? item[\"first_caller_audio_at\"]\n : new Date(item[\"first_caller_audio_at\"] * 1000),\n first_agent_audio_at: !item[\"first_agent_audio_at\"]\n ? item[\"first_agent_audio_at\"]\n : new Date(item[\"first_agent_audio_at\"] * 1000),\n ended_at: !item[\"ended_at\"] ? item[\"ended_at\"] : new Date(item[\"ended_at\"] * 1000),\n duration_basis: item[\"duration_basis\"],\n timestamp_source: item[\"timestamp_source\"],\n };\n}\n\n/** The timestamp used as the basis for call duration. */\nexport type TelephonyCallDurationBasis = \"answered\" | \"received\";\n\n/** The source of a telephony lifecycle timestamp. */\nexport type TelephonyCallTimestampSource = \"provider\" | \"gateway\" | \"derived\";\n\n/** Correlation from a durable telephony call record to its customer-facing Foundry trace. */\nexport interface TelephonyCallTrace {\n /** The trace availability status. */\n status: TelephonyCallTraceStatus;\n /** The W3C trace identifier, when a trace was recorded. */\n trace_id?: string;\n /** The root span identifier, when a trace was recorded. */\n root_span_id?: string;\n /** The voice-agent conversation identifier, when a conversation was created. */\n conversation_id?: string;\n /** Whether the trace was emitted live or after the call ended. */\n mode?: TelephonyCallTraceMode;\n}\n\nexport function telephonyCallTraceDeserializer(item: any): TelephonyCallTrace {\n return {\n status: item[\"status\"],\n trace_id: item[\"trace_id\"],\n root_span_id: item[\"root_span_id\"],\n conversation_id: item[\"conversation_id\"],\n mode: item[\"mode\"],\n };\n}\n\n/** The availability status of a customer-facing telephony call trace. */\nexport type TelephonyCallTraceStatus =\n \"pending\" | \"emitting\" | \"available\" | \"not_recorded\" | \"not_applicable\" | \"failed\";\n\n/** The mode used to expose a telephony call as a customer-facing Foundry trace. */\nexport type TelephonyCallTraceMode = \"live\" | \"post_call\";\n\nexport function telephonyCallLifecycleEventArrayDeserializer(\n result: Array<TelephonyCallLifecycleEvent>,\n): any[] {\n return result.map((item) => {\n return telephonyCallLifecycleEventDeserializer(item);\n });\n}\n\n/** A bounded durable observation in the lifecycle of one telephony call. */\nexport interface TelephonyCallLifecycleEvent {\n /** The service-assigned order of the event within the call record. */\n readonly sequence: number;\n /** The stable provider-neutral event name. */\n name: TelephonyCallLifecycleEventName;\n /** The component that supplied the observation. */\n source: TelephonyCallLifecycleEventSource;\n /** The outcome of the observed lifecycle operation. */\n outcome: TelephonyCallLifecycleEventOutcome;\n /** The Unix timestamp (in seconds) for when the service observed the event. */\n observed_at: Date;\n /** The Unix timestamp (in seconds) for when the event occurred according to the provider. */\n occurred_at?: Date;\n /** The source of the event timestamp. */\n timestamp_source: TelephonyCallTimestampSource;\n /** A stable service-generated reason associated with this lifecycle event, not necessarily the final outcome of the call. Additional string codes may be returned. */\n reason?: TelephonyCallLifecycleEventReason;\n /** The provider event identifier used for idempotency, when supplied. */\n provider_event_id?: string;\n /** The provider event sequence, when supplied. */\n provider_sequence?: number;\n /** The provider status code associated with the event. */\n provider_status_code?: number;\n /** The provider subcode associated with the event. */\n provider_sub_code?: number;\n}\n\nexport function telephonyCallLifecycleEventDeserializer(item: any): TelephonyCallLifecycleEvent {\n return {\n sequence: item[\"sequence\"],\n name: item[\"name\"],\n source: item[\"source\"],\n outcome: item[\"outcome\"],\n observed_at: new Date(item[\"observed_at\"] * 1000),\n occurred_at: !item[\"occurred_at\"] ? item[\"occurred_at\"] : new Date(item[\"occurred_at\"] * 1000),\n timestamp_source: item[\"timestamp_source\"],\n reason: item[\"reason\"],\n provider_event_id: item[\"provider_event_id\"],\n provider_sequence: item[\"provider_sequence\"],\n provider_status_code: item[\"provider_status_code\"],\n provider_sub_code: item[\"provider_sub_code\"],\n };\n}\n\n/** A provider-neutral lifecycle event name. Known values are stable; additional values may be added over time. */\nexport type TelephonyCallLifecycleEventName =\n | \"telephony.webhook.received\"\n | \"telephony.webhook.validation\"\n | \"telephony.binding.resolve\"\n | \"telephony.provider.answer\"\n | \"telephony.media.connect\"\n | \"telephony.agent_session.connect\"\n | \"telephony.media.first_caller_audio\"\n | \"telephony.media.first_agent_audio\"\n | \"telephony.call.transfer\"\n | \"telephony.call.hangup\"\n | \"telephony.call.disconnect\";\n\n/** The component that supplied a telephony lifecycle observation. */\nexport type TelephonyCallLifecycleEventSource =\n \"gateway\" | \"teams_phone_extension\" | \"twilio\" | \"voice_agent\";\n\n/** The outcome of one telephony lifecycle observation. */\nexport type TelephonyCallLifecycleEventOutcome =\n \"observed\" | \"started\" | \"succeeded\" | \"failed\" | \"rejected\" | \"cancelled\";\n\n/** Known service-generated reasons for a telephony lifecycle event. An event reason does not necessarily describe the final outcome of the call. Additional string codes may be returned. */\nexport type TelephonyCallLifecycleEventReason =\n | \"invalid_webhook_payload\"\n | \"webhook_validation_failed\"\n | \"binding_not_found\"\n | \"binding_suspended\"\n | \"admission_rejected\"\n | \"admission_check_failed\"\n | \"route_agent_mismatch\"\n | \"invalid_binding_configuration\"\n | \"credential_resolution_failed\"\n | \"provider_resource_mismatch\"\n | \"endpoint_resolution_failed\"\n | \"ingress_setup_failed\"\n | \"live_call_conflict\"\n | \"live_call_persistence_failed\"\n | \"answer_failed\"\n | \"provider_disconnected\"\n | \"provider_busy\"\n | \"provider_no_answer\"\n | \"provider_cancelled\"\n | \"provider_failed\"\n | \"provider_stream_error\"\n | \"provider_stream_stopped\"\n | \"agent_session_connect_failed\"\n | \"media_stream_ended\"\n | \"bridge_cancelled\"\n | \"bridge_failed\"\n | \"managed_hangup\"\n | \"managed_transfer\"\n | \"manage_hangup_failed\"\n | \"manage_transfer_failed\"\n | string;\n\n/** The telephony transfer targets configured for one voice agent. */\nexport interface TelephonyTransferTargets {\n /** The complete set of destinations to which the voice agent may transfer calls. An empty array clears all targets when replacing the configuration. */\n transfer_targets: TelephonyTransferTarget[];\n}\n\nexport function telephonyTransferTargetsDeserializer(item: any): TelephonyTransferTargets {\n return {\n transfer_targets: telephonyTransferTargetArrayDeserializer(item[\"transfer_targets\"]),\n };\n}\n\nexport function telephonyTransferTargetArraySerializer(\n result: Array<TelephonyTransferTarget>,\n): any[] {\n return result.map((item) => {\n return telephonyTransferTargetSerializer(item);\n });\n}\n\nexport function telephonyTransferTargetArrayDeserializer(\n result: Array<TelephonyTransferTarget>,\n): any[] {\n return result.map((item) => {\n return telephonyTransferTargetDeserializer(item);\n });\n}\n\n/** A named destination to which the voice agent may transfer a call. */\nexport interface TelephonyTransferTarget {\n /** The unique name exposed to the voice agent for this transfer target. */\n name: string;\n /** A description that helps the voice agent decide when to use this target. */\n description: string;\n /** The provider-specific transfer destination. */\n destination: TelephonyTransferDestinationUnion;\n}\n\nexport function telephonyTransferTargetSerializer(item: TelephonyTransferTarget): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n destination: telephonyTransferDestinationUnionSerializer(item[\"destination\"]),\n };\n}\n\nexport function telephonyTransferTargetDeserializer(item: any): TelephonyTransferTarget {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n destination: telephonyTransferDestinationUnionDeserializer(item[\"destination\"]),\n };\n}\n\n/** A destination for a telephony transfer target. */\nexport interface TelephonyTransferDestination {\n /** The telephony transfer destination type. */\n /** The discriminator possible values: pstn, teams, sip */\n kind: TelephonyTransferDestinationKind;\n}\n\nexport function telephonyTransferDestinationSerializer(item: TelephonyTransferDestination): any {\n return { kind: item[\"kind\"] };\n}\n\nexport function telephonyTransferDestinationDeserializer(item: any): TelephonyTransferDestination {\n return {\n kind: item[\"kind\"],\n };\n}\n\n/** Alias for TelephonyTransferDestinationUnion */\nexport type TelephonyTransferDestinationUnion =\n | PstnTelephonyTransferDestination\n | TeamsTelephonyTransferDestination\n | SipTelephonyTransferDestination\n | TelephonyTransferDestination;\n\nexport function telephonyTransferDestinationUnionSerializer(\n item: TelephonyTransferDestinationUnion,\n): any {\n switch (item.kind) {\n case \"pstn\":\n return pstnTelephonyTransferDestinationSerializer(item as PstnTelephonyTransferDestination);\n\n case \"teams\":\n return teamsTelephonyTransferDestinationSerializer(item as TeamsTelephonyTransferDestination);\n\n case \"sip\":\n return sipTelephonyTransferDestinationSerializer(item as SipTelephonyTransferDestination);\n\n default:\n return telephonyTransferDestinationSerializer(item);\n }\n}\n\nexport function telephonyTransferDestinationUnionDeserializer(\n item: any,\n): TelephonyTransferDestinationUnion {\n switch (item[\"kind\"]) {\n case \"pstn\":\n return pstnTelephonyTransferDestinationDeserializer(item as PstnTelephonyTransferDestination);\n\n case \"teams\":\n return teamsTelephonyTransferDestinationDeserializer(\n item as TeamsTelephonyTransferDestination,\n );\n\n case \"sip\":\n return sipTelephonyTransferDestinationDeserializer(item as SipTelephonyTransferDestination);\n\n default:\n return telephonyTransferDestinationDeserializer(item);\n }\n}\n\n/** The kind of telephony transfer destination. Known values are stable; additional values may be added over time. */\nexport type TelephonyTransferDestinationKind = \"pstn\" | \"teams\" | \"sip\";\n\n/** A PSTN destination for a telephony transfer target. */\nexport interface PstnTelephonyTransferDestination extends TelephonyTransferDestination {\n /** The PSTN destination type. */\n kind: \"pstn\";\n /** The E.164 phone number to call. */\n value: string;\n}\n\nexport function pstnTelephonyTransferDestinationSerializer(\n item: PstnTelephonyTransferDestination,\n): any {\n return { kind: item[\"kind\"], value: item[\"value\"] };\n}\n\nexport function pstnTelephonyTransferDestinationDeserializer(\n item: any,\n): PstnTelephonyTransferDestination {\n return {\n kind: item[\"kind\"],\n value: item[\"value\"],\n };\n}\n\n/** A Microsoft Teams destination for a telephony transfer target. */\nexport interface TeamsTelephonyTransferDestination extends TelephonyTransferDestination {\n /** The Microsoft Teams destination type. */\n kind: \"teams\";\n /** The Microsoft Teams user or resource-account identifier. */\n value: string;\n}\n\nexport function teamsTelephonyTransferDestinationSerializer(\n item: TeamsTelephonyTransferDestination,\n): any {\n return { kind: item[\"kind\"], value: item[\"value\"] };\n}\n\nexport function teamsTelephonyTransferDestinationDeserializer(\n item: any,\n): TeamsTelephonyTransferDestination {\n return {\n kind: item[\"kind\"],\n value: item[\"value\"],\n };\n}\n\n/** A SIP destination for a telephony transfer target. */\nexport interface SipTelephonyTransferDestination extends TelephonyTransferDestination {\n /** The SIP destination type. */\n kind: \"sip\";\n /** The SIP or SIPS URI to call. */\n value: string;\n}\n\nexport function sipTelephonyTransferDestinationSerializer(\n item: SipTelephonyTransferDestination,\n): any {\n return { kind: item[\"kind\"], value: item[\"value\"] };\n}\n\nexport function sipTelephonyTransferDestinationDeserializer(\n item: any,\n): SipTelephonyTransferDestination {\n return {\n kind: item[\"kind\"],\n value: item[\"value\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultVoiceConversation {\n /** The requested list of items. */\n data: VoiceConversation[];\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 _agentsPagedResultVoiceConversationDeserializer(\n item: any,\n): _AgentsPagedResultVoiceConversation {\n return {\n data: voiceConversationArrayDeserializer(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 voiceConversationArrayDeserializer(result: Array<VoiceConversation>): any[] {\n return result.map((item) => {\n return voiceConversationDeserializer(item);\n });\n}\n\n/**\n * A persisted voice conversation. The Foundry envelope that owns a voice agent's stored\n * transcript, responses, per-turn metrics, and audio. It is the parent, retention, and delete boundary:\n * deleting it cascades to its responses, items, metrics, and audio. When finalization fails, any partial persisted\n * responses, items, and item audio remain readable.\n */\nexport interface VoiceConversation {\n /** The unique id of the conversation. */\n id: string;\n /** The object type. Always `voice.conversation`. */\n object: \"voice.conversation\";\n /** The lifecycle status of the conversation. */\n status: VoiceConversationStatus;\n /** The Unix timestamp (in seconds) for when the conversation was created. */\n created_at: Date;\n /** The Unix timestamp (in seconds) for when session and persistence finalization reached the terminal `completed` or `failed` status. Absent while `status` is `in_progress`. */\n completed_at?: Date;\n /** A set of key-value pairs attached to the conversation. */\n metadata?: Record<string, string>;\n /** Final aggregate token usage across all responses in this conversation. Absent while `status` is `in_progress` and populated after successful `completed` finalization; it may be absent when `status` is `failed`, and values are not guaranteed to be reported incrementally. */\n usage?: RealtimeResponseUsage;\n /** The terminal error that prevented persistence finalization. Present only when `status` is `failed`. */\n last_error?: ErrorModel;\n}\n\nexport function voiceConversationDeserializer(item: any): VoiceConversation {\n return {\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n completed_at: !item[\"completed_at\"]\n ? item[\"completed_at\"]\n : new Date(item[\"completed_at\"] * 1000),\n metadata: !item[\"metadata\"]\n ? item[\"metadata\"]\n : Object.fromEntries(Object.entries(item[\"metadata\"]).map(([k, p]: [string, any]) => [k, p])),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageDeserializer(item[\"usage\"]),\n last_error: !item[\"last_error\"] ? item[\"last_error\"] : errorDeserializer(item[\"last_error\"]),\n };\n}\n\n/**\n * The lifecycle status of a persisted voice conversation:\n * - `in_progress`: the live session is active, or post-session persistence finalization is pending.\n * - `completed`: finalization succeeded after normal or client close, `end_conversation`, a max-duration `1001`\n * close, or a client or network disconnect that the service can still finalize.\n * - `failed`: a terminal service, bridge, storage, or unrecoverable transport failure prevented finalization.\n */\nexport type VoiceConversationStatus = \"in_progress\" | \"completed\" | \"failed\";\n\n/** model interface RealtimeResponseUsage */\nexport interface RealtimeResponseUsage {\n /** The combined number of input and output tokens for this response. */\n total_tokens?: number;\n /** The number of tokens supplied as input when generating this response. */\n input_tokens?: number;\n /** The number of tokens generated as output for this response. */\n output_tokens?: number;\n /**\n * The breakdown of input tokens by content type and cache usage. Cached tokens are included in\n * the input token count.\n */\n input_token_details?: RealtimeResponseUsageInputTokenDetails;\n /** The breakdown of generated output tokens by content type. */\n output_token_details?: RealtimeResponseUsageOutputTokenDetails;\n}\n\nexport function realtimeResponseUsageSerializer(item: RealtimeResponseUsage): any {\n return {\n total_tokens: item[\"total_tokens\"],\n input_tokens: item[\"input_tokens\"],\n output_tokens: item[\"output_tokens\"],\n input_token_details: !item[\"input_token_details\"]\n ? item[\"input_token_details\"]\n : realtimeResponseUsageInputTokenDetailsSerializer(item[\"input_token_details\"]),\n output_token_details: !item[\"output_token_details\"]\n ? item[\"output_token_details\"]\n : realtimeResponseUsageOutputTokenDetailsSerializer(item[\"output_token_details\"]),\n };\n}\n\nexport function realtimeResponseUsageDeserializer(item: any): RealtimeResponseUsage {\n return {\n total_tokens: item[\"total_tokens\"],\n input_tokens: item[\"input_tokens\"],\n output_tokens: item[\"output_tokens\"],\n input_token_details: !item[\"input_token_details\"]\n ? item[\"input_token_details\"]\n : realtimeResponseUsageInputTokenDetailsDeserializer(item[\"input_token_details\"]),\n output_token_details: !item[\"output_token_details\"]\n ? item[\"output_token_details\"]\n : realtimeResponseUsageOutputTokenDetailsDeserializer(item[\"output_token_details\"]),\n };\n}\n\n/** model interface RealtimeResponseUsageInputTokenDetails */\nexport interface RealtimeResponseUsageInputTokenDetails {\n /** The number of input tokens reused from the cache for this response. */\n cached_tokens?: number;\n /** The number of text tokens used as input for this response. */\n text_tokens?: number;\n /** The number of image tokens used as input for this response. */\n image_tokens?: number;\n /** The number of audio tokens used as input for this response. */\n audio_tokens?: number;\n /** The breakdown of cached input tokens by content type. */\n cached_tokens_details?: RealtimeResponseUsageInputTokenDetailsCachedTokensDetails;\n}\n\nexport function realtimeResponseUsageInputTokenDetailsSerializer(\n item: RealtimeResponseUsageInputTokenDetails,\n): any {\n return {\n cached_tokens: item[\"cached_tokens\"],\n text_tokens: item[\"text_tokens\"],\n image_tokens: item[\"image_tokens\"],\n audio_tokens: item[\"audio_tokens\"],\n cached_tokens_details: !item[\"cached_tokens_details\"]\n ? item[\"cached_tokens_details\"]\n : realtimeResponseUsageInputTokenDetailsCachedTokensDetailsSerializer(\n item[\"cached_tokens_details\"],\n ),\n };\n}\n\nexport function realtimeResponseUsageInputTokenDetailsDeserializer(\n item: any,\n): RealtimeResponseUsageInputTokenDetails {\n return {\n cached_tokens: item[\"cached_tokens\"],\n text_tokens: item[\"text_tokens\"],\n image_tokens: item[\"image_tokens\"],\n audio_tokens: item[\"audio_tokens\"],\n cached_tokens_details: !item[\"cached_tokens_details\"]\n ? item[\"cached_tokens_details\"]\n : realtimeResponseUsageInputTokenDetailsCachedTokensDetailsDeserializer(\n item[\"cached_tokens_details\"],\n ),\n };\n}\n\n/** model interface RealtimeResponseUsageInputTokenDetailsCachedTokensDetails */\nexport interface RealtimeResponseUsageInputTokenDetailsCachedTokensDetails {\n /** The number of cached text tokens reused as input for this response. */\n text_tokens?: number;\n /** The number of cached image tokens reused as input for this response. */\n image_tokens?: number;\n /** The number of cached audio tokens reused as input for this response. */\n audio_tokens?: number;\n}\n\nexport function realtimeResponseUsageInputTokenDetailsCachedTokensDetailsSerializer(\n item: RealtimeResponseUsageInputTokenDetailsCachedTokensDetails,\n): any {\n return {\n text_tokens: item[\"text_tokens\"],\n image_tokens: item[\"image_tokens\"],\n audio_tokens: item[\"audio_tokens\"],\n };\n}\n\nexport function realtimeResponseUsageInputTokenDetailsCachedTokensDetailsDeserializer(\n item: any,\n): RealtimeResponseUsageInputTokenDetailsCachedTokensDetails {\n return {\n text_tokens: item[\"text_tokens\"],\n image_tokens: item[\"image_tokens\"],\n audio_tokens: item[\"audio_tokens\"],\n };\n}\n\n/** model interface RealtimeResponseUsageOutputTokenDetails */\nexport interface RealtimeResponseUsageOutputTokenDetails {\n /** The number of text tokens generated in this response. */\n text_tokens?: number;\n /** The number of audio tokens generated in this response. */\n audio_tokens?: number;\n}\n\nexport function realtimeResponseUsageOutputTokenDetailsSerializer(\n item: RealtimeResponseUsageOutputTokenDetails,\n): any {\n return { text_tokens: item[\"text_tokens\"], audio_tokens: item[\"audio_tokens\"] };\n}\n\nexport function realtimeResponseUsageOutputTokenDetailsDeserializer(\n item: any,\n): RealtimeResponseUsageOutputTokenDetails {\n return {\n text_tokens: item[\"text_tokens\"],\n audio_tokens: item[\"audio_tokens\"],\n };\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultVoiceResponse {\n /** The requested list of items. */\n data: VoiceResponse[];\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 _agentsPagedResultVoiceResponseDeserializer(\n item: any,\n): _AgentsPagedResultVoiceResponse {\n return {\n data: voiceResponseArrayDeserializer(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 voiceResponseArrayDeserializer(result: Array<VoiceResponse>): any[] {\n return result.map((item) => {\n return voiceResponseDeserializer(item);\n });\n}\n\n/**\n * A persisted voice response representing one model inference turn within a conversation. In list results the\n * `output` projection may be omitted; retrieve the\n * full response (`GET .../responses/{response_id}`) or the paged response-items route\n * (`GET .../responses/{response_id}/items`) for its output items. `created_at`/`completed_at` are Foundry\n * durable ordering extensions.\n */\nexport interface VoiceResponse extends VoiceResponseBase {\n /** The unique id of the response. */\n id: string;\n /** The output items produced by the response. May be omitted in list results; retrieve the full response (GET .../responses/{response_id}) or use the paged response-items route (GET .../responses/{response_id}/items) for its output items. Each item's `response_id` also links it back to this response in the conversation-level items list. */\n output?: RealtimeConversationItemUnion[];\n /** The id of the conversation this response belongs to. */\n conversation_id: string;\n /** The audio configuration used for the response, including the voice and audio format used for output. */\n audio?: VoiceResponseAudio;\n /** A set of key-value pairs attached to the response. */\n metadata?: Record<string, string>;\n /** The sampling temperature used for the response. */\n temperature?: number;\n /** The Unix timestamp (in seconds) for when the response was created. */\n created_at?: Date;\n /** The Unix timestamp (in seconds) for when the response completed. */\n completed_at?: Date;\n}\n\nexport function voiceResponseDeserializer(item: any): VoiceResponse {\n return {\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n status_details: !item[\"status_details\"]\n ? item[\"status_details\"]\n : realtimeResponseStatusDetailsDeserializer(item[\"status_details\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageDeserializer(item[\"usage\"]),\n conversation_id: item[\"conversation_id\"],\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceResponseBaseMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n output: !item[\"output\"]\n ? item[\"output\"]\n : realtimeConversationItemUnionArrayDeserializer(item[\"output\"]),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceResponseAudioDeserializer(item[\"audio\"]),\n metadata: !item[\"metadata\"]\n ? item[\"metadata\"]\n : Object.fromEntries(Object.entries(item[\"metadata\"]).map(([k, p]: [string, any]) => [k, p])),\n temperature: item[\"temperature\"],\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n completed_at: !item[\"completed_at\"]\n ? item[\"completed_at\"]\n : new Date(item[\"completed_at\"] * 1000),\n };\n}\n\nexport function realtimeConversationItemUnionArraySerializer(\n result: Array<RealtimeConversationItemUnion>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemUnionSerializer(item);\n });\n}\n\nexport function realtimeConversationItemUnionArrayDeserializer(\n result: Array<RealtimeConversationItemUnion>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemUnionDeserializer(item);\n });\n}\n\n/** A single item within a Realtime conversation. */\nexport interface RealtimeConversationItem {\n /** The kind of conversation item, which determines its content and associated fields. */\n type: RealtimeConversationItemType;\n}\n\nexport function realtimeConversationItemSerializer(item: RealtimeConversationItem): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeConversationItemDeserializer(item: any): RealtimeConversationItem {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RealtimeConversationItemUnion */\nexport type RealtimeConversationItemUnion =\n | RealtimeConversationItemMessageUnion\n | RealtimeConversationItemFunctionCall\n | RealtimeConversationItemFunctionCallOutput\n | RealtimeMCPApprovalResponse\n | RealtimeMCPListTools\n | RealtimeMCPToolCall\n | RealtimeMCPApprovalRequest\n | RealtimeConversationItem;\n\nexport function realtimeConversationItemUnionSerializer(item: RealtimeConversationItemUnion): any {\n switch (item.type) {\n case \"message\":\n return realtimeConversationItemMessageUnionSerializer(\n item as RealtimeConversationItemMessageUnion,\n );\n case \"function_call\":\n return realtimeConversationItemFunctionCallSerializer(\n item as RealtimeConversationItemFunctionCall,\n );\n\n case \"function_call_output\":\n return realtimeConversationItemFunctionCallOutputSerializer(\n item as RealtimeConversationItemFunctionCallOutput,\n );\n\n case \"mcp_approval_response\":\n return realtimeMCPApprovalResponseSerializer(item as RealtimeMCPApprovalResponse);\n\n case \"mcp_list_tools\":\n return realtimeMCPListToolsSerializer(item as RealtimeMCPListTools);\n\n case \"mcp_call\":\n return realtimeMCPToolCallSerializer(item as RealtimeMCPToolCall);\n\n case \"mcp_approval_request\":\n return realtimeMCPApprovalRequestSerializer(item as RealtimeMCPApprovalRequest);\n\n default:\n return realtimeConversationItemSerializer(item);\n }\n}\n\nexport function realtimeConversationItemUnionDeserializer(\n item: any,\n): RealtimeConversationItemUnion {\n switch (item[\"type\"]) {\n case \"message\":\n return realtimeConversationItemMessageUnionDeserializer(\n item as RealtimeConversationItemMessageUnion,\n );\n case \"function_call\":\n return realtimeConversationItemFunctionCallDeserializer(\n item as RealtimeConversationItemFunctionCall,\n );\n\n case \"function_call_output\":\n return realtimeConversationItemFunctionCallOutputDeserializer(\n item as RealtimeConversationItemFunctionCallOutput,\n );\n\n case \"mcp_approval_response\":\n return realtimeMCPApprovalResponseDeserializer(item as RealtimeMCPApprovalResponse);\n\n case \"mcp_list_tools\":\n return realtimeMCPListToolsDeserializer(item as RealtimeMCPListTools);\n\n case \"mcp_call\":\n return realtimeMCPToolCallDeserializer(item as RealtimeMCPToolCall);\n\n case \"mcp_approval_request\":\n return realtimeMCPApprovalRequestDeserializer(item as RealtimeMCPApprovalRequest);\n\n default:\n return realtimeConversationItemDeserializer(item);\n }\n}\n\n/** Type of RealtimeConversationItemType */\nexport type RealtimeConversationItemType =\n | \"function_call\"\n | \"function_call_output\"\n | \"mcp_approval_response\"\n | \"mcp_list_tools\"\n | \"mcp_call\"\n | \"mcp_approval_request\"\n | \"message\";\n\n/** model interface RealtimeConversationItemMessage */\nexport interface RealtimeConversationItemMessage extends RealtimeConversationItem {\n /** The role of the message sender in the conversation. */\n role: RealtimeConversationItemMessageType;\n /** The conversation item type. Always `message`. */\n type: \"message\";\n}\n\nexport function realtimeConversationItemMessageSerializer(\n item: RealtimeConversationItemMessage,\n): any {\n return { type: item[\"type\"], role: item[\"role\"] };\n}\n\nexport function realtimeConversationItemMessageDeserializer(\n item: any,\n): RealtimeConversationItemMessage {\n return {\n type: item[\"type\"],\n role: item[\"role\"],\n };\n}\n\n/** Alias for RealtimeConversationItemMessageUnion */\nexport type RealtimeConversationItemMessageUnion =\n | RealtimeConversationItemMessageSystem\n | RealtimeConversationItemMessageUser\n | RealtimeConversationItemMessageAssistant\n | RealtimeConversationItemMessage;\n\nexport function realtimeConversationItemMessageUnionSerializer(\n item: RealtimeConversationItemMessageUnion,\n): any {\n switch (item.role) {\n case \"system\":\n return realtimeConversationItemMessageSystemSerializer(\n item as RealtimeConversationItemMessageSystem,\n );\n\n case \"user\":\n return realtimeConversationItemMessageUserSerializer(\n item as RealtimeConversationItemMessageUser,\n );\n\n case \"assistant\":\n return realtimeConversationItemMessageAssistantSerializer(\n item as RealtimeConversationItemMessageAssistant,\n );\n\n default:\n return realtimeConversationItemMessageSerializer(item);\n }\n}\n\nexport function realtimeConversationItemMessageUnionDeserializer(\n item: any,\n): RealtimeConversationItemMessageUnion {\n switch (item[\"role\"]) {\n case \"system\":\n return realtimeConversationItemMessageSystemDeserializer(\n item as RealtimeConversationItemMessageSystem,\n );\n\n case \"user\":\n return realtimeConversationItemMessageUserDeserializer(\n item as RealtimeConversationItemMessageUser,\n );\n\n case \"assistant\":\n return realtimeConversationItemMessageAssistantDeserializer(\n item as RealtimeConversationItemMessageAssistant,\n );\n\n default:\n return realtimeConversationItemMessageDeserializer(item);\n }\n}\n\n/** Type of RealtimeConversationItemMessageType */\nexport type RealtimeConversationItemMessageType = \"system\" | \"user\" | \"assistant\";\n\n/** A system message in a Realtime conversation can be used to provide additional context or instructions to the model. This is similar but distinct from the instruction prompt provided at the start of a conversation, as system messages can be added at any point in the conversation. For major changes to the conversation's behavior, use instructions, but for smaller updates (e.g. \"the user is now asking about a different topic\"), use system messages. */\nexport interface RealtimeConversationItemMessageSystem extends RealtimeConversationItemMessage {\n /** The unique ID of the item. This may be provided by the client or generated by the server. */\n id?: string;\n /** Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. */\n object?: \"realtime.item\";\n /** The type of the item. Always `message`. */\n type: \"message\";\n /** The status of the item. Has no effect on the conversation. */\n status?: \"completed\" | \"incomplete\" | \"in_progress\";\n /** The role of the message sender. Always `system`. */\n role: \"system\";\n /** The content of the message. */\n content: RealtimeConversationItemMessageSystemContent[];\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeConversationItemMessageSystemSerializer(\n item: RealtimeConversationItemMessageSystem,\n): any {\n return {\n role: item[\"role\"],\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n content: realtimeConversationItemMessageSystemContentArraySerializer(item[\"content\"]),\n };\n}\n\nexport function realtimeConversationItemMessageSystemDeserializer(\n item: any,\n): RealtimeConversationItemMessageSystem {\n return {\n role: item[\"role\"],\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n content: realtimeConversationItemMessageSystemContentArrayDeserializer(item[\"content\"]),\n created_at:\n item[\"created_at\"] === undefined || item[\"created_at\"] === null\n ? item[\"created_at\"]\n : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\nexport function realtimeConversationItemMessageSystemContentArraySerializer(\n result: Array<RealtimeConversationItemMessageSystemContent>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemMessageSystemContentSerializer(item);\n });\n}\n\nexport function realtimeConversationItemMessageSystemContentArrayDeserializer(\n result: Array<RealtimeConversationItemMessageSystemContent>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemMessageSystemContentDeserializer(item);\n });\n}\n\n/** model interface RealtimeConversationItemMessageSystemContent */\nexport interface RealtimeConversationItemMessageSystemContent {\n /** The system message content type. Always `input_text`. */\n type?: \"input_text\";\n /** The instructions or context supplied in this system message content part. */\n text?: string;\n}\n\nexport function realtimeConversationItemMessageSystemContentSerializer(\n item: RealtimeConversationItemMessageSystemContent,\n): any {\n return { type: item[\"type\"], text: item[\"text\"] };\n}\n\nexport function realtimeConversationItemMessageSystemContentDeserializer(\n item: any,\n): RealtimeConversationItemMessageSystemContent {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n };\n}\n\n/** A user message item in a Realtime conversation. */\nexport interface RealtimeConversationItemMessageUser extends RealtimeConversationItemMessage {\n /** The unique ID of the item. This may be provided by the client or generated by the server. */\n id?: string;\n /** Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. */\n object?: \"realtime.item\";\n /** The type of the item. Always `message`. */\n type: \"message\";\n /** The status of the item. Has no effect on the conversation. */\n status?: \"completed\" | \"incomplete\" | \"in_progress\";\n /** The role of the message sender. Always `user`. */\n role: \"user\";\n /** The content of the message. */\n content: RealtimeConversationItemMessageUserContent[];\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeConversationItemMessageUserSerializer(\n item: RealtimeConversationItemMessageUser,\n): any {\n return {\n role: item[\"role\"],\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n content: realtimeConversationItemMessageUserContentArraySerializer(item[\"content\"]),\n };\n}\n\nexport function realtimeConversationItemMessageUserDeserializer(\n item: any,\n): RealtimeConversationItemMessageUser {\n return {\n role: item[\"role\"],\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n content: realtimeConversationItemMessageUserContentArrayDeserializer(item[\"content\"]),\n created_at:\n item[\"created_at\"] === undefined || item[\"created_at\"] === null\n ? item[\"created_at\"]\n : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\nexport function realtimeConversationItemMessageUserContentArraySerializer(\n result: Array<RealtimeConversationItemMessageUserContent>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemMessageUserContentSerializer(item);\n });\n}\n\nexport function realtimeConversationItemMessageUserContentArrayDeserializer(\n result: Array<RealtimeConversationItemMessageUserContent>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemMessageUserContentDeserializer(item);\n });\n}\n\n/** model interface RealtimeConversationItemMessageUserContent */\nexport interface RealtimeConversationItemMessageUserContent {\n /** Whether this user content part contains input text, audio, or an image. */\n type?: \"input_text\" | \"input_audio\" | \"input_image\";\n /** The user's text for an `input_text` content part. */\n text?: string;\n /** Base64-encoded user audio in the session's configured input audio format. */\n audio?: string;\n /** The image for an `input_image` content part, supplied as a base64 data URL. */\n image_url?: string;\n /** The level of image detail to use when processing an `input_image` content part. */\n detail?: \"auto\" | \"low\" | \"high\";\n /** A transcript associated with the user's input audio for reference on the message item. */\n transcript?: string;\n}\n\nexport function realtimeConversationItemMessageUserContentSerializer(\n item: RealtimeConversationItemMessageUserContent,\n): any {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n image_url: item[\"image_url\"],\n detail: item[\"detail\"],\n transcript: item[\"transcript\"],\n };\n}\n\nexport function realtimeConversationItemMessageUserContentDeserializer(\n item: any,\n): RealtimeConversationItemMessageUserContent {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n image_url: item[\"image_url\"],\n detail: item[\"detail\"],\n transcript: item[\"transcript\"],\n };\n}\n\n/** An assistant message item in a Realtime conversation. */\nexport interface RealtimeConversationItemMessageAssistant extends RealtimeConversationItemMessage {\n /** The unique ID of the item. This may be provided by the client or generated by the server. */\n id?: string;\n /** Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. */\n object?: \"realtime.item\";\n /** The type of the item. Always `message`. */\n type: \"message\";\n /** The status of the item. Has no effect on the conversation. */\n status?: \"completed\" | \"incomplete\" | \"in_progress\";\n /** The role of the message sender. Always `assistant`. */\n role: \"assistant\";\n /** The content of the message. */\n content: RealtimeConversationItemMessageAssistantContent[];\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeConversationItemMessageAssistantSerializer(\n item: RealtimeConversationItemMessageAssistant,\n): any {\n return {\n role: item[\"role\"],\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n content: realtimeConversationItemMessageAssistantContentArraySerializer(item[\"content\"]),\n };\n}\n\nexport function realtimeConversationItemMessageAssistantDeserializer(\n item: any,\n): RealtimeConversationItemMessageAssistant {\n return {\n role: item[\"role\"],\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n content: realtimeConversationItemMessageAssistantContentArrayDeserializer(item[\"content\"]),\n created_at:\n item[\"created_at\"] === undefined || item[\"created_at\"] === null\n ? item[\"created_at\"]\n : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\nexport function realtimeConversationItemMessageAssistantContentArraySerializer(\n result: Array<RealtimeConversationItemMessageAssistantContent>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemMessageAssistantContentSerializer(item);\n });\n}\n\nexport function realtimeConversationItemMessageAssistantContentArrayDeserializer(\n result: Array<RealtimeConversationItemMessageAssistantContent>,\n): any[] {\n return result.map((item) => {\n return realtimeConversationItemMessageAssistantContentDeserializer(item);\n });\n}\n\n/** model interface RealtimeConversationItemMessageAssistantContent */\nexport interface RealtimeConversationItemMessageAssistantContent {\n /** Whether this assistant content part contains output text or output audio. */\n type?: \"output_text\" | \"output_audio\";\n /** The assistant's text for an `output_text` content part. */\n text?: string;\n /** Base64-encoded assistant audio in the session's configured output audio format. */\n audio?: string;\n /** The text transcript associated with the assistant's audio content. */\n transcript?: string;\n}\n\nexport function realtimeConversationItemMessageAssistantContentSerializer(\n item: RealtimeConversationItemMessageAssistantContent,\n): any {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n transcript: item[\"transcript\"],\n };\n}\n\nexport function realtimeConversationItemMessageAssistantContentDeserializer(\n item: any,\n): RealtimeConversationItemMessageAssistantContent {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n transcript: item[\"transcript\"],\n };\n}\n\n/** A function call item in a Realtime conversation. */\nexport interface RealtimeConversationItemFunctionCall extends RealtimeConversationItem {\n /** The unique ID of the item. This may be provided by the client or generated by the server. */\n id?: string;\n /** Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. */\n object?: \"realtime.item\";\n /** The type of the item. Always `function_call`. */\n type: \"function_call\";\n /** The status of the item. Has no effect on the conversation. */\n status?: \"completed\" | \"incomplete\" | \"in_progress\";\n /** The ID of the function call. */\n call_id?: string;\n /** The name of the function being called. */\n name: string;\n /** The arguments of the function call. This is a JSON-encoded string representing the arguments passed to the function, for example `{\"arg1\": \"value1\", \"arg2\": 42}`. */\n arguments: string;\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeConversationItemFunctionCallSerializer(\n item: RealtimeConversationItemFunctionCall,\n): any {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n call_id: item[\"call_id\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\nexport function realtimeConversationItemFunctionCallDeserializer(\n item: any,\n): RealtimeConversationItemFunctionCall {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n call_id: item[\"call_id\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\n/** A function call output item in a Realtime conversation. */\nexport interface RealtimeConversationItemFunctionCallOutput extends RealtimeConversationItem {\n /** The unique ID of the item. This may be provided by the client or generated by the server. */\n id?: string;\n /** Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. */\n object?: \"realtime.item\";\n /** The type of the item. Always `function_call_output`. */\n type: \"function_call_output\";\n /** The status of the item. Has no effect on the conversation. */\n status?: \"completed\" | \"incomplete\" | \"in_progress\";\n /** The ID of the function call this output is for. */\n call_id: string;\n /** The output of the function call, this is free text and can contain any information or simply be empty. */\n output: string;\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n /** The name of the function that was called. A Foundry extension: OpenAI's function_call_output does not carry the function name, only `call_id`. */\n name?: string;\n}\n\nexport function realtimeConversationItemFunctionCallOutputSerializer(\n item: RealtimeConversationItemFunctionCallOutput,\n): any {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n call_id: item[\"call_id\"],\n output: item[\"output\"],\n name: item[\"name\"],\n };\n}\n\nexport function realtimeConversationItemFunctionCallOutputDeserializer(\n item: any,\n): RealtimeConversationItemFunctionCallOutput {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n call_id: item[\"call_id\"],\n output: item[\"output\"],\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n name: item[\"name\"],\n };\n}\n\n/** A Realtime item responding to an MCP approval request. */\nexport interface RealtimeMCPApprovalResponse extends RealtimeConversationItem {\n /** The type of the item. Always `mcp_approval_response`. */\n type: \"mcp_approval_response\";\n /** The unique ID of the approval response. */\n id: string;\n /** The ID of the approval request being answered. */\n approval_request_id: string;\n /** Whether the request was approved. */\n approve: boolean;\n /** An explanation of the decision to approve or reject the MCP tool invocation. */\n reason?: string;\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeMCPApprovalResponseSerializer(item: RealtimeMCPApprovalResponse): any {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n approval_request_id: item[\"approval_request_id\"],\n approve: item[\"approve\"],\n reason: item[\"reason\"],\n };\n}\n\nexport function realtimeMCPApprovalResponseDeserializer(item: any): RealtimeMCPApprovalResponse {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n approval_request_id: item[\"approval_request_id\"],\n approve: item[\"approve\"],\n reason: item[\"reason\"],\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\n/** A Realtime item listing tools available on an MCP server. */\nexport interface RealtimeMCPListTools extends RealtimeConversationItem {\n /** The type of the item. Always `mcp_list_tools`. */\n type: \"mcp_list_tools\";\n /** The unique ID of the list. */\n id?: string;\n /** The label of the MCP server. */\n server_label: string;\n /** The tools available on the server. */\n tools: MCPListToolsTool[];\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeMCPListToolsSerializer(item: RealtimeMCPListTools): any {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n server_label: item[\"server_label\"],\n tools: mcpListToolsToolArraySerializer(item[\"tools\"]),\n };\n}\n\nexport function realtimeMCPListToolsDeserializer(item: any): RealtimeMCPListTools {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n server_label: item[\"server_label\"],\n tools: mcpListToolsToolArrayDeserializer(item[\"tools\"]),\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\nexport function mcpListToolsToolArraySerializer(result: Array<MCPListToolsTool>): any[] {\n return result.map((item) => {\n return mcpListToolsToolSerializer(item);\n });\n}\n\nexport function mcpListToolsToolArrayDeserializer(result: Array<MCPListToolsTool>): any[] {\n return result.map((item) => {\n return mcpListToolsToolDeserializer(item);\n });\n}\n\n/** A tool available on an MCP server. */\nexport interface MCPListToolsTool {\n /** The name of the tool. */\n name: string;\n /** A description of the tool provided by the MCP server. */\n description?: string;\n /** The JSON schema describing the tool's input. */\n input_schema: MCPListToolsToolInputSchema;\n /** Additional metadata supplied by the MCP server about the tool. */\n annotations?: MCPListToolsToolAnnotations;\n}\n\nexport function mcpListToolsToolSerializer(item: MCPListToolsTool): any {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n input_schema: mcpListToolsToolInputSchemaSerializer(item[\"input_schema\"]),\n annotations: !item[\"annotations\"]\n ? item[\"annotations\"]\n : mcpListToolsToolAnnotationsSerializer(item[\"annotations\"]),\n };\n}\n\nexport function mcpListToolsToolDeserializer(item: any): MCPListToolsTool {\n return {\n name: item[\"name\"],\n description: item[\"description\"],\n input_schema: mcpListToolsToolInputSchemaDeserializer(item[\"input_schema\"]),\n annotations: !item[\"annotations\"]\n ? item[\"annotations\"]\n : mcpListToolsToolAnnotationsDeserializer(item[\"annotations\"]),\n };\n}\n\n/** model interface MCPListToolsToolInputSchema */\nexport interface MCPListToolsToolInputSchema {}\n\nexport function mcpListToolsToolInputSchemaSerializer(_item: MCPListToolsToolInputSchema): any {\n return {};\n}\n\nexport function mcpListToolsToolInputSchemaDeserializer(item: any): MCPListToolsToolInputSchema {\n return item;\n}\n\n/** model interface MCPListToolsToolAnnotations */\nexport interface MCPListToolsToolAnnotations {}\n\nexport function mcpListToolsToolAnnotationsSerializer(_item: MCPListToolsToolAnnotations): any {\n return {};\n}\n\nexport function mcpListToolsToolAnnotationsDeserializer(item: any): MCPListToolsToolAnnotations {\n return item;\n}\n\n/** A Realtime item representing an invocation of a tool on an MCP server. */\nexport interface RealtimeMCPToolCall extends RealtimeConversationItem {\n /** The type of the item. Always `mcp_call`. */\n type: \"mcp_call\";\n /** The unique ID of the tool call. */\n id: string;\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 /**\n * The identifier of the approval request associated with this tool invocation, when one was\n * required.\n */\n approval_request_id?: string;\n /** The result returned by the invoked MCP tool. */\n output?: string;\n /** Details of a protocol, HTTP, or tool execution failure associated with this invocation. */\n error?: RealtimeMCPErrorUnion;\n /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeMCPToolCallSerializer(item: RealtimeMCPToolCall): any {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n approval_request_id: item[\"approval_request_id\"],\n output: item[\"output\"],\n error: !item[\"error\"] ? item[\"error\"] : realtimeMCPErrorUnionSerializer(item[\"error\"]),\n };\n}\n\nexport function realtimeMCPToolCallDeserializer(item: any): RealtimeMCPToolCall {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n approval_request_id: item[\"approval_request_id\"],\n output: item[\"output\"],\n error: !item[\"error\"] ? item[\"error\"] : realtimeMCPErrorUnionDeserializer(item[\"error\"]),\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\n/** model interface RealtimeMCPError */\nexport interface RealtimeMCPError {\n /** The category of failure encountered while invoking an MCP tool. */\n type: RealtimeMCPErrorType;\n}\n\nexport function realtimeMCPErrorSerializer(item: RealtimeMCPError): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeMCPErrorDeserializer(item: any): RealtimeMCPError {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RealtimeMCPErrorUnion */\nexport type RealtimeMCPErrorUnion =\n | RealtimeMCPProtocolError\n | RealtimeMCPToolExecutionError\n | RealtimeMCPHttpError\n | RealtimeMCPError;\n\nexport function realtimeMCPErrorUnionSerializer(item: RealtimeMCPErrorUnion): any {\n switch (item.type) {\n case \"protocol_error\":\n return realtimeMCPProtocolErrorSerializer(item as RealtimeMCPProtocolError);\n\n case \"tool_execution_error\":\n return realtimeMCPToolExecutionErrorSerializer(item as RealtimeMCPToolExecutionError);\n\n case \"http_error\":\n return realtimeMCPHttpErrorSerializer(item as RealtimeMCPHttpError);\n\n default:\n return realtimeMCPErrorSerializer(item);\n }\n}\n\nexport function realtimeMCPErrorUnionDeserializer(item: any): RealtimeMCPErrorUnion {\n switch (item[\"type\"]) {\n case \"protocol_error\":\n return realtimeMCPProtocolErrorDeserializer(item as RealtimeMCPProtocolError);\n\n case \"tool_execution_error\":\n return realtimeMCPToolExecutionErrorDeserializer(item as RealtimeMCPToolExecutionError);\n\n case \"http_error\":\n return realtimeMCPHttpErrorDeserializer(item as RealtimeMCPHttpError);\n\n default:\n return realtimeMCPErrorDeserializer(item);\n }\n}\n\n/** Type of RealtimeMCPErrorType */\nexport type RealtimeMCPErrorType = \"protocol_error\" | \"tool_execution_error\" | \"http_error\";\n\n/** model interface RealtimeMCPProtocolError */\nexport interface RealtimeMCPProtocolError extends RealtimeMCPError {\n /** The MCP error category. Always `protocol_error`. */\n type: \"protocol_error\";\n /** The numeric error code reported for the MCP protocol failure. */\n code: number;\n /** A description of the MCP protocol failure. */\n message: string;\n}\n\nexport function realtimeMCPProtocolErrorSerializer(item: RealtimeMCPProtocolError): any {\n return { type: item[\"type\"], code: item[\"code\"], message: item[\"message\"] };\n}\n\nexport function realtimeMCPProtocolErrorDeserializer(item: any): RealtimeMCPProtocolError {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n message: item[\"message\"],\n };\n}\n\n/** model interface RealtimeMCPToolExecutionError */\nexport interface RealtimeMCPToolExecutionError extends RealtimeMCPError {\n /** The MCP error category. Always `tool_execution_error`. */\n type: \"tool_execution_error\";\n /** A description of the failure that occurred while the MCP tool was executing. */\n message: string;\n}\n\nexport function realtimeMCPToolExecutionErrorSerializer(item: RealtimeMCPToolExecutionError): any {\n return { type: item[\"type\"], message: item[\"message\"] };\n}\n\nexport function realtimeMCPToolExecutionErrorDeserializer(\n item: any,\n): RealtimeMCPToolExecutionError {\n return {\n type: item[\"type\"],\n message: item[\"message\"],\n };\n}\n\n/** model interface RealtimeMCPHttpError */\nexport interface RealtimeMCPHttpError extends RealtimeMCPError {\n /** The MCP error category. Always `http_error`. */\n type: \"http_error\";\n /** The error code associated with the failed HTTP request to the MCP server. */\n code: number;\n /** A description of the HTTP failure encountered while communicating with the MCP server. */\n message: string;\n}\n\nexport function realtimeMCPHttpErrorSerializer(item: RealtimeMCPHttpError): any {\n return { type: item[\"type\"], code: item[\"code\"], message: item[\"message\"] };\n}\n\nexport function realtimeMCPHttpErrorDeserializer(item: any): RealtimeMCPHttpError {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n message: item[\"message\"],\n };\n}\n\n/** A Realtime item requesting human approval of a tool invocation. */\nexport interface RealtimeMCPApprovalRequest extends RealtimeConversationItem {\n /** The type of the item. Always `mcp_approval_request`. */\n type: \"mcp_approval_request\";\n /** The unique ID of the approval request. */\n id: string;\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 /** The Unix timestamp (in seconds) for when the item was persisted. */\n readonly created_at?: Date;\n /** The id of the response that produced this item, when applicable. */\n readonly response_id?: string;\n}\n\nexport function realtimeMCPApprovalRequestSerializer(item: RealtimeMCPApprovalRequest): any {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\nexport function realtimeMCPApprovalRequestDeserializer(item: any): RealtimeMCPApprovalRequest {\n return {\n type: item[\"type\"],\n id: item[\"id\"],\n server_label: item[\"server_label\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n created_at: !item[\"created_at\"] ? item[\"created_at\"] : new Date(item[\"created_at\"] * 1000),\n response_id: item[\"response_id\"],\n };\n}\n\n/** Audio configuration for a response. Follows the OpenAI Realtime GA `audio` object shape. */\nexport interface VoiceResponseAudio {\n /** The audio output configuration used for the response. */\n output?: VoiceResponseAudioOutput;\n}\n\nexport function voiceResponseAudioSerializer(item: VoiceResponseAudio): any {\n return {\n output: !item[\"output\"] ? item[\"output\"] : voiceResponseAudioOutputSerializer(item[\"output\"]),\n };\n}\n\nexport function voiceResponseAudioDeserializer(item: any): VoiceResponseAudio {\n return {\n output: !item[\"output\"] ? item[\"output\"] : voiceResponseAudioOutputDeserializer(item[\"output\"]),\n };\n}\n\n/** The flat response audio-output projection, with optional `voice`, `voice_type`, `voice_locale`, and `format` fields. */\nexport interface VoiceResponseAudioOutput {\n /** The voice name used for the response's audio output. */\n voice?: string;\n /** The extensible provider/type of the voice used for the response's audio output. */\n voice_type?: VoiceType;\n /** The BCP-47 locale of the voice used for the response's audio output. */\n voice_locale?: string;\n /** The audio format used for the response's audio output. */\n format?: RealtimeAudioFormatsUnion;\n}\n\nexport function voiceResponseAudioOutputSerializer(item: VoiceResponseAudioOutput): any {\n return {\n voice: item[\"voice\"],\n voice_type: item[\"voice_type\"],\n voice_locale: item[\"voice_locale\"],\n format: !item[\"format\"] ? item[\"format\"] : realtimeAudioFormatsUnionSerializer(item[\"format\"]),\n };\n}\n\nexport function voiceResponseAudioOutputDeserializer(item: any): VoiceResponseAudioOutput {\n return {\n voice: item[\"voice\"],\n voice_type: item[\"voice_type\"],\n voice_locale: item[\"voice_locale\"],\n format: !item[\"format\"]\n ? item[\"format\"]\n : realtimeAudioFormatsUnionDeserializer(item[\"format\"]),\n };\n}\n\n/** Properties shared by persisted voice responses. */\nexport interface VoiceResponseBase {\n /** The object type, must be `realtime.response`. */\n object?: \"realtime.response\";\n /**\n * The final status of the response (`completed`, `cancelled`, `failed`, or\n * `incomplete`, `in_progress`).\n */\n status?: \"completed\" | \"cancelled\" | \"failed\" | \"incomplete\" | \"in_progress\";\n /** Additional details about the status. */\n status_details?: RealtimeResponseStatusDetails;\n /**\n * Usage statistics for the Response, this will correspond to billing. A\n * Realtime API session will maintain a conversation context and append new\n * Items to the Conversation, thus output from previous turns (text and\n * audio tokens) will become the input for later turns.\n */\n usage?: RealtimeResponseUsage;\n /**\n * The set of modalities the model used to respond, currently the only possible values are\n * `[\\\"audio\\\"]`, `[\\\"text\\\"]`. Audio output always include a text transcript. Setting the\n * output to mode `text` will disable audio output from the model.\n */\n output_modalities?: (\"text\" | \"audio\")[];\n /**\n * Maximum number of output tokens for a single assistant response,\n * inclusive of tool calls, that was used in this response.\n */\n max_output_tokens?: number | \"inf\";\n}\n\nexport function voiceResponseBaseDeserializer(item: any): VoiceResponseBase {\n return {\n object: item[\"object\"],\n status: item[\"status\"],\n status_details: !item[\"status_details\"]\n ? item[\"status_details\"]\n : realtimeResponseStatusDetailsDeserializer(item[\"status_details\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageDeserializer(item[\"usage\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceResponseBaseMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n };\n}\n\n/** model interface RealtimeResponseStatusDetails */\nexport interface RealtimeResponseStatusDetails {\n /** The response outcome to which these status details apply. */\n type?: \"completed\" | \"cancelled\" | \"failed\" | \"incomplete\";\n /**\n * The reason the response was cancelled or left incomplete, such as a detected turn, client\n * cancellation, token limit, or content filter.\n */\n reason?: \"turn_detected\" | \"client_cancelled\" | \"max_output_tokens\" | \"content_filter\";\n /** Details of the error that caused the response to fail. */\n error?: RealtimeResponseStatusDetailsError;\n}\n\nexport function realtimeResponseStatusDetailsSerializer(item: RealtimeResponseStatusDetails): any {\n return {\n type: item[\"type\"],\n reason: item[\"reason\"],\n error: !item[\"error\"]\n ? item[\"error\"]\n : realtimeResponseStatusDetailsErrorSerializer(item[\"error\"]),\n };\n}\n\nexport function realtimeResponseStatusDetailsDeserializer(\n item: any,\n): RealtimeResponseStatusDetails {\n return {\n type: item[\"type\"],\n reason: item[\"reason\"],\n error: !item[\"error\"]\n ? item[\"error\"]\n : realtimeResponseStatusDetailsErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** model interface RealtimeResponseStatusDetailsError */\nexport interface RealtimeResponseStatusDetailsError {\n /** The category of error that caused the response to fail. */\n type?: string;\n /** A machine-readable code identifying the response failure. */\n code?: string;\n}\n\nexport function realtimeResponseStatusDetailsErrorSerializer(\n item: RealtimeResponseStatusDetailsError,\n): any {\n return { type: item[\"type\"], code: item[\"code\"] };\n}\n\nexport function realtimeResponseStatusDetailsErrorDeserializer(\n item: any,\n): RealtimeResponseStatusDetailsError {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n };\n}\n\n/** Alias for _VoiceResponseBaseMaxOutputTokens */\nexport type _VoiceResponseBaseMaxOutputTokens = number | \"inf\";\n\nexport function _voiceResponseBaseMaxOutputTokensSerializer(\n item: _VoiceResponseBaseMaxOutputTokens,\n): any {\n return item;\n}\n\nexport function _voiceResponseBaseMaxOutputTokensDeserializer(\n item: any,\n): _VoiceResponseBaseMaxOutputTokens {\n return item;\n}\n\n/** The response data for a requested list of items. */\nexport interface _AgentsPagedResultRealtimeConversationItem {\n /** The requested list of items. */\n data: RealtimeConversationItemUnion[];\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 _agentsPagedResultRealtimeConversationItemDeserializer(\n item: any,\n): _AgentsPagedResultRealtimeConversationItem {\n return {\n data: realtimeConversationItemUnionArrayDeserializer(item[\"data\"]),\n first_id: item[\"first_id\"],\n last_id: item[\"last_id\"],\n has_more: item[\"has_more\"],\n };\n}\n\n/**\n * Metadata for a single conversation item's audio segment. For bring-your-own-storage (BYOS), the response includes\n * `blob_uri`, a direct customer-storage URI without a SAS token, that the customer accesses with their own\n * credentials. For Foundry-managed storage, `blob_uri` is absent and the bytes are streamed through the item's\n * `/audio/content` route.\n */\nexport interface VoiceAudioItem {\n /** The id of the conversation the item belongs to. */\n conversation_id: string;\n /** The id of the item this audio belongs to. */\n item_id: string;\n /** The role the audio belongs to. */\n role?: VoiceAudioRole;\n /** The container format of the audio. */\n format?: VoiceAudioContainerFormat;\n /** The audio codec. */\n codec?: VoiceAudioCodec;\n /** The sample rate in Hz. */\n sample_rate?: number;\n /** The number of audio channels. */\n channels?: number;\n /** The offset from the session start at which this segment begins. */\n start_offset_ms?: number;\n /** The duration of the audio segment. */\n duration_ms?: number;\n /** For bring-your-own-storage (BYOS) recordings only: the URI of the recording in the customer's own storage, without a SAS token. The customer downloads it using their own storage credentials. Absent for Foundry-managed storage, where the bytes are streamed via the item's `/audio/content` route instead. */\n blob_uri?: string;\n}\n\nexport function voiceAudioItemDeserializer(item: any): VoiceAudioItem {\n return {\n conversation_id: item[\"conversation_id\"],\n item_id: item[\"item_id\"],\n role: item[\"role\"],\n format: item[\"format\"],\n codec: item[\"codec\"],\n sample_rate: item[\"sample_rate\"],\n channels: item[\"channels\"],\n start_offset_ms: item[\"start_offset_ms\"],\n duration_ms: item[\"duration_ms\"],\n blob_uri: item[\"blob_uri\"],\n };\n}\n\n/** A voice-audio participant role. Additional values may be added over time. */\nexport type VoiceAudioRole = \"user\" | \"agent\";\n\n/** An audio container format. Additional values may be added over time. */\nexport type VoiceAudioContainerFormat = \"wav\";\n\n/** An audio codec. Additional values may be added over time. */\nexport type VoiceAudioCodec = \"pcm16\" | \"pcmu\" | \"pcma\";\n\n/**\n * Metadata for a conversation item's generated audio. For bring-your-own-storage (BYOS), the response includes\n * `blob_uri`, a direct customer-storage URI without a SAS token, that the customer accesses with their own\n * credentials. For Foundry-managed storage, `blob_uri` is absent and the bytes are streamed through the item's\n * `/audio/generated/content` route.\n */\nexport interface VoiceGeneratedAudioItem {\n /** The id of the conversation the item belongs to. */\n conversation_id: string;\n /** The id of the item this audio belongs to. */\n item_id: string;\n /** The role the audio belongs to. */\n role?: VoiceAudioRole;\n /** The container format of the audio. */\n format?: VoiceAudioContainerFormat;\n /** The audio codec. */\n codec?: VoiceAudioCodec;\n /** The sample rate in Hz. */\n sample_rate?: number;\n /** The number of audio channels. */\n channels?: number;\n /** The offset from the session start at which this segment begins. */\n start_offset_ms?: number;\n /** The duration of the audio segment. */\n duration_ms?: number;\n /** For bring-your-own-storage (BYOS) recordings only: the URI of the generated audio in the customer's own storage, without a SAS token. The customer downloads it using their own storage credentials. Absent for Foundry-managed storage, where the bytes are streamed via the item's `/audio/generated/content` route instead. */\n blob_uri?: string;\n}\n\nexport function voiceGeneratedAudioItemDeserializer(item: any): VoiceGeneratedAudioItem {\n return {\n conversation_id: item[\"conversation_id\"],\n item_id: item[\"item_id\"],\n role: item[\"role\"],\n format: item[\"format\"],\n codec: item[\"codec\"],\n sample_rate: item[\"sample_rate\"],\n channels: item[\"channels\"],\n start_offset_ms: item[\"start_offset_ms\"],\n duration_ms: item[\"duration_ms\"],\n blob_uri: item[\"blob_uri\"],\n };\n}\n\n/**\n * Metadata for the merged, whole-call stereo recording of a voice conversation (user audio on the left channel,\n * agent audio on the right). Built once from the per-turn segments after the session ends and durably cached.\n * The common metadata (format, sample rate, channels, channel layout, duration) is returned for both\n * Foundry-managed and bring-your-own-storage (BYOS) recordings. For BYOS the response also includes `blob_uri`,\n * the URI of the recording in the customer's own storage (no SAS token), which the customer downloads using their\n * own storage credentials. For Foundry-managed storage `blob_uri` is absent and the bytes are streamed via the\n * `/audio/content` route instead.\n */\nexport interface VoiceRecording {\n /** The id of the conversation this recording belongs to. */\n conversation_id: string;\n /** The container format of the recording. */\n format: VoiceAudioContainerFormat;\n /** The sample rate of the recording in Hz, e.g. 24000. */\n sample_rate: number;\n /** The number of audio channels. The merged recording is stereo (`2`). */\n channels: number;\n /** The role assigned to each stereo channel. */\n channel_layout: VoiceRecordingChannelLayout;\n /** The total duration of the recording. */\n duration_ms: number;\n /** For bring-your-own-storage (BYOS) recordings only: the URI of the recording in the customer's own storage, without a SAS token. The customer downloads it using their own storage credentials. Absent for Foundry-managed storage, where the bytes are streamed via the `/audio/content` route instead. */\n blob_uri?: string;\n}\n\nexport function voiceRecordingDeserializer(item: any): VoiceRecording {\n return {\n conversation_id: item[\"conversation_id\"],\n format: item[\"format\"],\n sample_rate: item[\"sample_rate\"],\n channels: item[\"channels\"],\n channel_layout: voiceRecordingChannelLayoutDeserializer(item[\"channel_layout\"]),\n duration_ms: item[\"duration_ms\"],\n blob_uri: item[\"blob_uri\"],\n };\n}\n\n/** The role assigned to each channel of a merged stereo voice recording. */\nexport interface VoiceRecordingChannelLayout {\n /** The role carried on the left channel. Always `user`. */\n left: \"user\";\n /** The role carried on the right channel. Always `agent`. */\n right: \"agent\";\n}\n\nexport function voiceRecordingChannelLayoutDeserializer(item: any): VoiceRecordingChannelLayout {\n return {\n left: item[\"left\"],\n right: item[\"right\"],\n };\n}\n\n/** A request to create one durable direct outbound call job. */\nexport interface CreateTelephonyCallJobRequest {\n /** The phone destination to call. */\n destination: TelephonyOutboundDestination;\n /** The Foundry connection name in the current project used to originate the call. Its category selects Twilio or Azure Communication Services / Teams Phone Extension. No inbound telephony binding is required. */\n connection_name: string;\n /** An optional customer-declared purpose for placing the call. */\n purpose?: string;\n /** Structured input values available to the agent and greeting for this call. Agent-declared inputs are validated against their schemas; omitted optional inputs may use their Agent-defined default values, while omitted required inputs are rejected. Additional inputs remain available as dynamic template variables. */\n structured_inputs?: Record<string, any>;\n /** The optional execution window. */\n schedule?: TelephonyCallJobSchedule;\n /** The provider-attempt retry policy. Omit it for one attempt with no retry delay. */\n retry_policy?: TelephonyOutboundRetryPolicyUnion;\n /** The caller identity used to originate the call. For a Twilio connection, provide an authorized E.164 phone number. For an Azure Communication Services / Teams Phone Extension connection, provide the Teams Resource Account object ID. The identity type is inferred from the connection category; originating does not change inbound routing. */\n source: string;\n}\n\nexport function createTelephonyCallJobRequestSerializer(item: CreateTelephonyCallJobRequest): any {\n return {\n destination: telephonyOutboundDestinationSerializer(item[\"destination\"]),\n connection_name: item[\"connection_name\"],\n purpose: item[\"purpose\"],\n structured_inputs: item[\"structured_inputs\"],\n schedule: !item[\"schedule\"]\n ? item[\"schedule\"]\n : telephonyCallJobScheduleSerializer(item[\"schedule\"]),\n retry_policy: !item[\"retry_policy\"]\n ? item[\"retry_policy\"]\n : telephonyOutboundRetryPolicyUnionSerializer(item[\"retry_policy\"]),\n source: item[\"source\"],\n };\n}\n\n/** The destination of an outbound call. */\nexport interface TelephonyOutboundDestination {\n /** The destination type. Only E.164 phone numbers are currently supported. */\n type: TelephonyOutboundDestinationType;\n /** The destination E.164 phone number. */\n value: string;\n}\n\nexport function telephonyOutboundDestinationSerializer(item: TelephonyOutboundDestination): any {\n return { type: item[\"type\"], value: item[\"value\"] };\n}\n\nexport function telephonyOutboundDestinationDeserializer(item: any): TelephonyOutboundDestination {\n return {\n type: item[\"type\"],\n value: item[\"value\"],\n };\n}\n\n/** The type of destination for an outbound call. */\nexport type TelephonyOutboundDestinationType = \"phone_number\";\n\n/** The optional execution window for a direct outbound call. */\nexport interface TelephonyCallJobSchedule {\n /** The earliest instant at which dispatch may begin. */\n not_before?: Date;\n /** The instant after which the call job expires without dispatch. */\n expires_at?: Date;\n}\n\nexport function telephonyCallJobScheduleSerializer(item: TelephonyCallJobSchedule): any {\n return {\n not_before: !item[\"not_before\"] ? item[\"not_before\"] : item[\"not_before\"].getTime() / 1000 || 0,\n expires_at: !item[\"expires_at\"] ? item[\"expires_at\"] : item[\"expires_at\"].getTime() / 1000 || 0,\n };\n}\n\nexport function telephonyCallJobScheduleDeserializer(item: any): TelephonyCallJobSchedule {\n return {\n not_before: !item[\"not_before\"] ? item[\"not_before\"] : new Date(item[\"not_before\"] * 1000),\n expires_at: !item[\"expires_at\"] ? item[\"expires_at\"] : new Date(item[\"expires_at\"] * 1000),\n };\n}\n\n/** The retry policy for one durable outbound call intent. `max_attempts` includes the first attempt. Strategy-specific settings are defined by the derived policy. */\nexport interface TelephonyOutboundRetryPolicy {\n /** The retry strategy. Only fixed-interval retries are currently supported. */\n /** The discriminator possible values: fixed_interval */\n type: TelephonyOutboundRetryPolicyType;\n /** The maximum number of provider attempts, including the first attempt. Defaults to 1. */\n max_attempts?: number;\n}\n\nexport function telephonyOutboundRetryPolicySerializer(item: TelephonyOutboundRetryPolicy): any {\n return { type: item[\"type\"], max_attempts: item[\"max_attempts\"] };\n}\n\nexport function telephonyOutboundRetryPolicyDeserializer(item: any): TelephonyOutboundRetryPolicy {\n return {\n type: item[\"type\"],\n max_attempts: item[\"max_attempts\"],\n };\n}\n\n/** Alias for TelephonyOutboundRetryPolicyUnion */\nexport type TelephonyOutboundRetryPolicyUnion =\n TelephonyOutboundFixedIntervalRetryPolicy | TelephonyOutboundRetryPolicy;\n\nexport function telephonyOutboundRetryPolicyUnionSerializer(\n item: TelephonyOutboundRetryPolicyUnion,\n): any {\n switch (item.type) {\n case \"fixed_interval\":\n return telephonyOutboundFixedIntervalRetryPolicySerializer(\n item as TelephonyOutboundFixedIntervalRetryPolicy,\n );\n\n default:\n return telephonyOutboundRetryPolicySerializer(item);\n }\n}\n\nexport function telephonyOutboundRetryPolicyUnionDeserializer(\n item: any,\n): TelephonyOutboundRetryPolicyUnion {\n switch (item[\"type\"]) {\n case \"fixed_interval\":\n return telephonyOutboundFixedIntervalRetryPolicyDeserializer(\n item as TelephonyOutboundFixedIntervalRetryPolicy,\n );\n\n default:\n return telephonyOutboundRetryPolicyDeserializer(item);\n }\n}\n\n/** The retry strategy for an outbound call. */\nexport type TelephonyOutboundRetryPolicyType = \"fixed_interval\";\n\n/** A retry policy with a fixed interval between outbound call attempts. */\nexport interface TelephonyOutboundFixedIntervalRetryPolicy extends TelephonyOutboundRetryPolicy {\n /** The fixed-interval retry strategy. */\n type: \"fixed_interval\";\n /** The fixed delay in seconds between attempts. */\n interval: number;\n}\n\nexport function telephonyOutboundFixedIntervalRetryPolicySerializer(\n item: TelephonyOutboundFixedIntervalRetryPolicy,\n): any {\n return { type: item[\"type\"], max_attempts: item[\"max_attempts\"], interval: item[\"interval\"] };\n}\n\nexport function telephonyOutboundFixedIntervalRetryPolicyDeserializer(\n item: any,\n): TelephonyOutboundFixedIntervalRetryPolicy {\n return {\n type: item[\"type\"],\n max_attempts: item[\"max_attempts\"],\n interval: item[\"interval\"],\n };\n}\n\n/** A durable direct or campaign-created outbound call intent. */\nexport interface TelephonyCallJob {\n /** The phone destination to call. */\n destination: TelephonyOutboundDestination;\n /** The Foundry connection name in the current project used to originate the call. Its category selects Twilio or Azure Communication Services / Teams Phone Extension. No inbound telephony binding is required. */\n connection_name: string;\n /** An optional customer-declared purpose for placing the call. */\n purpose?: string;\n /** Structured input values available to the agent and greeting for this call. Agent-declared inputs are validated against their schemas; omitted optional inputs may use their Agent-defined default values, while omitted required inputs are rejected. Additional inputs remain available as dynamic template variables. */\n structured_inputs?: Record<string, any>;\n /** The optional execution window. */\n schedule?: TelephonyCallJobSchedule;\n /** The service-generated call-job identifier. */\n id: string;\n /** The object type. Always `telephony.call_job`. */\n object: \"telephony.call_job\";\n /** The name of the voice agent used at execution time. */\n agent_name: string;\n /** The current call-job lifecycle status. */\n status: TelephonyCallJobStatus;\n /** The recorded cancellation request, when cancellation was requested. */\n cancellation?: TelephonyCallJobCancellation;\n /** The frozen provider-attempt retry policy. */\n retry_policy: TelephonyOutboundRetryPolicyUnion;\n /** The number of provider attempts created so far. */\n attempt_count: number;\n /** The Unix timestamp in seconds at which the next retry becomes eligible. */\n next_attempt_at?: Date;\n /** The stable service-generated reason for the overall outbound call job, which can span multiple provider attempts, when available. Interpret this with `status`: a queued job can retain a temporary dispatch-deferral reason. Additional string codes may be returned. */\n terminal_reason?: TelephonyCallJobTerminalReason;\n /** The monotonically increasing optimistic-concurrency revision. */\n revision: number;\n /** The Unix timestamp in seconds when the call job was created. */\n created_at: Date;\n /** The Unix timestamp in seconds when the call job was last updated. */\n updated_at: Date;\n /** The caller identity used to originate the call. For a Twilio connection, provide an authorized E.164 phone number. For an Azure Communication Services / Teams Phone Extension connection, provide the Teams Resource Account object ID. The identity type is inferred from the connection category; originating does not change inbound routing. */\n source: string;\n}\n\nexport function telephonyCallJobDeserializer(item: any): TelephonyCallJob {\n return {\n destination: telephonyOutboundDestinationDeserializer(item[\"destination\"]),\n connection_name: item[\"connection_name\"],\n purpose: item[\"purpose\"],\n structured_inputs: !item[\"structured_inputs\"]\n ? item[\"structured_inputs\"]\n : Object.fromEntries(\n Object.entries(item[\"structured_inputs\"]).map(([k, p]: [string, any]) => [k, p]),\n ),\n schedule: !item[\"schedule\"]\n ? item[\"schedule\"]\n : telephonyCallJobScheduleDeserializer(item[\"schedule\"]),\n id: item[\"id\"],\n object: item[\"object\"],\n agent_name: item[\"agent_name\"],\n status: item[\"status\"],\n cancellation: !item[\"cancellation\"]\n ? item[\"cancellation\"]\n : telephonyCallJobCancellationDeserializer(item[\"cancellation\"]),\n retry_policy: telephonyOutboundRetryPolicyUnionDeserializer(item[\"retry_policy\"]),\n attempt_count: item[\"attempt_count\"],\n next_attempt_at: !item[\"next_attempt_at\"]\n ? item[\"next_attempt_at\"]\n : new Date(item[\"next_attempt_at\"] * 1000),\n terminal_reason: item[\"terminal_reason\"],\n revision: item[\"revision\"],\n created_at: new Date(item[\"created_at\"] * 1000),\n updated_at: new Date(item[\"updated_at\"] * 1000),\n source: item[\"source\"],\n };\n}\n\n/** The lifecycle status of a durable outbound call job. */\nexport type TelephonyCallJobStatus =\n | \"accepted\"\n | \"waiting_for_schedule\"\n | \"queued\"\n | \"dispatching\"\n | \"in_progress\"\n | \"waiting_for_retry\"\n | \"cancellation_requested\"\n | \"completed\"\n | \"blocked\"\n | \"expired\"\n | \"failed\"\n | \"cancelled\";\n\n/** A cancellation request recorded for an outbound call job. */\nexport interface TelephonyCallJobCancellation {\n /** The authenticated principal that requested cancellation. */\n requested_by: string;\n /** The cancellation mode applied to the call job. */\n mode: string;\n /** The Unix timestamp in seconds when cancellation was requested. */\n requested_at: Date;\n /** The call-job revision at which cancellation was recorded. */\n revision: number;\n}\n\nexport function telephonyCallJobCancellationDeserializer(item: any): TelephonyCallJobCancellation {\n return {\n requested_by: item[\"requested_by\"],\n mode: item[\"mode\"],\n requested_at: new Date(item[\"requested_at\"] * 1000),\n revision: item[\"revision\"],\n };\n}\n\n/** Known terminal reasons for an overall outbound call job, which can span multiple provider attempts. These are distinct from individual call lifecycle reasons. Additional string codes may be returned. */\nexport type TelephonyCallJobTerminalReason =\n | \"no_answer\"\n | \"no_answer_timeout\"\n | \"answer_failed\"\n | \"bridge_cancelled\"\n | \"bridge_failed\"\n | \"voice_session_configuration_invalid\"\n | \"connection_project_mismatch\"\n | \"outbound_connection_changed\"\n | \"outbound_connection_unavailable\"\n | \"telephony_binding_invalid\"\n | \"telephony_binding_not_found\"\n | \"telephony_binding_inactive\"\n | \"telephony_binding_changed\"\n | \"campaign_not_found\"\n | \"campaign_cancelled\"\n | \"campaign_completed\"\n | \"campaign_failed\"\n | \"origination_fence_not_recorded\"\n | \"origination_reconciliation_timeout\"\n | \"cancellation_reconciliation_timeout\"\n | \"provider_callback_timeout_cancellation_reconciliation_timeout\"\n | string;\n\n/** The supported write modes for data generation job outputs. */\nexport type DataGenerationJobOutputWriteMode = \"overwrite\" | \"merge\";\n\n/** The stable realtime session settings accepted in a `session.update` client event. */\nexport interface VoiceAgentSessionUpdateConfig {\n /** The session type. Always `realtime`. */\n type: \"realtime\";\n /** Instructions applied throughout the session. */\n instructions?: string;\n /** The sampling temperature for compatible cascaded pipelines. */\n temperature?: number;\n /** The maximum output-token count for one response. */\n max_output_tokens?: VoiceAgentMaxOutputTokens;\n /** The output modalities enabled for the session. */\n output_modalities?: VoiceOutputModality[];\n /** The input- and output-audio settings for the session. */\n audio?: VoiceAgentAudioConfig;\n /** The avatar settings for the session. */\n avatar?: VoiceAgentSessionAvatarConfig;\n /** Animation settings for the session. */\n animation?: VoiceAgentAnimationConfig;\n /** Tools available to the session. */\n tools?: VoiceAgentToolUnion[];\n /** Tool-selection behavior for the session. */\n tool_choice?: VoiceAgentToolChoice;\n /** Reasoning settings for compatible realtime models. */\n reasoning?: RealtimeReasoning;\n /** Whether the model may call multiple tools in parallel. */\n parallel_tool_calls?: boolean;\n /** Additional fields to include in service outputs. */\n include?: VoiceAgentSessionIncludeOption[];\n /** Up to 16 string key-value pairs attached to the session. */\n metadata?: Record<string, string>;\n /** Interim-response settings for latency and tool execution. */\n interim_response?: VoiceAgentInterimResponseConfigUnion;\n /** A proactive assistant greeting started after session configuration. */\n greeting?: VoiceAgentGreetingConfigUnion;\n}\n\nexport function voiceAgentSessionUpdateConfigSerializer(item: VoiceAgentSessionUpdateConfig): any {\n return {\n type: item[\"type\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : voiceAgentMaxOutputTokensSerializer(item[\"max_output_tokens\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceAgentAudioConfigSerializer(item[\"audio\"]),\n avatar: !item[\"avatar\"]\n ? item[\"avatar\"]\n : voiceAgentSessionAvatarConfigSerializer(item[\"avatar\"]),\n animation: !item[\"animation\"]\n ? item[\"animation\"]\n : voiceAgentAnimationConfigSerializer(item[\"animation\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArraySerializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceSerializer(item[\"tool_choice\"]),\n reasoning: !item[\"reasoning\"]\n ? item[\"reasoning\"]\n : realtimeReasoningSerializer(item[\"reasoning\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n include: !item[\"include\"]\n ? item[\"include\"]\n : item[\"include\"].map((p: any) => {\n return p;\n }),\n metadata: item[\"metadata\"],\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionSerializer(item[\"interim_response\"]),\n greeting: !item[\"greeting\"]\n ? item[\"greeting\"]\n : voiceAgentGreetingConfigUnionSerializer(item[\"greeting\"]),\n };\n}\n\nexport function voiceAgentSessionUpdateConfigDeserializer(\n item: any,\n): VoiceAgentSessionUpdateConfig {\n return {\n type: item[\"type\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : voiceAgentMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceAgentAudioConfigDeserializer(item[\"audio\"]),\n avatar: !item[\"avatar\"]\n ? item[\"avatar\"]\n : voiceAgentSessionAvatarConfigDeserializer(item[\"avatar\"]),\n animation: !item[\"animation\"]\n ? item[\"animation\"]\n : voiceAgentAnimationConfigDeserializer(item[\"animation\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArrayDeserializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceDeserializer(item[\"tool_choice\"]),\n reasoning: !item[\"reasoning\"]\n ? item[\"reasoning\"]\n : realtimeReasoningDeserializer(item[\"reasoning\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n include: !item[\"include\"]\n ? item[\"include\"]\n : item[\"include\"].map((p: any) => {\n return p;\n }),\n metadata: !item[\"metadata\"]\n ? item[\"metadata\"]\n : Object.fromEntries(Object.entries(item[\"metadata\"]).map(([k, p]: [string, any]) => [k, p])),\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionDeserializer(item[\"interim_response\"]),\n greeting: !item[\"greeting\"]\n ? item[\"greeting\"]\n : voiceAgentGreetingConfigUnionDeserializer(item[\"greeting\"]),\n };\n}\n\n/** Avatar settings accepted by the stable voice-agent WebSocket contract. */\nexport interface VoiceAgentSessionAvatarConfig extends VoiceAgentAvatarConfig {\n /** The ICE servers used to negotiate the avatar's WebRTC connection. */\n ice_servers?: VoiceAgentAvatarIceServer[];\n}\n\nexport function voiceAgentSessionAvatarConfigSerializer(item: VoiceAgentSessionAvatarConfig): any {\n return {\n type: item[\"type\"],\n character: item[\"character\"],\n style: item[\"style\"],\n customized: item[\"customized\"],\n output_protocol: item[\"output_protocol\"],\n model: item[\"model\"],\n video: !item[\"video\"] ? item[\"video\"] : voiceAgentAvatarVideoParamsSerializer(item[\"video\"]),\n scene: !item[\"scene\"] ? item[\"scene\"] : voiceAgentAvatarSceneSerializer(item[\"scene\"]),\n output_audit_audio: item[\"output_audit_audio\"],\n ice_servers: !item[\"ice_servers\"]\n ? item[\"ice_servers\"]\n : voiceAgentAvatarIceServerArraySerializer(item[\"ice_servers\"]),\n };\n}\n\nexport function voiceAgentSessionAvatarConfigDeserializer(\n item: any,\n): VoiceAgentSessionAvatarConfig {\n return {\n type: item[\"type\"],\n character: item[\"character\"],\n style: item[\"style\"],\n customized: item[\"customized\"],\n output_protocol: item[\"output_protocol\"],\n model: item[\"model\"],\n video: !item[\"video\"] ? item[\"video\"] : voiceAgentAvatarVideoParamsDeserializer(item[\"video\"]),\n scene: !item[\"scene\"] ? item[\"scene\"] : voiceAgentAvatarSceneDeserializer(item[\"scene\"]),\n output_audit_audio: item[\"output_audit_audio\"],\n ice_servers: !item[\"ice_servers\"]\n ? item[\"ice_servers\"]\n : voiceAgentAvatarIceServerArrayDeserializer(item[\"ice_servers\"]),\n };\n}\n\nexport function voiceAgentAvatarIceServerArraySerializer(\n result: Array<VoiceAgentAvatarIceServer>,\n): any[] {\n return result.map((item) => {\n return voiceAgentAvatarIceServerSerializer(item);\n });\n}\n\nexport function voiceAgentAvatarIceServerArrayDeserializer(\n result: Array<VoiceAgentAvatarIceServer>,\n): any[] {\n return result.map((item) => {\n return voiceAgentAvatarIceServerDeserializer(item);\n });\n}\n\n/** An ICE server used for avatar WebRTC negotiation. */\nexport interface VoiceAgentAvatarIceServer {\n /** The STUN or TURN server URLs used for avatar WebRTC connectivity. */\n urls: string[];\n /** The username used to authenticate with the ICE server. */\n username?: string;\n /** The credential used to authenticate with the ICE server. */\n credential?: string;\n}\n\nexport function voiceAgentAvatarIceServerSerializer(item: VoiceAgentAvatarIceServer): any {\n return {\n urls: item[\"urls\"].map((p: any) => {\n return p;\n }),\n username: item[\"username\"],\n credential: item[\"credential\"],\n };\n}\n\nexport function voiceAgentAvatarIceServerDeserializer(item: any): VoiceAgentAvatarIceServer {\n return {\n urls: item[\"urls\"].map((p: any) => {\n return p;\n }),\n username: item[\"username\"],\n credential: item[\"credential\"],\n };\n}\n\n/** Animation settings for a voice-agent session. */\nexport interface VoiceAgentAnimationConfig {\n /** The animation model name. */\n model_name?: string;\n /** The requested animation output kinds. */\n outputs?: VoiceAgentAnimationOutputType[];\n}\n\nexport function voiceAgentAnimationConfigSerializer(item: VoiceAgentAnimationConfig): any {\n return {\n model_name: item[\"model_name\"],\n outputs: !item[\"outputs\"]\n ? item[\"outputs\"]\n : item[\"outputs\"].map((p: any) => {\n return p;\n }),\n };\n}\n\nexport function voiceAgentAnimationConfigDeserializer(item: any): VoiceAgentAnimationConfig {\n return {\n model_name: item[\"model_name\"],\n outputs: !item[\"outputs\"]\n ? item[\"outputs\"]\n : item[\"outputs\"].map((p: any) => {\n return p;\n }),\n };\n}\n\n/** An animation output produced by a voice-agent session. */\nexport type VoiceAgentAnimationOutputType = \"blendshapes\" | \"viseme_id\";\n\n/** Configuration for reasoning-capable Realtime models such as `gpt-realtime-2`. */\nexport interface RealtimeReasoning {\n /** The amount of reasoning effort requested from a reasoning-capable realtime model. */\n effort?: RealtimeReasoningEffort;\n}\n\nexport function realtimeReasoningSerializer(item: RealtimeReasoning): any {\n return { effort: item[\"effort\"] };\n}\n\nexport function realtimeReasoningDeserializer(item: any): RealtimeReasoning {\n return {\n effort: item[\"effort\"],\n };\n}\n\n/**\n * Constrains effort on reasoning for reasoning-capable Realtime models such as\n * `gpt-realtime-2`.\n */\nexport type RealtimeReasoningEffort = \"minimal\" | \"low\" | \"medium\" | \"high\" | \"xhigh\";\n\n/** The effective stable realtime session settings returned by the voice-agent service. */\nexport interface VoiceAgentSessionResponseConfig {\n /** The session type. Always `realtime`. */\n type: \"realtime\";\n /** Instructions applied throughout the session. */\n instructions?: string;\n /** The sampling temperature for compatible cascaded pipelines. */\n temperature?: number;\n /** The maximum output-token count for one response. */\n max_output_tokens?: VoiceAgentMaxOutputTokens;\n /** The output modalities enabled for the session. */\n output_modalities?: VoiceOutputModality[];\n /** The input- and output-audio settings for the session. */\n audio?: VoiceAgentAudioConfig;\n /** The avatar settings for the session. */\n avatar?: VoiceAgentSessionAvatarConfig;\n /** Animation settings for the session. */\n animation?: VoiceAgentAnimationConfig;\n /** Tools available to the session. */\n tools?: VoiceAgentToolUnion[];\n /** Tool-selection behavior for the session. */\n tool_choice?: VoiceAgentToolChoice;\n /** Reasoning settings for compatible realtime models. */\n reasoning?: RealtimeReasoning;\n /** Whether the model may call multiple tools in parallel. */\n parallel_tool_calls?: boolean;\n /** Additional fields to include in service outputs. */\n include?: VoiceAgentSessionIncludeOption[];\n /** Up to 16 string key-value pairs attached to the session. */\n metadata?: Record<string, string>;\n /** Interim-response settings for latency and tool execution. */\n interim_response?: VoiceAgentInterimResponseConfigUnion;\n /** A proactive assistant greeting started after session configuration. */\n greeting?: VoiceAgentGreetingConfigUnion;\n /** The object type. Always `realtime.session`. */\n object: \"realtime.session\";\n /** The session identifier. */\n id: string;\n /** The selected model. */\n model: string;\n /** The session expiration time as a Unix timestamp in seconds. */\n expires_at?: Date;\n}\n\nexport function voiceAgentSessionResponseConfigSerializer(\n item: VoiceAgentSessionResponseConfig,\n): any {\n return {\n type: item[\"type\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : voiceAgentMaxOutputTokensSerializer(item[\"max_output_tokens\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceAgentAudioConfigSerializer(item[\"audio\"]),\n avatar: !item[\"avatar\"]\n ? item[\"avatar\"]\n : voiceAgentSessionAvatarConfigSerializer(item[\"avatar\"]),\n animation: !item[\"animation\"]\n ? item[\"animation\"]\n : voiceAgentAnimationConfigSerializer(item[\"animation\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArraySerializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceSerializer(item[\"tool_choice\"]),\n reasoning: !item[\"reasoning\"]\n ? item[\"reasoning\"]\n : realtimeReasoningSerializer(item[\"reasoning\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n include: !item[\"include\"]\n ? item[\"include\"]\n : item[\"include\"].map((p: any) => {\n return p;\n }),\n metadata: item[\"metadata\"],\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionSerializer(item[\"interim_response\"]),\n greeting: !item[\"greeting\"]\n ? item[\"greeting\"]\n : voiceAgentGreetingConfigUnionSerializer(item[\"greeting\"]),\n object: item[\"object\"],\n id: item[\"id\"],\n model: item[\"model\"],\n expires_at: !item[\"expires_at\"] ? item[\"expires_at\"] : item[\"expires_at\"].getTime() / 1000 || 0,\n };\n}\n\nexport function voiceAgentSessionResponseConfigDeserializer(\n item: any,\n): VoiceAgentSessionResponseConfig {\n return {\n type: item[\"type\"],\n instructions: item[\"instructions\"],\n temperature: item[\"temperature\"],\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : voiceAgentMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceAgentAudioConfigDeserializer(item[\"audio\"]),\n avatar: !item[\"avatar\"]\n ? item[\"avatar\"]\n : voiceAgentSessionAvatarConfigDeserializer(item[\"avatar\"]),\n animation: !item[\"animation\"]\n ? item[\"animation\"]\n : voiceAgentAnimationConfigDeserializer(item[\"animation\"]),\n tools: !item[\"tools\"] ? item[\"tools\"] : voiceAgentToolUnionArrayDeserializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : voiceAgentToolChoiceDeserializer(item[\"tool_choice\"]),\n reasoning: !item[\"reasoning\"]\n ? item[\"reasoning\"]\n : realtimeReasoningDeserializer(item[\"reasoning\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n include: !item[\"include\"]\n ? item[\"include\"]\n : item[\"include\"].map((p: any) => {\n return p;\n }),\n metadata: !item[\"metadata\"]\n ? item[\"metadata\"]\n : Object.fromEntries(Object.entries(item[\"metadata\"]).map(([k, p]: [string, any]) => [k, p])),\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionDeserializer(item[\"interim_response\"]),\n greeting: !item[\"greeting\"]\n ? item[\"greeting\"]\n : voiceAgentGreetingConfigUnionDeserializer(item[\"greeting\"]),\n object: item[\"object\"],\n id: item[\"id\"],\n model: item[\"model\"],\n expires_at: !item[\"expires_at\"] ? item[\"expires_at\"] : new Date(item[\"expires_at\"] * 1000),\n };\n}\n\n/** The `session.avatar.connect` client event. */\nexport interface VoiceAgentClientEventSessionAvatarConnect extends RealtimeClientEvent {\n /** The event type. Always `session.avatar.connect`. */\n type: \"session.avatar.connect\";\n /** An optional client-generated event identifier. */\n event_id?: string;\n /** The client's SDP offer for avatar media negotiation. */\n client_sdp: string;\n}\n\nexport function voiceAgentClientEventSessionAvatarConnectSerializer(\n item: VoiceAgentClientEventSessionAvatarConnect,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], client_sdp: item[\"client_sdp\"] };\n}\n\nexport function voiceAgentClientEventSessionAvatarConnectDeserializer(\n item: any,\n): VoiceAgentClientEventSessionAvatarConnect {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n client_sdp: item[\"client_sdp\"],\n };\n}\n\n/** A realtime client event. */\nexport interface RealtimeClientEvent {\n /** The protocol event type identifying the action requested by the client. */\n type: RealtimeClientEventType;\n}\n\nexport function realtimeClientEventSerializer(item: RealtimeClientEvent): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeClientEventDeserializer(item: any): RealtimeClientEvent {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RealtimeClientEventUnion */\nexport type RealtimeClientEventUnion =\n | RealtimeClientEventConversationItemCreate\n | RealtimeClientEventConversationItemDelete\n | RealtimeClientEventConversationItemRetrieve\n | RealtimeClientEventConversationItemTruncate\n | RealtimeClientEventInputAudioBufferAppend\n | RealtimeClientEventInputAudioBufferClear\n | RealtimeClientEventOutputAudioBufferClear\n | RealtimeClientEventInputAudioBufferCommit\n | RealtimeClientEventResponseCancel\n | RealtimeClientEventResponseCreate\n | VoiceAgentClientEventSessionAvatarConnect\n | VoiceAgentClientEventRtcCallSdpCreate\n | RealtimeClientEvent;\n\nexport function realtimeClientEventUnionSerializer(item: RealtimeClientEventUnion): any {\n switch (item.type) {\n case \"conversation.item.create\":\n return realtimeClientEventConversationItemCreateSerializer(\n item as RealtimeClientEventConversationItemCreate,\n );\n\n case \"conversation.item.delete\":\n return realtimeClientEventConversationItemDeleteSerializer(\n item as RealtimeClientEventConversationItemDelete,\n );\n\n case \"conversation.item.retrieve\":\n return realtimeClientEventConversationItemRetrieveSerializer(\n item as RealtimeClientEventConversationItemRetrieve,\n );\n\n case \"conversation.item.truncate\":\n return realtimeClientEventConversationItemTruncateSerializer(\n item as RealtimeClientEventConversationItemTruncate,\n );\n\n case \"input_audio_buffer.append\":\n return realtimeClientEventInputAudioBufferAppendSerializer(\n item as RealtimeClientEventInputAudioBufferAppend,\n );\n\n case \"input_audio_buffer.clear\":\n return realtimeClientEventInputAudioBufferClearSerializer(\n item as RealtimeClientEventInputAudioBufferClear,\n );\n\n case \"output_audio_buffer.clear\":\n return realtimeClientEventOutputAudioBufferClearSerializer(\n item as RealtimeClientEventOutputAudioBufferClear,\n );\n\n case \"input_audio_buffer.commit\":\n return realtimeClientEventInputAudioBufferCommitSerializer(\n item as RealtimeClientEventInputAudioBufferCommit,\n );\n\n case \"response.cancel\":\n return realtimeClientEventResponseCancelSerializer(item as RealtimeClientEventResponseCancel);\n\n case \"response.create\":\n return realtimeClientEventResponseCreateSerializer(item as RealtimeClientEventResponseCreate);\n\n case \"session.avatar.connect\":\n return voiceAgentClientEventSessionAvatarConnectSerializer(\n item as VoiceAgentClientEventSessionAvatarConnect,\n );\n\n case \"rtc.call.sdp.create\":\n return voiceAgentClientEventRtcCallSdpCreateSerializer(\n item as VoiceAgentClientEventRtcCallSdpCreate,\n );\n\n default:\n return realtimeClientEventSerializer(item);\n }\n}\n\nexport function realtimeClientEventUnionDeserializer(item: any): RealtimeClientEventUnion {\n switch (item[\"type\"]) {\n case \"conversation.item.create\":\n return realtimeClientEventConversationItemCreateDeserializer(\n item as RealtimeClientEventConversationItemCreate,\n );\n\n case \"conversation.item.delete\":\n return realtimeClientEventConversationItemDeleteDeserializer(\n item as RealtimeClientEventConversationItemDelete,\n );\n\n case \"conversation.item.retrieve\":\n return realtimeClientEventConversationItemRetrieveDeserializer(\n item as RealtimeClientEventConversationItemRetrieve,\n );\n\n case \"conversation.item.truncate\":\n return realtimeClientEventConversationItemTruncateDeserializer(\n item as RealtimeClientEventConversationItemTruncate,\n );\n\n case \"input_audio_buffer.append\":\n return realtimeClientEventInputAudioBufferAppendDeserializer(\n item as RealtimeClientEventInputAudioBufferAppend,\n );\n\n case \"input_audio_buffer.clear\":\n return realtimeClientEventInputAudioBufferClearDeserializer(\n item as RealtimeClientEventInputAudioBufferClear,\n );\n\n case \"output_audio_buffer.clear\":\n return realtimeClientEventOutputAudioBufferClearDeserializer(\n item as RealtimeClientEventOutputAudioBufferClear,\n );\n\n case \"input_audio_buffer.commit\":\n return realtimeClientEventInputAudioBufferCommitDeserializer(\n item as RealtimeClientEventInputAudioBufferCommit,\n );\n\n case \"response.cancel\":\n return realtimeClientEventResponseCancelDeserializer(\n item as RealtimeClientEventResponseCancel,\n );\n\n case \"response.create\":\n return realtimeClientEventResponseCreateDeserializer(\n item as RealtimeClientEventResponseCreate,\n );\n\n case \"session.avatar.connect\":\n return voiceAgentClientEventSessionAvatarConnectDeserializer(\n item as VoiceAgentClientEventSessionAvatarConnect,\n );\n\n case \"rtc.call.sdp.create\":\n return voiceAgentClientEventRtcCallSdpCreateDeserializer(\n item as VoiceAgentClientEventRtcCallSdpCreate,\n );\n\n default:\n return realtimeClientEventDeserializer(item);\n }\n}\n\n/** Type of RealtimeClientEventType */\nexport type RealtimeClientEventType =\n | \"conversation.item.create\"\n | \"conversation.item.delete\"\n | \"conversation.item.retrieve\"\n | \"conversation.item.truncate\"\n | \"input_audio_buffer.append\"\n | \"input_audio_buffer.clear\"\n | \"output_audio_buffer.clear\"\n | \"input_audio_buffer.commit\"\n | \"response.cancel\"\n | \"response.create\"\n | \"session.update\"\n | \"session.avatar.connect\"\n | \"rtc.call.sdp.create\";\n\n/**\n * Add a new Item to the Conversation's context, including messages, function\n * calls, and function call responses. This event can be used both to populate a\n * \"history\" of the conversation and to add new items mid-stream, but has the\n * current limitation that it cannot populate assistant audio messages.\n * If successful, the server will respond with a `conversation.item.created`\n * event, otherwise an `error` event will be sent.\n */\nexport interface RealtimeClientEventConversationItemCreate extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `conversation.item.create`. */\n type: \"conversation.item.create\";\n /**\n * The ID of the preceding item after which the new item will be inserted. If not set, the new item will be appended to the end of the conversation.\n * If set to `root`, the new item will be added to the beginning of the conversation.\n * If set to an existing ID, it allows an item to be inserted mid-conversation. If the ID cannot be found, an error will be returned and the item will not be added.\n */\n previous_item_id?: string;\n /** The message, function call, or function result to add to the conversation. */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeClientEventConversationItemCreateSerializer(\n item: RealtimeClientEventConversationItemCreate,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeClientEventConversationItemCreateDeserializer(\n item: any,\n): RealtimeClientEventConversationItemCreate {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Send this event when you want to remove any item from the conversation\n * history. The server will respond with a `conversation.item.deleted` event,\n * unless the item does not exist in the conversation history, in which case the\n * server will respond with an error.\n */\nexport interface RealtimeClientEventConversationItemDelete extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `conversation.item.delete`. */\n type: \"conversation.item.delete\";\n /** The ID of the item to delete. */\n item_id: string;\n}\n\nexport function realtimeClientEventConversationItemDeleteSerializer(\n item: RealtimeClientEventConversationItemDelete,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], item_id: item[\"item_id\"] };\n}\n\nexport function realtimeClientEventConversationItemDeleteDeserializer(\n item: any,\n): RealtimeClientEventConversationItemDelete {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/**\n * Send this event when you want to retrieve the server's representation of a specific item in the conversation history. This is useful, for example, to inspect user audio after noise cancellation and VAD.\n * The server will respond with a `conversation.item.retrieved` event,\n * unless the item does not exist in the conversation history, in which case the\n * server will respond with an error.\n */\nexport interface RealtimeClientEventConversationItemRetrieve extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `conversation.item.retrieve`. */\n type: \"conversation.item.retrieve\";\n /** The ID of the item to retrieve. */\n item_id: string;\n}\n\nexport function realtimeClientEventConversationItemRetrieveSerializer(\n item: RealtimeClientEventConversationItemRetrieve,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], item_id: item[\"item_id\"] };\n}\n\nexport function realtimeClientEventConversationItemRetrieveDeserializer(\n item: any,\n): RealtimeClientEventConversationItemRetrieve {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/**\n * Send this event to truncate a previous assistant message\u2019s audio. The server\n * will produce audio faster than realtime, so this event is useful when the user\n * interrupts to truncate audio that has already been sent to the client but not\n * yet played. This will synchronize the server's understanding of the audio with\n * the client's playback.\n * Truncating audio will delete the server-side text transcript to ensure there\n * is not text in the context that hasn't been heard by the user.\n * If successful, the server will respond with a `conversation.item.truncated`\n * event.\n */\nexport interface RealtimeClientEventConversationItemTruncate extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `conversation.item.truncate`. */\n type: \"conversation.item.truncate\";\n /**\n * The ID of the assistant message item to truncate. Only assistant message\n * items can be truncated.\n */\n item_id: string;\n /** The index of the content part to truncate. Set this to `0`. */\n content_index: number;\n /**\n * Inclusive duration up to which audio is truncated, in milliseconds. If\n * the audio_end_ms is greater than the actual audio duration, the server\n * will respond with an error.\n */\n audio_end_ms: number;\n}\n\nexport function realtimeClientEventConversationItemTruncateSerializer(\n item: RealtimeClientEventConversationItemTruncate,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n audio_end_ms: item[\"audio_end_ms\"],\n };\n}\n\nexport function realtimeClientEventConversationItemTruncateDeserializer(\n item: any,\n): RealtimeClientEventConversationItemTruncate {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n audio_end_ms: item[\"audio_end_ms\"],\n };\n}\n\n/**\n * Send this event to append audio bytes to the input audio buffer. The audio\n * buffer is temporary storage you can write to and later commit. A \"commit\" will create a new\n * user message item in the conversation history from the buffer content and clear the buffer.\n * Input audio transcription (if enabled) will be generated when the buffer is committed.\n * If VAD is enabled the audio buffer is used to detect speech and the server will decide\n * when to commit. When Server VAD is disabled, you must commit the audio buffer\n * manually. Input audio noise reduction operates on writes to the audio buffer.\n * The client may choose how much audio to place in each event up to a maximum\n * of 15 MiB, for example streaming smaller chunks from the client may allow the\n * VAD to be more responsive. Unlike most other client events, the server will\n * not send a confirmation response to this event.\n */\nexport interface RealtimeClientEventInputAudioBufferAppend extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `input_audio_buffer.append`. */\n type: \"input_audio_buffer.append\";\n /**\n * Base64-encoded audio bytes. This must be in the format specified by the\n * `input_audio_format` field in the session configuration.\n */\n audio: string;\n}\n\nexport function realtimeClientEventInputAudioBufferAppendSerializer(\n item: RealtimeClientEventInputAudioBufferAppend,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], audio: item[\"audio\"] };\n}\n\nexport function realtimeClientEventInputAudioBufferAppendDeserializer(\n item: any,\n): RealtimeClientEventInputAudioBufferAppend {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio: item[\"audio\"],\n };\n}\n\n/**\n * Send this event to clear the audio bytes in the buffer. The server will\n * respond with an `input_audio_buffer.cleared` event.\n */\nexport interface RealtimeClientEventInputAudioBufferClear extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `input_audio_buffer.clear`. */\n type: \"input_audio_buffer.clear\";\n}\n\nexport function realtimeClientEventInputAudioBufferClearSerializer(\n item: RealtimeClientEventInputAudioBufferClear,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"] };\n}\n\nexport function realtimeClientEventInputAudioBufferClearDeserializer(\n item: any,\n): RealtimeClientEventInputAudioBufferClear {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n };\n}\n\n/**\n * **WebRTC/SIP Only:** Emit to cut off the current audio response. This will trigger the server to\n * stop generating audio and emit a `output_audio_buffer.cleared` event. This\n * event should be preceded by a `response.cancel` client event to stop the\n * generation of the current response.\n * [Learn more](/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).\n */\nexport interface RealtimeClientEventOutputAudioBufferClear extends RealtimeClientEvent {\n /** The unique ID of the client event used for error handling. */\n event_id?: string;\n /** The event type, must be `output_audio_buffer.clear`. */\n type: \"output_audio_buffer.clear\";\n}\n\nexport function realtimeClientEventOutputAudioBufferClearSerializer(\n item: RealtimeClientEventOutputAudioBufferClear,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"] };\n}\n\nexport function realtimeClientEventOutputAudioBufferClearDeserializer(\n item: any,\n): RealtimeClientEventOutputAudioBufferClear {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n };\n}\n\n/**\n * Send this event to commit the user input audio buffer, which will create a new user message item in the conversation. This event will produce an error if the input audio buffer is empty. When in Server VAD mode, the client does not need to send this event, the server will commit the audio buffer automatically.\n * Committing the input audio buffer will trigger input audio transcription (if enabled in session configuration), but it will not create a response from the model. The server will respond with an `input_audio_buffer.committed` event.\n */\nexport interface RealtimeClientEventInputAudioBufferCommit extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `input_audio_buffer.commit`. */\n type: \"input_audio_buffer.commit\";\n}\n\nexport function realtimeClientEventInputAudioBufferCommitSerializer(\n item: RealtimeClientEventInputAudioBufferCommit,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"] };\n}\n\nexport function realtimeClientEventInputAudioBufferCommitDeserializer(\n item: any,\n): RealtimeClientEventInputAudioBufferCommit {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n };\n}\n\n/**\n * Send this event to cancel an in-progress response. The server will respond\n * with a `response.done` event with a status of `response.status=cancelled`. If\n * there is no response to cancel, the server will respond with an error. It's safe\n * to call `response.cancel` even if no response is in progress, an error will be\n * returned the session will remain unaffected.\n */\nexport interface RealtimeClientEventResponseCancel extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `response.cancel`. */\n type: \"response.cancel\";\n /**\n * A specific response ID to cancel - if not provided, will cancel an\n * in-progress response in the default conversation.\n */\n response_id?: string;\n}\n\nexport function realtimeClientEventResponseCancelSerializer(\n item: RealtimeClientEventResponseCancel,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], response_id: item[\"response_id\"] };\n}\n\nexport function realtimeClientEventResponseCancelDeserializer(\n item: any,\n): RealtimeClientEventResponseCancel {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n };\n}\n\n/**\n * This event instructs the server to create a Response, which means triggering\n * model inference. When in Server VAD mode, the server will create Responses\n * automatically.\n * A Response will include at least one Item, and may have two, in which case\n * the second will be a function call. These Items will be appended to the\n * conversation history by default.\n * The server will respond with a `response.created` event, events for Items\n * and content created, and finally a `response.done` event to indicate the\n * Response is complete.\n * The `response.create` event includes inference configuration like\n * `instructions` and `tools`. If these are set, they will override the Session's\n * configuration for this Response only.\n * Responses can be created out-of-band of the default Conversation, meaning that they can\n * have arbitrary input, and it's possible to disable writing the output to the Conversation.\n * Only one Response can write to the default Conversation at a time, but otherwise multiple\n * Responses can be created in parallel. The `metadata` field is a good way to disambiguate\n * multiple simultaneous Responses.\n * Clients can set `conversation` to `none` to create a Response that does not write to the default\n * Conversation. Arbitrary input can be provided with the `input` field, which is an array accepting\n * raw Items and references to existing Items.\n */\nexport interface RealtimeClientEventResponseCreate extends RealtimeClientEvent {\n /** Optional client-generated ID used to identify this event. */\n event_id?: string;\n /** The event type, must be `response.create`. */\n type: \"response.create\";\n /** Configuration for this response, including overrides of the session's inference settings. */\n response?: VoiceAgentResponseCreateParams;\n}\n\nexport function realtimeClientEventResponseCreateSerializer(\n item: RealtimeClientEventResponseCreate,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response: !item[\"response\"]\n ? item[\"response\"]\n : voiceAgentResponseCreateParamsSerializer(item[\"response\"]),\n };\n}\n\nexport function realtimeClientEventResponseCreateDeserializer(\n item: any,\n): RealtimeClientEventResponseCreate {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response: !item[\"response\"]\n ? item[\"response\"]\n : voiceAgentResponseCreateParamsDeserializer(item[\"response\"]),\n };\n}\n\n/** Parameters accepted by a voice-agent `response.create` event. */\nexport interface VoiceAgentResponseCreateParams {\n /**\n * The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. \"be extremely succinct\", \"act friendly\", \"here are examples of good responses\") and on audio behavior (e.g. \"talk quickly\", \"inject emotion into your voice\", \"laugh frequently\"). The instructions are not guaranteed to be followed by the model, but they provide guidance to the model on the desired behavior.\n * Note that the server sets default instructions which will be used if this field is not set and are visible in the `session.created` event at the start of the session.\n */\n instructions?: string;\n /** Tools available to the model. */\n tools?: (RealtimeFunctionTool | MCPTool)[];\n /**\n * How the model chooses tools. Provide one of the string modes or force a specific\n * function/MCP tool.\n */\n tool_choice?: ToolChoiceOptions | ToolChoiceFunction | ToolChoiceMCP;\n /**\n * Whether the model may call multiple tools in parallel. Only supported by\n * reasoning Realtime models such as `gpt-realtime-2`.\n */\n parallel_tool_calls?: boolean;\n /** Reasoning settings for the response when using a reasoning-capable realtime model. */\n reasoning?: RealtimeReasoning;\n /**\n * Maximum number of output tokens for a single assistant response,\n * inclusive of tool calls. Provide an integer between 1 and 4096 to\n * limit output tokens, or `inf` for the maximum available tokens for a\n * given model. Defaults to `inf`.\n */\n max_output_tokens?: number | \"inf\";\n /**\n * Controls which conversation the response is added to. Currently supports\n * `auto` and `none`, with `auto` as the default value. The `auto` value\n * means that the contents of the response will be added to the default\n * conversation. Set this to `none` to create an out-of-band response which\n * will not add items to default conversation.\n */\n conversation?: \"auto\" | \"none\";\n /** Custom string key-value pairs to associate with the response. */\n metadata?: Metadata;\n /** Modalities that the response may return. */\n output_modalities?: VoiceOutputModality[];\n /** Response-specific audio settings. */\n audio?: PickPropertiesVoiceAgentAudioConfig;\n /** Conversation items used as inline response input. */\n input?: RealtimeConversationItemUnion[];\n /** A pre-generated assistant message used to begin the response. */\n pre_generated_assistant_message?: RealtimeConversationItemUnion;\n /** Interim-response settings for this response. */\n interim_response?: VoiceAgentInterimResponseConfigUnion;\n}\n\nexport function voiceAgentResponseCreateParamsSerializer(\n item: VoiceAgentResponseCreateParams,\n): any {\n return {\n instructions: item[\"instructions\"],\n tools: !item[\"tools\"]\n ? item[\"tools\"]\n : _voiceAgentResponseCreateParamsToolArraySerializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : _voiceAgentResponseCreateParamsToolChoiceSerializer(item[\"tool_choice\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n reasoning: !item[\"reasoning\"]\n ? item[\"reasoning\"]\n : realtimeReasoningSerializer(item[\"reasoning\"]),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceAgentResponseCreateParamsMaxOutputTokensSerializer(item[\"max_output_tokens\"]),\n conversation: item[\"conversation\"],\n metadata: !item[\"metadata\"] ? item[\"metadata\"] : metadataSerializer(item[\"metadata\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n audio: !item[\"audio\"]\n ? item[\"audio\"]\n : pickPropertiesVoiceAgentAudioConfigSerializer(item[\"audio\"]),\n input: !item[\"input\"]\n ? item[\"input\"]\n : realtimeConversationItemUnionArraySerializer(item[\"input\"]),\n pre_generated_assistant_message: !item[\"pre_generated_assistant_message\"]\n ? item[\"pre_generated_assistant_message\"]\n : realtimeConversationItemUnionSerializer(item[\"pre_generated_assistant_message\"]),\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionSerializer(item[\"interim_response\"]),\n };\n}\n\nexport function voiceAgentResponseCreateParamsDeserializer(\n item: any,\n): VoiceAgentResponseCreateParams {\n return {\n instructions: item[\"instructions\"],\n tools: !item[\"tools\"]\n ? item[\"tools\"]\n : _voiceAgentResponseCreateParamsToolArrayDeserializer(item[\"tools\"]),\n tool_choice: !item[\"tool_choice\"]\n ? item[\"tool_choice\"]\n : _voiceAgentResponseCreateParamsToolChoiceDeserializer(item[\"tool_choice\"]),\n parallel_tool_calls: item[\"parallel_tool_calls\"],\n reasoning: !item[\"reasoning\"]\n ? item[\"reasoning\"]\n : realtimeReasoningDeserializer(item[\"reasoning\"]),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceAgentResponseCreateParamsMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n conversation: item[\"conversation\"],\n metadata: !item[\"metadata\"] ? item[\"metadata\"] : metadataDeserializer(item[\"metadata\"]),\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n audio: !item[\"audio\"]\n ? item[\"audio\"]\n : pickPropertiesVoiceAgentAudioConfigDeserializer(item[\"audio\"]),\n input: !item[\"input\"]\n ? item[\"input\"]\n : realtimeConversationItemUnionArrayDeserializer(item[\"input\"]),\n pre_generated_assistant_message: !item[\"pre_generated_assistant_message\"]\n ? item[\"pre_generated_assistant_message\"]\n : realtimeConversationItemUnionDeserializer(item[\"pre_generated_assistant_message\"]),\n interim_response: !item[\"interim_response\"]\n ? item[\"interim_response\"]\n : voiceAgentInterimResponseConfigUnionDeserializer(item[\"interim_response\"]),\n };\n}\n\nexport function _voiceAgentResponseCreateParamsToolArraySerializer(\n result: Array<_VoiceAgentResponseCreateParamsTool>,\n): any[] {\n return result.map((item) => {\n return _voiceAgentResponseCreateParamsToolSerializer(item);\n });\n}\n\nexport function _voiceAgentResponseCreateParamsToolArrayDeserializer(\n result: Array<_VoiceAgentResponseCreateParamsTool>,\n): any[] {\n return result.map((item) => {\n return _voiceAgentResponseCreateParamsToolDeserializer(item);\n });\n}\n\n/** Alias for _VoiceAgentResponseCreateParamsTool */\nexport type _VoiceAgentResponseCreateParamsTool = RealtimeFunctionTool | MCPTool;\n\nexport function _voiceAgentResponseCreateParamsToolSerializer(\n item: _VoiceAgentResponseCreateParamsTool,\n): any {\n return item;\n}\n\nexport function _voiceAgentResponseCreateParamsToolDeserializer(\n item: any,\n): _VoiceAgentResponseCreateParamsTool {\n return item;\n}\n\n/** model interface RealtimeFunctionTool */\nexport interface RealtimeFunctionTool {\n /** The type of the tool, i.e. `function`. */\n type?: \"function\";\n /** The name of the function. */\n name?: string;\n /**\n * The description of the function, including guidance on when and how\n * to call it, and guidance about what to tell the user when calling\n * (if anything).\n */\n description?: string;\n /** Parameters of the function in JSON Schema. */\n parameters?: RealtimeFunctionToolParameters;\n}\n\nexport function realtimeFunctionToolSerializer(item: RealtimeFunctionTool): any {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : realtimeFunctionToolParametersSerializer(item[\"parameters\"]),\n };\n}\n\nexport function realtimeFunctionToolDeserializer(item: any): RealtimeFunctionTool {\n return {\n type: item[\"type\"],\n name: item[\"name\"],\n description: item[\"description\"],\n parameters: !item[\"parameters\"]\n ? item[\"parameters\"]\n : realtimeFunctionToolParametersDeserializer(item[\"parameters\"]),\n };\n}\n\n/** Alias for _VoiceAgentResponseCreateParamsToolChoice */\nexport type _VoiceAgentResponseCreateParamsToolChoice =\n ToolChoiceOptions | ToolChoiceFunction | ToolChoiceMCP;\n\nexport function _voiceAgentResponseCreateParamsToolChoiceSerializer(\n item: _VoiceAgentResponseCreateParamsToolChoice,\n): any {\n return item;\n}\n\nexport function _voiceAgentResponseCreateParamsToolChoiceDeserializer(\n item: any,\n): _VoiceAgentResponseCreateParamsToolChoice {\n return item;\n}\n\n/**\n * Controls which (if any) tool is called by the model.\n * `none` means the model will not call any tool and instead generates a message.\n * `auto` means the model can pick between generating a message or calling one or\n * more tools.\n * `required` means the model must call one or more tools.\n */\nexport type ToolChoiceOptions = \"none\" | \"auto\" | \"required\";\n\n/** Alias for _VoiceAgentResponseCreateParamsMaxOutputTokens */\nexport type _VoiceAgentResponseCreateParamsMaxOutputTokens = number | \"inf\";\n\nexport function _voiceAgentResponseCreateParamsMaxOutputTokensSerializer(\n item: _VoiceAgentResponseCreateParamsMaxOutputTokens,\n): any {\n return item;\n}\n\nexport function _voiceAgentResponseCreateParamsMaxOutputTokensDeserializer(\n item: any,\n): _VoiceAgentResponseCreateParamsMaxOutputTokens {\n return item;\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.\n * Keys are strings with a maximum length of 64 characters. Values are strings\n * with a maximum length of 512 characters.\n */\nexport interface Metadata {\n /** Additional properties */\n additionalProperties?: Record<string, string>;\n}\n\nexport function metadataSerializer(item: Metadata): any {\n return { ...serializeRecord(item.additionalProperties ?? {}) };\n}\n\nexport function metadataDeserializer(item: any): Metadata {\n return {\n additionalProperties: serializeRecord(item, []),\n };\n}\n\n/** The template for picking properties. */\nexport interface PickPropertiesVoiceAgentAudioConfig {\n /** Output (agent speech) audio configuration. */\n output?: VoiceAgentAudioOutputConfig;\n}\n\nexport function pickPropertiesVoiceAgentAudioConfigSerializer(\n item: PickPropertiesVoiceAgentAudioConfig,\n): any {\n return {\n output: !item[\"output\"]\n ? item[\"output\"]\n : voiceAgentAudioOutputConfigSerializer(item[\"output\"]),\n };\n}\n\nexport function pickPropertiesVoiceAgentAudioConfigDeserializer(\n item: any,\n): PickPropertiesVoiceAgentAudioConfig {\n return {\n output: !item[\"output\"]\n ? item[\"output\"]\n : voiceAgentAudioOutputConfigDeserializer(item[\"output\"]),\n };\n}\n\n/** The `rtc.call.sdp.create` client event: begins WebRTC signaling with an SDP offer. */\nexport interface VoiceAgentClientEventRtcCallSdpCreate extends RealtimeClientEvent {\n /** The event type. Always `rtc.call.sdp.create`. */\n type: \"rtc.call.sdp.create\";\n /** An optional client-generated event identifier. */\n event_id?: string;\n /** The client's SDP offer for the WebRTC connection. */\n sdp_offer: string;\n /** Optional session configuration. For an `/agents` endpoint the service rebuilds it authoritatively from the persisted agent definition. */\n session?: VoiceAgentSessionUpdateConfig;\n}\n\nexport function voiceAgentClientEventRtcCallSdpCreateSerializer(\n item: VoiceAgentClientEventRtcCallSdpCreate,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n sdp_offer: item[\"sdp_offer\"],\n session: !item[\"session\"]\n ? item[\"session\"]\n : voiceAgentSessionUpdateConfigSerializer(item[\"session\"]),\n };\n}\n\nexport function voiceAgentClientEventRtcCallSdpCreateDeserializer(\n item: any,\n): VoiceAgentClientEventRtcCallSdpCreate {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n sdp_offer: item[\"sdp_offer\"],\n session: !item[\"session\"]\n ? item[\"session\"]\n : voiceAgentSessionUpdateConfigDeserializer(item[\"session\"]),\n };\n}\n\n/** The `session.update` client event. */\nexport interface VoiceAgentClientEventSessionUpdate {\n /** Optional client-generated ID used to identify this event. This is an arbitrary string that a client may assign. It will be passed back if there is an error with the event, but the corresponding `session.updated` event will not include it. */\n event_id?: string;\n /** The event type, must be `session.update`. */\n type: \"session.update\";\n /** The voice-agent session settings to update. */\n session: VoiceAgentSessionUpdate;\n}\n\nexport function voiceAgentClientEventSessionUpdateSerializer(\n item: VoiceAgentClientEventSessionUpdate,\n): any {\n return {\n event_id: item[\"event_id\"],\n type: item[\"type\"],\n session: voiceAgentSessionUpdateSerializer(item[\"session\"]),\n };\n}\n\nexport function voiceAgentClientEventSessionUpdateDeserializer(\n item: any,\n): VoiceAgentClientEventSessionUpdate {\n return {\n event_id: item[\"event_id\"],\n type: item[\"type\"],\n session: voiceAgentSessionUpdateDeserializer(item[\"session\"]),\n };\n}\n\n/** The session configuration accepted by a voice-agent session update event. */\nexport type VoiceAgentSessionUpdate = VoiceAgentSessionUpdateConfig;\n\nexport function voiceAgentSessionUpdateSerializer(item: VoiceAgentSessionUpdate): any {\n return item;\n}\n\nexport function voiceAgentSessionUpdateDeserializer(item: any): VoiceAgentSessionUpdate {\n return item;\n}\n\n/** The `session.subagent.completed` server event. */\nexport interface VoiceAgentServerEventSessionSubagentCompleted extends RealtimeServerEvent {\n /** The event type. Always `session.subagent.completed`. */\n type: \"session.subagent.completed\";\n /** The server-generated event identifier. */\n event_id: string;\n /** The identifier of the subagent consultation. */\n consultation_id: string;\n /** The identifier of the function call that initiated the consultation. */\n call_id: string;\n /** The name of the consulted subagent. */\n subagent_name: string;\n}\n\nexport function voiceAgentServerEventSessionSubagentCompletedSerializer(\n item: VoiceAgentServerEventSessionSubagentCompleted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n consultation_id: item[\"consultation_id\"],\n call_id: item[\"call_id\"],\n subagent_name: item[\"subagent_name\"],\n };\n}\n\nexport function voiceAgentServerEventSessionSubagentCompletedDeserializer(\n item: any,\n): VoiceAgentServerEventSessionSubagentCompleted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n consultation_id: item[\"consultation_id\"],\n call_id: item[\"call_id\"],\n subagent_name: item[\"subagent_name\"],\n };\n}\n\n/** A realtime server event. */\nexport interface RealtimeServerEvent {\n /** The protocol event type identifying the update reported by the service. */\n type: RealtimeServerEventType;\n}\n\nexport function realtimeServerEventSerializer(item: RealtimeServerEvent): any {\n return { type: item[\"type\"] };\n}\n\nexport function realtimeServerEventDeserializer(item: any): RealtimeServerEvent {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for RealtimeServerEventUnion */\nexport type RealtimeServerEventUnion =\n | RealtimeServerEventConversationItemCreated\n | RealtimeServerEventConversationItemDeleted\n | RealtimeServerEventConversationItemInputAudioTranscriptionCompleted\n | RealtimeServerEventConversationItemInputAudioTranscriptionDelta\n | RealtimeServerEventConversationItemInputAudioTranscriptionFailed\n | RealtimeServerEventConversationItemRetrieved\n | RealtimeServerEventConversationItemTruncated\n | RealtimeServerEventInputAudioBufferCleared\n | RealtimeServerEventInputAudioBufferCommitted\n | RealtimeServerEventInputAudioBufferSpeechStarted\n | RealtimeServerEventInputAudioBufferSpeechStopped\n | RealtimeServerEventRateLimitsUpdated\n | RealtimeServerEventResponseAudioDelta\n | RealtimeServerEventResponseAudioDone\n | RealtimeServerEventResponseAudioTranscriptDelta\n | RealtimeServerEventResponseAudioTranscriptDone\n | RealtimeServerEventResponseContentPartAdded\n | RealtimeServerEventResponseContentPartDone\n | RealtimeServerEventResponseCreated\n | RealtimeServerEventResponseDone\n | RealtimeServerEventResponseFunctionCallArgumentsDelta\n | RealtimeServerEventResponseFunctionCallArgumentsDone\n | RealtimeServerEventResponseOutputItemAdded\n | RealtimeServerEventResponseOutputItemDone\n | RealtimeServerEventResponseTextDelta\n | RealtimeServerEventResponseTextDone\n | RealtimeServerEventSessionCreated\n | RealtimeServerEventSessionUpdated\n | RealtimeServerEventOutputAudioBufferCleared\n | RealtimeServerEventConversationItemAdded\n | RealtimeServerEventConversationItemDone\n | RealtimeServerEventInputAudioBufferTimeoutTriggered\n | RealtimeServerEventConversationItemInputAudioTranscriptionSegment\n | RealtimeServerEventMCPListToolsInProgress\n | RealtimeServerEventMCPListToolsCompleted\n | RealtimeServerEventMCPListToolsFailed\n | RealtimeServerEventResponseMCPCallArgumentsDelta\n | RealtimeServerEventResponseMCPCallArgumentsDone\n | RealtimeServerEventResponseMCPCallInProgress\n | RealtimeServerEventResponseMCPCallCompleted\n | RealtimeServerEventResponseMCPCallFailed\n | VoiceAgentServerEventSessionSubagentStarted\n | VoiceAgentServerEventSessionSubagentCompleted\n | VoiceAgentServerEventSessionSubagentAborted\n | VoiceAgentServerEventWarning\n | VoiceAgentServerEventSessionAvatarConnecting\n | VoiceAgentServerEventRtcCallSdpCreated\n | VoiceAgentServerEventRtcCallError\n | VoiceAgentServerEventSessionAvatarSwitchToSpeaking\n | VoiceAgentServerEventSessionAvatarSwitchToIdle\n | VoiceAgentServerEventResponseAudioTimestampDelta\n | VoiceAgentServerEventResponseAudioTimestampDone\n | VoiceAgentServerEventResponseAnimationBlendshapesDelta\n | VoiceAgentServerEventResponseAnimationBlendshapesDone\n | VoiceAgentServerEventResponseAnimationVisemeDelta\n | VoiceAgentServerEventResponseAnimationVisemeDone\n | VoiceAgentServerEventResponseVideoDelta\n | RealtimeServerEvent;\n\nexport function realtimeServerEventUnionSerializer(item: RealtimeServerEventUnion): any {\n switch (item.type) {\n case \"conversation.item.created\":\n return realtimeServerEventConversationItemCreatedSerializer(\n item as RealtimeServerEventConversationItemCreated,\n );\n\n case \"conversation.item.deleted\":\n return realtimeServerEventConversationItemDeletedSerializer(\n item as RealtimeServerEventConversationItemDeleted,\n );\n\n case \"conversation.item.input_audio_transcription.completed\":\n return realtimeServerEventConversationItemInputAudioTranscriptionCompletedSerializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionCompleted,\n );\n\n case \"conversation.item.input_audio_transcription.delta\":\n return realtimeServerEventConversationItemInputAudioTranscriptionDeltaSerializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionDelta,\n );\n\n case \"conversation.item.input_audio_transcription.failed\":\n return realtimeServerEventConversationItemInputAudioTranscriptionFailedSerializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionFailed,\n );\n\n case \"conversation.item.retrieved\":\n return realtimeServerEventConversationItemRetrievedSerializer(\n item as RealtimeServerEventConversationItemRetrieved,\n );\n\n case \"conversation.item.truncated\":\n return realtimeServerEventConversationItemTruncatedSerializer(\n item as RealtimeServerEventConversationItemTruncated,\n );\n\n case \"input_audio_buffer.cleared\":\n return realtimeServerEventInputAudioBufferClearedSerializer(\n item as RealtimeServerEventInputAudioBufferCleared,\n );\n\n case \"input_audio_buffer.committed\":\n return realtimeServerEventInputAudioBufferCommittedSerializer(\n item as RealtimeServerEventInputAudioBufferCommitted,\n );\n\n case \"input_audio_buffer.speech_started\":\n return realtimeServerEventInputAudioBufferSpeechStartedSerializer(\n item as RealtimeServerEventInputAudioBufferSpeechStarted,\n );\n\n case \"input_audio_buffer.speech_stopped\":\n return realtimeServerEventInputAudioBufferSpeechStoppedSerializer(\n item as RealtimeServerEventInputAudioBufferSpeechStopped,\n );\n\n case \"rate_limits.updated\":\n return realtimeServerEventRateLimitsUpdatedSerializer(\n item as RealtimeServerEventRateLimitsUpdated,\n );\n\n case \"response.output_audio.delta\":\n return realtimeServerEventResponseAudioDeltaSerializer(\n item as RealtimeServerEventResponseAudioDelta,\n );\n\n case \"response.output_audio.done\":\n return realtimeServerEventResponseAudioDoneSerializer(\n item as RealtimeServerEventResponseAudioDone,\n );\n\n case \"response.output_audio_transcript.delta\":\n return realtimeServerEventResponseAudioTranscriptDeltaSerializer(\n item as RealtimeServerEventResponseAudioTranscriptDelta,\n );\n\n case \"response.output_audio_transcript.done\":\n return realtimeServerEventResponseAudioTranscriptDoneSerializer(\n item as RealtimeServerEventResponseAudioTranscriptDone,\n );\n\n case \"response.content_part.added\":\n return realtimeServerEventResponseContentPartAddedSerializer(\n item as RealtimeServerEventResponseContentPartAdded,\n );\n\n case \"response.content_part.done\":\n return realtimeServerEventResponseContentPartDoneSerializer(\n item as RealtimeServerEventResponseContentPartDone,\n );\n\n case \"response.created\":\n return realtimeServerEventResponseCreatedSerializer(\n item as RealtimeServerEventResponseCreated,\n );\n\n case \"response.done\":\n return realtimeServerEventResponseDoneSerializer(item as RealtimeServerEventResponseDone);\n\n case \"response.function_call_arguments.delta\":\n return realtimeServerEventResponseFunctionCallArgumentsDeltaSerializer(\n item as RealtimeServerEventResponseFunctionCallArgumentsDelta,\n );\n\n case \"response.function_call_arguments.done\":\n return realtimeServerEventResponseFunctionCallArgumentsDoneSerializer(\n item as RealtimeServerEventResponseFunctionCallArgumentsDone,\n );\n\n case \"response.output_item.added\":\n return realtimeServerEventResponseOutputItemAddedSerializer(\n item as RealtimeServerEventResponseOutputItemAdded,\n );\n\n case \"response.output_item.done\":\n return realtimeServerEventResponseOutputItemDoneSerializer(\n item as RealtimeServerEventResponseOutputItemDone,\n );\n\n case \"response.output_text.delta\":\n return realtimeServerEventResponseTextDeltaSerializer(\n item as RealtimeServerEventResponseTextDelta,\n );\n\n case \"response.output_text.done\":\n return realtimeServerEventResponseTextDoneSerializer(\n item as RealtimeServerEventResponseTextDone,\n );\n\n case \"session.created\":\n return realtimeServerEventSessionCreatedSerializer(item as RealtimeServerEventSessionCreated);\n\n case \"session.updated\":\n return realtimeServerEventSessionUpdatedSerializer(item as RealtimeServerEventSessionUpdated);\n\n case \"output_audio_buffer.cleared\":\n return realtimeServerEventOutputAudioBufferClearedSerializer(\n item as RealtimeServerEventOutputAudioBufferCleared,\n );\n\n case \"conversation.item.added\":\n return realtimeServerEventConversationItemAddedSerializer(\n item as RealtimeServerEventConversationItemAdded,\n );\n\n case \"conversation.item.done\":\n return realtimeServerEventConversationItemDoneSerializer(\n item as RealtimeServerEventConversationItemDone,\n );\n\n case \"input_audio_buffer.timeout_triggered\":\n return realtimeServerEventInputAudioBufferTimeoutTriggeredSerializer(\n item as RealtimeServerEventInputAudioBufferTimeoutTriggered,\n );\n\n case \"conversation.item.input_audio_transcription.segment\":\n return realtimeServerEventConversationItemInputAudioTranscriptionSegmentSerializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionSegment,\n );\n\n case \"mcp_list_tools.in_progress\":\n return realtimeServerEventMCPListToolsInProgressSerializer(\n item as RealtimeServerEventMCPListToolsInProgress,\n );\n\n case \"mcp_list_tools.completed\":\n return realtimeServerEventMCPListToolsCompletedSerializer(\n item as RealtimeServerEventMCPListToolsCompleted,\n );\n\n case \"mcp_list_tools.failed\":\n return realtimeServerEventMCPListToolsFailedSerializer(\n item as RealtimeServerEventMCPListToolsFailed,\n );\n\n case \"response.mcp_call_arguments.delta\":\n return realtimeServerEventResponseMCPCallArgumentsDeltaSerializer(\n item as RealtimeServerEventResponseMCPCallArgumentsDelta,\n );\n\n case \"response.mcp_call_arguments.done\":\n return realtimeServerEventResponseMCPCallArgumentsDoneSerializer(\n item as RealtimeServerEventResponseMCPCallArgumentsDone,\n );\n\n case \"response.mcp_call.in_progress\":\n return realtimeServerEventResponseMCPCallInProgressSerializer(\n item as RealtimeServerEventResponseMCPCallInProgress,\n );\n\n case \"response.mcp_call.completed\":\n return realtimeServerEventResponseMCPCallCompletedSerializer(\n item as RealtimeServerEventResponseMCPCallCompleted,\n );\n\n case \"response.mcp_call.failed\":\n return realtimeServerEventResponseMCPCallFailedSerializer(\n item as RealtimeServerEventResponseMCPCallFailed,\n );\n\n case \"session.subagent.started\":\n return voiceAgentServerEventSessionSubagentStartedSerializer(\n item as VoiceAgentServerEventSessionSubagentStarted,\n );\n\n case \"session.subagent.completed\":\n return voiceAgentServerEventSessionSubagentCompletedSerializer(\n item as VoiceAgentServerEventSessionSubagentCompleted,\n );\n\n case \"session.subagent.aborted\":\n return voiceAgentServerEventSessionSubagentAbortedSerializer(\n item as VoiceAgentServerEventSessionSubagentAborted,\n );\n\n case \"warning\":\n return voiceAgentServerEventWarningSerializer(item as VoiceAgentServerEventWarning);\n\n case \"session.avatar.connecting\":\n return voiceAgentServerEventSessionAvatarConnectingSerializer(\n item as VoiceAgentServerEventSessionAvatarConnecting,\n );\n\n case \"rtc.call.sdp.created\":\n return voiceAgentServerEventRtcCallSdpCreatedSerializer(\n item as VoiceAgentServerEventRtcCallSdpCreated,\n );\n\n case \"rtc.call.error\":\n return voiceAgentServerEventRtcCallErrorSerializer(item as VoiceAgentServerEventRtcCallError);\n\n case \"session.avatar.switch_to_speaking\":\n return voiceAgentServerEventSessionAvatarSwitchToSpeakingSerializer(\n item as VoiceAgentServerEventSessionAvatarSwitchToSpeaking,\n );\n\n case \"session.avatar.switch_to_idle\":\n return voiceAgentServerEventSessionAvatarSwitchToIdleSerializer(\n item as VoiceAgentServerEventSessionAvatarSwitchToIdle,\n );\n\n case \"response.audio_timestamp.delta\":\n return voiceAgentServerEventResponseAudioTimestampDeltaSerializer(\n item as VoiceAgentServerEventResponseAudioTimestampDelta,\n );\n\n case \"response.audio_timestamp.done\":\n return voiceAgentServerEventResponseAudioTimestampDoneSerializer(\n item as VoiceAgentServerEventResponseAudioTimestampDone,\n );\n\n case \"response.animation_blendshapes.delta\":\n return voiceAgentServerEventResponseAnimationBlendshapesDeltaSerializer(\n item as VoiceAgentServerEventResponseAnimationBlendshapesDelta,\n );\n\n case \"response.animation_blendshapes.done\":\n return voiceAgentServerEventResponseAnimationBlendshapesDoneSerializer(\n item as VoiceAgentServerEventResponseAnimationBlendshapesDone,\n );\n\n case \"response.animation_viseme.delta\":\n return voiceAgentServerEventResponseAnimationVisemeDeltaSerializer(\n item as VoiceAgentServerEventResponseAnimationVisemeDelta,\n );\n\n case \"response.animation_viseme.done\":\n return voiceAgentServerEventResponseAnimationVisemeDoneSerializer(\n item as VoiceAgentServerEventResponseAnimationVisemeDone,\n );\n\n case \"response.video.delta\":\n return voiceAgentServerEventResponseVideoDeltaSerializer(\n item as VoiceAgentServerEventResponseVideoDelta,\n );\n\n default:\n return realtimeServerEventSerializer(item);\n }\n}\n\nexport function realtimeServerEventUnionDeserializer(item: any): RealtimeServerEventUnion {\n switch (item[\"type\"]) {\n case \"conversation.item.created\":\n return realtimeServerEventConversationItemCreatedDeserializer(\n item as RealtimeServerEventConversationItemCreated,\n );\n\n case \"conversation.item.deleted\":\n return realtimeServerEventConversationItemDeletedDeserializer(\n item as RealtimeServerEventConversationItemDeleted,\n );\n\n case \"conversation.item.input_audio_transcription.completed\":\n return realtimeServerEventConversationItemInputAudioTranscriptionCompletedDeserializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionCompleted,\n );\n\n case \"conversation.item.input_audio_transcription.delta\":\n return realtimeServerEventConversationItemInputAudioTranscriptionDeltaDeserializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionDelta,\n );\n\n case \"conversation.item.input_audio_transcription.failed\":\n return realtimeServerEventConversationItemInputAudioTranscriptionFailedDeserializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionFailed,\n );\n\n case \"conversation.item.retrieved\":\n return realtimeServerEventConversationItemRetrievedDeserializer(\n item as RealtimeServerEventConversationItemRetrieved,\n );\n\n case \"conversation.item.truncated\":\n return realtimeServerEventConversationItemTruncatedDeserializer(\n item as RealtimeServerEventConversationItemTruncated,\n );\n\n case \"input_audio_buffer.cleared\":\n return realtimeServerEventInputAudioBufferClearedDeserializer(\n item as RealtimeServerEventInputAudioBufferCleared,\n );\n\n case \"input_audio_buffer.committed\":\n return realtimeServerEventInputAudioBufferCommittedDeserializer(\n item as RealtimeServerEventInputAudioBufferCommitted,\n );\n\n case \"input_audio_buffer.speech_started\":\n return realtimeServerEventInputAudioBufferSpeechStartedDeserializer(\n item as RealtimeServerEventInputAudioBufferSpeechStarted,\n );\n\n case \"input_audio_buffer.speech_stopped\":\n return realtimeServerEventInputAudioBufferSpeechStoppedDeserializer(\n item as RealtimeServerEventInputAudioBufferSpeechStopped,\n );\n\n case \"rate_limits.updated\":\n return realtimeServerEventRateLimitsUpdatedDeserializer(\n item as RealtimeServerEventRateLimitsUpdated,\n );\n\n case \"response.output_audio.delta\":\n return realtimeServerEventResponseAudioDeltaDeserializer(\n item as RealtimeServerEventResponseAudioDelta,\n );\n\n case \"response.output_audio.done\":\n return realtimeServerEventResponseAudioDoneDeserializer(\n item as RealtimeServerEventResponseAudioDone,\n );\n\n case \"response.output_audio_transcript.delta\":\n return realtimeServerEventResponseAudioTranscriptDeltaDeserializer(\n item as RealtimeServerEventResponseAudioTranscriptDelta,\n );\n\n case \"response.output_audio_transcript.done\":\n return realtimeServerEventResponseAudioTranscriptDoneDeserializer(\n item as RealtimeServerEventResponseAudioTranscriptDone,\n );\n\n case \"response.content_part.added\":\n return realtimeServerEventResponseContentPartAddedDeserializer(\n item as RealtimeServerEventResponseContentPartAdded,\n );\n\n case \"response.content_part.done\":\n return realtimeServerEventResponseContentPartDoneDeserializer(\n item as RealtimeServerEventResponseContentPartDone,\n );\n\n case \"response.created\":\n return realtimeServerEventResponseCreatedDeserializer(\n item as RealtimeServerEventResponseCreated,\n );\n\n case \"response.done\":\n return realtimeServerEventResponseDoneDeserializer(item as RealtimeServerEventResponseDone);\n\n case \"response.function_call_arguments.delta\":\n return realtimeServerEventResponseFunctionCallArgumentsDeltaDeserializer(\n item as RealtimeServerEventResponseFunctionCallArgumentsDelta,\n );\n\n case \"response.function_call_arguments.done\":\n return realtimeServerEventResponseFunctionCallArgumentsDoneDeserializer(\n item as RealtimeServerEventResponseFunctionCallArgumentsDone,\n );\n\n case \"response.output_item.added\":\n return realtimeServerEventResponseOutputItemAddedDeserializer(\n item as RealtimeServerEventResponseOutputItemAdded,\n );\n\n case \"response.output_item.done\":\n return realtimeServerEventResponseOutputItemDoneDeserializer(\n item as RealtimeServerEventResponseOutputItemDone,\n );\n\n case \"response.output_text.delta\":\n return realtimeServerEventResponseTextDeltaDeserializer(\n item as RealtimeServerEventResponseTextDelta,\n );\n\n case \"response.output_text.done\":\n return realtimeServerEventResponseTextDoneDeserializer(\n item as RealtimeServerEventResponseTextDone,\n );\n\n case \"session.created\":\n return realtimeServerEventSessionCreatedDeserializer(\n item as RealtimeServerEventSessionCreated,\n );\n\n case \"session.updated\":\n return realtimeServerEventSessionUpdatedDeserializer(\n item as RealtimeServerEventSessionUpdated,\n );\n\n case \"output_audio_buffer.cleared\":\n return realtimeServerEventOutputAudioBufferClearedDeserializer(\n item as RealtimeServerEventOutputAudioBufferCleared,\n );\n\n case \"conversation.item.added\":\n return realtimeServerEventConversationItemAddedDeserializer(\n item as RealtimeServerEventConversationItemAdded,\n );\n\n case \"conversation.item.done\":\n return realtimeServerEventConversationItemDoneDeserializer(\n item as RealtimeServerEventConversationItemDone,\n );\n\n case \"input_audio_buffer.timeout_triggered\":\n return realtimeServerEventInputAudioBufferTimeoutTriggeredDeserializer(\n item as RealtimeServerEventInputAudioBufferTimeoutTriggered,\n );\n\n case \"conversation.item.input_audio_transcription.segment\":\n return realtimeServerEventConversationItemInputAudioTranscriptionSegmentDeserializer(\n item as RealtimeServerEventConversationItemInputAudioTranscriptionSegment,\n );\n\n case \"mcp_list_tools.in_progress\":\n return realtimeServerEventMCPListToolsInProgressDeserializer(\n item as RealtimeServerEventMCPListToolsInProgress,\n );\n\n case \"mcp_list_tools.completed\":\n return realtimeServerEventMCPListToolsCompletedDeserializer(\n item as RealtimeServerEventMCPListToolsCompleted,\n );\n\n case \"mcp_list_tools.failed\":\n return realtimeServerEventMCPListToolsFailedDeserializer(\n item as RealtimeServerEventMCPListToolsFailed,\n );\n\n case \"response.mcp_call_arguments.delta\":\n return realtimeServerEventResponseMCPCallArgumentsDeltaDeserializer(\n item as RealtimeServerEventResponseMCPCallArgumentsDelta,\n );\n\n case \"response.mcp_call_arguments.done\":\n return realtimeServerEventResponseMCPCallArgumentsDoneDeserializer(\n item as RealtimeServerEventResponseMCPCallArgumentsDone,\n );\n\n case \"response.mcp_call.in_progress\":\n return realtimeServerEventResponseMCPCallInProgressDeserializer(\n item as RealtimeServerEventResponseMCPCallInProgress,\n );\n\n case \"response.mcp_call.completed\":\n return realtimeServerEventResponseMCPCallCompletedDeserializer(\n item as RealtimeServerEventResponseMCPCallCompleted,\n );\n\n case \"response.mcp_call.failed\":\n return realtimeServerEventResponseMCPCallFailedDeserializer(\n item as RealtimeServerEventResponseMCPCallFailed,\n );\n\n case \"session.subagent.started\":\n return voiceAgentServerEventSessionSubagentStartedDeserializer(\n item as VoiceAgentServerEventSessionSubagentStarted,\n );\n\n case \"session.subagent.completed\":\n return voiceAgentServerEventSessionSubagentCompletedDeserializer(\n item as VoiceAgentServerEventSessionSubagentCompleted,\n );\n\n case \"session.subagent.aborted\":\n return voiceAgentServerEventSessionSubagentAbortedDeserializer(\n item as VoiceAgentServerEventSessionSubagentAborted,\n );\n\n case \"warning\":\n return voiceAgentServerEventWarningDeserializer(item as VoiceAgentServerEventWarning);\n\n case \"session.avatar.connecting\":\n return voiceAgentServerEventSessionAvatarConnectingDeserializer(\n item as VoiceAgentServerEventSessionAvatarConnecting,\n );\n\n case \"rtc.call.sdp.created\":\n return voiceAgentServerEventRtcCallSdpCreatedDeserializer(\n item as VoiceAgentServerEventRtcCallSdpCreated,\n );\n\n case \"rtc.call.error\":\n return voiceAgentServerEventRtcCallErrorDeserializer(\n item as VoiceAgentServerEventRtcCallError,\n );\n\n case \"session.avatar.switch_to_speaking\":\n return voiceAgentServerEventSessionAvatarSwitchToSpeakingDeserializer(\n item as VoiceAgentServerEventSessionAvatarSwitchToSpeaking,\n );\n\n case \"session.avatar.switch_to_idle\":\n return voiceAgentServerEventSessionAvatarSwitchToIdleDeserializer(\n item as VoiceAgentServerEventSessionAvatarSwitchToIdle,\n );\n\n case \"response.audio_timestamp.delta\":\n return voiceAgentServerEventResponseAudioTimestampDeltaDeserializer(\n item as VoiceAgentServerEventResponseAudioTimestampDelta,\n );\n\n case \"response.audio_timestamp.done\":\n return voiceAgentServerEventResponseAudioTimestampDoneDeserializer(\n item as VoiceAgentServerEventResponseAudioTimestampDone,\n );\n\n case \"response.animation_blendshapes.delta\":\n return voiceAgentServerEventResponseAnimationBlendshapesDeltaDeserializer(\n item as VoiceAgentServerEventResponseAnimationBlendshapesDelta,\n );\n\n case \"response.animation_blendshapes.done\":\n return voiceAgentServerEventResponseAnimationBlendshapesDoneDeserializer(\n item as VoiceAgentServerEventResponseAnimationBlendshapesDone,\n );\n\n case \"response.animation_viseme.delta\":\n return voiceAgentServerEventResponseAnimationVisemeDeltaDeserializer(\n item as VoiceAgentServerEventResponseAnimationVisemeDelta,\n );\n\n case \"response.animation_viseme.done\":\n return voiceAgentServerEventResponseAnimationVisemeDoneDeserializer(\n item as VoiceAgentServerEventResponseAnimationVisemeDone,\n );\n\n case \"response.video.delta\":\n return voiceAgentServerEventResponseVideoDeltaDeserializer(\n item as VoiceAgentServerEventResponseVideoDelta,\n );\n\n default:\n return realtimeServerEventDeserializer(item);\n }\n}\n\n/** Type of RealtimeServerEventType */\nexport type RealtimeServerEventType =\n | \"conversation.created\"\n | \"conversation.item.created\"\n | \"conversation.item.deleted\"\n | \"conversation.item.input_audio_transcription.completed\"\n | \"conversation.item.input_audio_transcription.delta\"\n | \"conversation.item.input_audio_transcription.failed\"\n | \"conversation.item.retrieved\"\n | \"conversation.item.truncated\"\n | \"error\"\n | \"input_audio_buffer.cleared\"\n | \"input_audio_buffer.committed\"\n | \"input_audio_buffer.dtmf_event_received\"\n | \"input_audio_buffer.speech_started\"\n | \"input_audio_buffer.speech_stopped\"\n | \"rate_limits.updated\"\n | \"response.output_audio.delta\"\n | \"response.output_audio.done\"\n | \"response.output_audio_transcript.delta\"\n | \"response.output_audio_transcript.done\"\n | \"response.content_part.added\"\n | \"response.content_part.done\"\n | \"response.created\"\n | \"response.done\"\n | \"response.function_call_arguments.delta\"\n | \"response.function_call_arguments.done\"\n | \"response.output_item.added\"\n | \"response.output_item.done\"\n | \"response.output_text.delta\"\n | \"response.output_text.done\"\n | \"session.created\"\n | \"session.updated\"\n | \"output_audio_buffer.started\"\n | \"output_audio_buffer.stopped\"\n | \"output_audio_buffer.cleared\"\n | \"conversation.item.added\"\n | \"conversation.item.done\"\n | \"input_audio_buffer.timeout_triggered\"\n | \"conversation.item.input_audio_transcription.segment\"\n | \"mcp_list_tools.in_progress\"\n | \"mcp_list_tools.completed\"\n | \"mcp_list_tools.failed\"\n | \"response.mcp_call_arguments.delta\"\n | \"response.mcp_call_arguments.done\"\n | \"response.mcp_call.in_progress\"\n | \"response.mcp_call.completed\"\n | \"response.mcp_call.failed\"\n | \"warning\"\n | \"session.subagent.started\"\n | \"session.subagent.completed\"\n | \"session.subagent.aborted\"\n | \"session.avatar.connecting\"\n | \"session.avatar.switch_to_speaking\"\n | \"session.avatar.switch_to_idle\"\n | \"rtc.call.sdp.created\"\n | \"rtc.call.error\"\n | \"response.audio_timestamp.delta\"\n | \"response.audio_timestamp.done\"\n | \"response.animation_blendshapes.delta\"\n | \"response.animation_blendshapes.done\"\n | \"response.animation_viseme.delta\"\n | \"response.animation_viseme.done\"\n | \"response.video.delta\";\n\n/**\n * Returned when a conversation item is created. There are several scenarios that produce this event:\n * - The server is generating a Response, which if successful will produce\n * either one or two Items, which will be of type `message`\n * (role `assistant`) or type `function_call`.\n * - The input audio buffer has been committed, either by the client or the\n * server (in `server_vad` mode). The server will take the content of the\n * input audio buffer and add it to a new user message Item.\n * - The client has sent a `conversation.item.create` event to add a new Item\n * to the Conversation.\n */\nexport interface RealtimeServerEventConversationItemCreated extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.created`. */\n type: \"conversation.item.created\";\n /** The identifier of the conversation item immediately preceding the created item. */\n previous_item_id?: string;\n /** The conversation item created by the service. */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventConversationItemCreatedSerializer(\n item: RealtimeServerEventConversationItemCreated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemCreatedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemCreated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Returned when an item in the conversation is deleted by the client with a\n * `conversation.item.delete` event. This event is used to synchronize the\n * server's understanding of the conversation history with the client's view.\n */\nexport interface RealtimeServerEventConversationItemDeleted extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.deleted`. */\n type: \"conversation.item.deleted\";\n /** The ID of the item that was deleted. */\n item_id: string;\n}\n\nexport function realtimeServerEventConversationItemDeletedSerializer(\n item: RealtimeServerEventConversationItemDeleted,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], item_id: item[\"item_id\"] };\n}\n\nexport function realtimeServerEventConversationItemDeletedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemDeleted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/**\n * This event is the output of audio transcription for user audio written to the\n * user audio buffer. Transcription begins when the input audio buffer is\n * committed by the client or server (when VAD is enabled). Transcription runs\n * asynchronously with Response creation, so this event may come before or after\n * the Response events.\n * Realtime API models accept audio natively, and thus input transcription is a\n * separate process run on a separate ASR (Automatic Speech Recognition) model.\n * The transcript may diverge somewhat from the model's interpretation, and\n * should be treated as a rough guide.\n */\nexport interface RealtimeServerEventConversationItemInputAudioTranscriptionCompleted extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /**\n * The event type, must be\n * `conversation.item.input_audio_transcription.completed`.\n */\n type: \"conversation.item.input_audio_transcription.completed\";\n /** The ID of the item containing the audio that is being transcribed. */\n item_id: string;\n /** The index of the content part containing the audio. */\n content_index: number;\n /** The transcribed text. */\n transcript: string;\n /** Token log probabilities for the completed input audio transcription, when available. */\n logprobs?: LogProbProperties[];\n /** Usage statistics for the transcription, this is billed according to the ASR model's pricing rather than the realtime model's pricing. */\n usage: TranscriptTextUsageTokens | TranscriptTextUsageDuration;\n /** Phrase-level transcription timing and confidence details. */\n phrases?: VoiceAgentTranscriptionPhrase[];\n /** The languages detected in the audio. Returned by `gpt-transcribe`. An empty array indicates that no language could be reliably detected. */\n languages?: TranscriptionLanguage[];\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionCompletedSerializer(\n item: RealtimeServerEventConversationItemInputAudioTranscriptionCompleted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n transcript: item[\"transcript\"],\n logprobs: !item[\"logprobs\"]\n ? item[\"logprobs\"]\n : logProbPropertiesArraySerializer(item[\"logprobs\"]),\n usage: _realtimeServerEventConversationItemInputAudioTranscriptionCompletedUsageSerializer(\n item[\"usage\"],\n ),\n phrases: !item[\"phrases\"]\n ? item[\"phrases\"]\n : voiceAgentTranscriptionPhraseArraySerializer(item[\"phrases\"]),\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : transcriptionLanguageArraySerializer(item[\"languages\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionCompletedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemInputAudioTranscriptionCompleted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n transcript: item[\"transcript\"],\n logprobs: !item[\"logprobs\"]\n ? item[\"logprobs\"]\n : logProbPropertiesArrayDeserializer(item[\"logprobs\"]),\n usage: _realtimeServerEventConversationItemInputAudioTranscriptionCompletedUsageDeserializer(\n item[\"usage\"],\n ),\n phrases: !item[\"phrases\"]\n ? item[\"phrases\"]\n : voiceAgentTranscriptionPhraseArrayDeserializer(item[\"phrases\"]),\n languages: !item[\"languages\"]\n ? item[\"languages\"]\n : transcriptionLanguageArrayDeserializer(item[\"languages\"]),\n };\n}\n\nexport function transcriptionLanguageArraySerializer(result: Array<TranscriptionLanguage>): any[] {\n return result.map((item) => {\n return transcriptionLanguageSerializer(item);\n });\n}\n\nexport function transcriptionLanguageArrayDeserializer(\n result: Array<TranscriptionLanguage>,\n): any[] {\n return result.map((item) => {\n return transcriptionLanguageDeserializer(item);\n });\n}\n\n/** A language detected in transcribed audio. */\nexport interface TranscriptionLanguage {\n /** The code of a language detected in the audio. */\n code: string;\n}\n\nexport function transcriptionLanguageSerializer(item: TranscriptionLanguage): any {\n return { code: item[\"code\"] };\n}\n\nexport function transcriptionLanguageDeserializer(item: any): TranscriptionLanguage {\n return {\n code: item[\"code\"],\n };\n}\n\nexport function logProbPropertiesArraySerializer(result: Array<LogProbProperties>): any[] {\n return result.map((item) => {\n return logProbPropertiesSerializer(item);\n });\n}\n\nexport function logProbPropertiesArrayDeserializer(result: Array<LogProbProperties>): any[] {\n return result.map((item) => {\n return logProbPropertiesDeserializer(item);\n });\n}\n\n/** A log probability object. */\nexport interface LogProbProperties {\n /** The token that was used to generate the log probability. */\n token: string;\n /** The log probability of the token. */\n logprob: number;\n /** The bytes that were used to generate the log probability. */\n bytes: number[];\n}\n\nexport function logProbPropertiesSerializer(item: LogProbProperties): 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\nexport function logProbPropertiesDeserializer(item: any): LogProbProperties {\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/** Alias for _RealtimeServerEventConversationItemInputAudioTranscriptionCompletedUsage */\nexport type _RealtimeServerEventConversationItemInputAudioTranscriptionCompletedUsage =\n TranscriptTextUsageTokens | TranscriptTextUsageDuration;\n\nexport function _realtimeServerEventConversationItemInputAudioTranscriptionCompletedUsageSerializer(\n item: _RealtimeServerEventConversationItemInputAudioTranscriptionCompletedUsage,\n): any {\n return item;\n}\n\nexport function _realtimeServerEventConversationItemInputAudioTranscriptionCompletedUsageDeserializer(\n item: any,\n): _RealtimeServerEventConversationItemInputAudioTranscriptionCompletedUsage {\n return item;\n}\n\n/** Usage statistics for models billed by token usage. */\nexport interface TranscriptTextUsageTokens extends CreateTranscriptionResponseJsonUsage {\n /** The type of the usage object. Always `tokens` for this variant. */\n type: \"tokens\";\n /** Number of input tokens billed for this request. */\n input_tokens: number;\n /** Details about the input tokens billed for this request. */\n input_token_details?: TranscriptTextUsageTokensInputTokenDetails;\n /** Number of output tokens generated. */\n output_tokens: number;\n /** Total number of tokens used (input + output). */\n total_tokens: number;\n}\n\nexport function transcriptTextUsageTokensSerializer(item: TranscriptTextUsageTokens): any {\n return {\n type: item[\"type\"],\n input_tokens: item[\"input_tokens\"],\n input_token_details: !item[\"input_token_details\"]\n ? item[\"input_token_details\"]\n : transcriptTextUsageTokensInputTokenDetailsSerializer(item[\"input_token_details\"]),\n output_tokens: item[\"output_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\nexport function transcriptTextUsageTokensDeserializer(item: any): TranscriptTextUsageTokens {\n return {\n type: item[\"type\"],\n input_tokens: item[\"input_tokens\"],\n input_token_details: !item[\"input_token_details\"]\n ? item[\"input_token_details\"]\n : transcriptTextUsageTokensInputTokenDetailsDeserializer(item[\"input_token_details\"]),\n output_tokens: item[\"output_tokens\"],\n total_tokens: item[\"total_tokens\"],\n };\n}\n\n/** model interface TranscriptTextUsageTokensInputTokenDetails */\nexport interface TranscriptTextUsageTokensInputTokenDetails {\n /** The number of text input tokens processed by the transcription model. */\n text_tokens?: number;\n /** The number of audio input tokens processed by the transcription model. */\n audio_tokens?: number;\n}\n\nexport function transcriptTextUsageTokensInputTokenDetailsSerializer(\n item: TranscriptTextUsageTokensInputTokenDetails,\n): any {\n return { text_tokens: item[\"text_tokens\"], audio_tokens: item[\"audio_tokens\"] };\n}\n\nexport function transcriptTextUsageTokensInputTokenDetailsDeserializer(\n item: any,\n): TranscriptTextUsageTokensInputTokenDetails {\n return {\n text_tokens: item[\"text_tokens\"],\n audio_tokens: item[\"audio_tokens\"],\n };\n}\n\n/** Usage statistics for models billed by audio input duration. */\nexport interface TranscriptTextUsageDuration extends CreateTranscriptionResponseJsonUsage {\n /** The type of the usage object. Always `duration` for this variant. */\n type: \"duration\";\n /** Duration of the input audio in seconds. */\n seconds: number;\n}\n\nexport function transcriptTextUsageDurationSerializer(item: TranscriptTextUsageDuration): any {\n return { type: item[\"type\"], seconds: item[\"seconds\"] };\n}\n\nexport function transcriptTextUsageDurationDeserializer(item: any): TranscriptTextUsageDuration {\n return {\n type: item[\"type\"],\n seconds: item[\"seconds\"],\n };\n}\n\nexport function voiceAgentTranscriptionPhraseArraySerializer(\n result: Array<VoiceAgentTranscriptionPhrase>,\n): any[] {\n return result.map((item) => {\n return voiceAgentTranscriptionPhraseSerializer(item);\n });\n}\n\nexport function voiceAgentTranscriptionPhraseArrayDeserializer(\n result: Array<VoiceAgentTranscriptionPhrase>,\n): any[] {\n return result.map((item) => {\n return voiceAgentTranscriptionPhraseDeserializer(item);\n });\n}\n\n/** A transcribed phrase with timing information. */\nexport interface VoiceAgentTranscriptionPhrase {\n /** The phrase offset from the beginning of the audio, in milliseconds. */\n offset_milliseconds: number;\n /** The phrase duration in milliseconds. */\n duration_milliseconds: number;\n /** The transcribed phrase text. */\n text: string;\n /** Word-level timing details, when available. */\n words?: VoiceAgentTranscriptionWord[];\n /** The detected locale. */\n locale?: string;\n /** The transcription confidence score. */\n confidence?: number;\n}\n\nexport function voiceAgentTranscriptionPhraseSerializer(item: VoiceAgentTranscriptionPhrase): any {\n return {\n offset_milliseconds: item[\"offset_milliseconds\"],\n duration_milliseconds: item[\"duration_milliseconds\"],\n text: item[\"text\"],\n words: !item[\"words\"]\n ? item[\"words\"]\n : voiceAgentTranscriptionWordArraySerializer(item[\"words\"]),\n locale: item[\"locale\"],\n confidence: item[\"confidence\"],\n };\n}\n\nexport function voiceAgentTranscriptionPhraseDeserializer(\n item: any,\n): VoiceAgentTranscriptionPhrase {\n return {\n offset_milliseconds: item[\"offset_milliseconds\"],\n duration_milliseconds: item[\"duration_milliseconds\"],\n text: item[\"text\"],\n words: !item[\"words\"]\n ? item[\"words\"]\n : voiceAgentTranscriptionWordArrayDeserializer(item[\"words\"]),\n locale: item[\"locale\"],\n confidence: item[\"confidence\"],\n };\n}\n\nexport function voiceAgentTranscriptionWordArraySerializer(\n result: Array<VoiceAgentTranscriptionWord>,\n): any[] {\n return result.map((item) => {\n return voiceAgentTranscriptionWordSerializer(item);\n });\n}\n\nexport function voiceAgentTranscriptionWordArrayDeserializer(\n result: Array<VoiceAgentTranscriptionWord>,\n): any[] {\n return result.map((item) => {\n return voiceAgentTranscriptionWordDeserializer(item);\n });\n}\n\n/** A time-stamped word in an input-audio transcription. */\nexport interface VoiceAgentTranscriptionWord {\n /** The transcribed word text. */\n text: string;\n /** The word offset from the beginning of the audio, in milliseconds. */\n offset_milliseconds: number;\n /** The word duration in milliseconds. */\n duration_milliseconds: number;\n}\n\nexport function voiceAgentTranscriptionWordSerializer(item: VoiceAgentTranscriptionWord): any {\n return {\n text: item[\"text\"],\n offset_milliseconds: item[\"offset_milliseconds\"],\n duration_milliseconds: item[\"duration_milliseconds\"],\n };\n}\n\nexport function voiceAgentTranscriptionWordDeserializer(item: any): VoiceAgentTranscriptionWord {\n return {\n text: item[\"text\"],\n offset_milliseconds: item[\"offset_milliseconds\"],\n duration_milliseconds: item[\"duration_milliseconds\"],\n };\n}\n\n/** Returned when the text value of an input audio transcription content part is updated with incremental transcription results. */\nexport interface RealtimeServerEventConversationItemInputAudioTranscriptionDelta extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.input_audio_transcription.delta`. */\n type: \"conversation.item.input_audio_transcription.delta\";\n /** The ID of the item containing the audio that is being transcribed. */\n item_id: string;\n /** The index of the content part in the item's content array. */\n content_index?: number;\n /** The text delta. */\n delta?: string;\n /** Token log probabilities for this incremental transcription result, when available. */\n logprobs?: LogProbProperties[];\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionDeltaSerializer(\n item: RealtimeServerEventConversationItemInputAudioTranscriptionDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n delta: item[\"delta\"],\n logprobs: !item[\"logprobs\"]\n ? item[\"logprobs\"]\n : logProbPropertiesArraySerializer(item[\"logprobs\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionDeltaDeserializer(\n item: any,\n): RealtimeServerEventConversationItemInputAudioTranscriptionDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n delta: item[\"delta\"],\n logprobs: !item[\"logprobs\"]\n ? item[\"logprobs\"]\n : logProbPropertiesArrayDeserializer(item[\"logprobs\"]),\n };\n}\n\n/**\n * Returned when input audio transcription is configured, and a transcription\n * request for a user message failed. These events are separate from other\n * `error` events so that the client can identify the related Item.\n */\nexport interface RealtimeServerEventConversationItemInputAudioTranscriptionFailed extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /**\n * The event type, must be\n * `conversation.item.input_audio_transcription.failed`.\n */\n type: \"conversation.item.input_audio_transcription.failed\";\n /** The ID of the user message item. */\n item_id: string;\n /** The index of the content part containing the audio. */\n content_index: number;\n /** Details of the transcription error. */\n error: RealtimeServerEventConversationItemInputAudioTranscriptionFailedError;\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionFailedSerializer(\n item: RealtimeServerEventConversationItemInputAudioTranscriptionFailed,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n error: realtimeServerEventConversationItemInputAudioTranscriptionFailedErrorSerializer(\n item[\"error\"],\n ),\n };\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionFailedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemInputAudioTranscriptionFailed {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n error: realtimeServerEventConversationItemInputAudioTranscriptionFailedErrorDeserializer(\n item[\"error\"],\n ),\n };\n}\n\n/** model interface RealtimeServerEventConversationItemInputAudioTranscriptionFailedError */\nexport interface RealtimeServerEventConversationItemInputAudioTranscriptionFailedError {\n /** The category of error that caused input audio transcription to fail. */\n type?: string;\n /** A machine-readable code identifying the input audio transcription failure. */\n code?: string;\n /** A description of why input audio transcription failed. */\n message?: string;\n /** The request parameter associated with the transcription failure, when applicable. */\n param?: string;\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionFailedErrorSerializer(\n item: RealtimeServerEventConversationItemInputAudioTranscriptionFailedError,\n): any {\n return { type: item[\"type\"], code: item[\"code\"], message: item[\"message\"], param: item[\"param\"] };\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionFailedErrorDeserializer(\n item: any,\n): RealtimeServerEventConversationItemInputAudioTranscriptionFailedError {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n message: item[\"message\"],\n param: item[\"param\"],\n };\n}\n\n/** Returned when a conversation item is retrieved with `conversation.item.retrieve`. This is provided as a way to fetch the server's representation of an item, for example to get access to the post-processed audio data after noise cancellation and VAD. It includes the full content of the Item, including audio data. */\nexport interface RealtimeServerEventConversationItemRetrieved extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.retrieved`. */\n type: \"conversation.item.retrieved\";\n /**\n * The service's representation of the requested conversation item, including available audio\n * data.\n */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventConversationItemRetrievedSerializer(\n item: RealtimeServerEventConversationItemRetrieved,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemRetrievedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemRetrieved {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Returned when an earlier assistant audio message item is truncated by the\n * client with a `conversation.item.truncate` event. This event is used to\n * synchronize the server's understanding of the audio with the client's playback.\n * This action will truncate the audio and remove the server-side text transcript\n * to ensure there is no text in the context that hasn't been heard by the user.\n */\nexport interface RealtimeServerEventConversationItemTruncated extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.truncated`. */\n type: \"conversation.item.truncated\";\n /** The ID of the assistant message item that was truncated. */\n item_id: string;\n /** The index of the content part that was truncated. */\n content_index: number;\n /** The duration up to which the audio was truncated, in milliseconds. */\n audio_end_ms: number;\n /** The assistant message after truncation, when the service returns the updated item. */\n item?: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventConversationItemTruncatedSerializer(\n item: RealtimeServerEventConversationItemTruncated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n audio_end_ms: item[\"audio_end_ms\"],\n item: !item[\"item\"] ? item[\"item\"] : realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemTruncatedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemTruncated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n audio_end_ms: item[\"audio_end_ms\"],\n item: !item[\"item\"] ? item[\"item\"] : realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Returned when the input audio buffer is cleared by the client with a\n * `input_audio_buffer.clear` event.\n */\nexport interface RealtimeServerEventInputAudioBufferCleared extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `input_audio_buffer.cleared`. */\n type: \"input_audio_buffer.cleared\";\n}\n\nexport function realtimeServerEventInputAudioBufferClearedSerializer(\n item: RealtimeServerEventInputAudioBufferCleared,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"] };\n}\n\nexport function realtimeServerEventInputAudioBufferClearedDeserializer(\n item: any,\n): RealtimeServerEventInputAudioBufferCleared {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n };\n}\n\n/**\n * Returned when an input audio buffer is committed, either by the client or\n * automatically in server VAD mode. The `item_id` property is the ID of the user\n * message item that will be created, thus a `conversation.item.created` event\n * will also be sent to the client.\n */\nexport interface RealtimeServerEventInputAudioBufferCommitted extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `input_audio_buffer.committed`. */\n type: \"input_audio_buffer.committed\";\n /**\n * The identifier of the conversation item preceding the user message created from the committed\n * audio.\n */\n previous_item_id?: string;\n /** The ID of the user message item that will be created. */\n item_id: string;\n}\n\nexport function realtimeServerEventInputAudioBufferCommittedSerializer(\n item: RealtimeServerEventInputAudioBufferCommitted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventInputAudioBufferCommittedDeserializer(\n item: any,\n): RealtimeServerEventInputAudioBufferCommitted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/**\n * Sent by the server when in `server_vad` mode to indicate that speech has been\n * detected in the audio buffer. This can happen any time audio is added to the\n * buffer (unless speech is already detected). The client may want to use this\n * event to interrupt audio playback or provide visual feedback to the user.\n * The client should expect to receive a `input_audio_buffer.speech_stopped` event\n * when speech stops. The `item_id` property is the ID of the user message item\n * that will be created when speech stops and will also be included in the\n * `input_audio_buffer.speech_stopped` event (unless the client manually commits\n * the audio buffer during VAD activation).\n */\nexport interface RealtimeServerEventInputAudioBufferSpeechStarted extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `input_audio_buffer.speech_started`. */\n type: \"input_audio_buffer.speech_started\";\n /**\n * Milliseconds from the start of all audio written to the buffer during the\n * session when speech was first detected. This will correspond to the\n * beginning of audio sent to the model, and thus includes the\n * `prefix_padding_ms` configured in the Session.\n */\n audio_start_ms: number;\n /** The ID of the user message item that will be created when speech stops. */\n item_id: string;\n}\n\nexport function realtimeServerEventInputAudioBufferSpeechStartedSerializer(\n item: RealtimeServerEventInputAudioBufferSpeechStarted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio_start_ms: item[\"audio_start_ms\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventInputAudioBufferSpeechStartedDeserializer(\n item: any,\n): RealtimeServerEventInputAudioBufferSpeechStarted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio_start_ms: item[\"audio_start_ms\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/**\n * Returned in `server_vad` mode when the server detects the end of speech in\n * the audio buffer. The server will also send an `conversation.item.created`\n * event with the user message item that is created from the audio buffer.\n */\nexport interface RealtimeServerEventInputAudioBufferSpeechStopped extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `input_audio_buffer.speech_stopped`. */\n type: \"input_audio_buffer.speech_stopped\";\n /**\n * Milliseconds since the session started when speech stopped. This will\n * correspond to the end of audio sent to the model, and thus includes the\n * `min_silence_duration_ms` configured in the Session.\n */\n audio_end_ms: number;\n /** The ID of the user message item that will be created. */\n item_id: string;\n}\n\nexport function realtimeServerEventInputAudioBufferSpeechStoppedSerializer(\n item: RealtimeServerEventInputAudioBufferSpeechStopped,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio_end_ms: item[\"audio_end_ms\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventInputAudioBufferSpeechStoppedDeserializer(\n item: any,\n): RealtimeServerEventInputAudioBufferSpeechStopped {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio_end_ms: item[\"audio_end_ms\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/**\n * Emitted at the beginning of a Response to indicate the updated rate limits.\n * When a Response is created some tokens will be \"reserved\" for the output\n * tokens, the rate limits shown here reflect that reservation, which is then\n * adjusted accordingly once the Response is completed.\n */\nexport interface RealtimeServerEventRateLimitsUpdated extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `rate_limits.updated`. */\n type: \"rate_limits.updated\";\n /** List of rate limit information. */\n rate_limits: RealtimeServerEventRateLimitsUpdatedRateLimits[];\n}\n\nexport function realtimeServerEventRateLimitsUpdatedSerializer(\n item: RealtimeServerEventRateLimitsUpdated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n rate_limits: realtimeServerEventRateLimitsUpdatedRateLimitsArraySerializer(item[\"rate_limits\"]),\n };\n}\n\nexport function realtimeServerEventRateLimitsUpdatedDeserializer(\n item: any,\n): RealtimeServerEventRateLimitsUpdated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n rate_limits: realtimeServerEventRateLimitsUpdatedRateLimitsArrayDeserializer(\n item[\"rate_limits\"],\n ),\n };\n}\n\nexport function realtimeServerEventRateLimitsUpdatedRateLimitsArraySerializer(\n result: Array<RealtimeServerEventRateLimitsUpdatedRateLimits>,\n): any[] {\n return result.map((item) => {\n return realtimeServerEventRateLimitsUpdatedRateLimitsSerializer(item);\n });\n}\n\nexport function realtimeServerEventRateLimitsUpdatedRateLimitsArrayDeserializer(\n result: Array<RealtimeServerEventRateLimitsUpdatedRateLimits>,\n): any[] {\n return result.map((item) => {\n return realtimeServerEventRateLimitsUpdatedRateLimitsDeserializer(item);\n });\n}\n\n/** model interface RealtimeServerEventRateLimitsUpdatedRateLimits */\nexport interface RealtimeServerEventRateLimitsUpdatedRateLimits {\n /** Whether this rate limit applies to requests or tokens. */\n name?: \"requests\" | \"tokens\";\n /** The maximum number of requests or tokens allowed in the rate limit window. */\n limit?: number;\n /** The number of requests or tokens still available in the current rate limit window. */\n remaining?: number;\n /** The number of seconds remaining until this rate limit resets. */\n reset_seconds?: number;\n}\n\nexport function realtimeServerEventRateLimitsUpdatedRateLimitsSerializer(\n item: RealtimeServerEventRateLimitsUpdatedRateLimits,\n): any {\n return {\n name: item[\"name\"],\n limit: item[\"limit\"],\n remaining: item[\"remaining\"],\n reset_seconds: item[\"reset_seconds\"],\n };\n}\n\nexport function realtimeServerEventRateLimitsUpdatedRateLimitsDeserializer(\n item: any,\n): RealtimeServerEventRateLimitsUpdatedRateLimits {\n return {\n name: item[\"name\"],\n limit: item[\"limit\"],\n remaining: item[\"remaining\"],\n reset_seconds: item[\"reset_seconds\"],\n };\n}\n\n/** Returned when the model-generated audio is updated. */\nexport interface RealtimeServerEventResponseAudioDelta extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_audio.delta`. */\n type: \"response.output_audio.delta\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** Base64-encoded audio data delta. */\n delta: Uint8Array;\n}\n\nexport function realtimeServerEventResponseAudioDeltaSerializer(\n item: RealtimeServerEventResponseAudioDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n delta: uint8ArrayToString(item[\"delta\"], \"base64\"),\n };\n}\n\nexport function realtimeServerEventResponseAudioDeltaDeserializer(\n item: any,\n): RealtimeServerEventResponseAudioDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n delta:\n typeof item[\"delta\"] === \"string\"\n ? stringToUint8Array(item[\"delta\"], \"base64\")\n : item[\"delta\"],\n };\n}\n\n/**\n * Returned when the model-generated audio is done. Also emitted when a Response\n * is interrupted, incomplete, or cancelled.\n */\nexport interface RealtimeServerEventResponseAudioDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_audio.done`. */\n type: \"response.output_audio.done\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n}\n\nexport function realtimeServerEventResponseAudioDoneSerializer(\n item: RealtimeServerEventResponseAudioDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n };\n}\n\nexport function realtimeServerEventResponseAudioDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseAudioDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n };\n}\n\n/** Returned when the model-generated transcription of audio output is updated. */\nexport interface RealtimeServerEventResponseAudioTranscriptDelta extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_audio_transcript.delta`. */\n type: \"response.output_audio_transcript.delta\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The transcript delta. */\n delta: string;\n}\n\nexport function realtimeServerEventResponseAudioTranscriptDeltaSerializer(\n item: RealtimeServerEventResponseAudioTranscriptDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n delta: item[\"delta\"],\n };\n}\n\nexport function realtimeServerEventResponseAudioTranscriptDeltaDeserializer(\n item: any,\n): RealtimeServerEventResponseAudioTranscriptDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n delta: item[\"delta\"],\n };\n}\n\n/**\n * Returned when the model-generated transcription of audio output is done\n * streaming. Also emitted when a Response is interrupted, incomplete, or\n * cancelled.\n */\nexport interface RealtimeServerEventResponseAudioTranscriptDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_audio_transcript.done`. */\n type: \"response.output_audio_transcript.done\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The final transcript of the audio. */\n transcript: string;\n}\n\nexport function realtimeServerEventResponseAudioTranscriptDoneSerializer(\n item: RealtimeServerEventResponseAudioTranscriptDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n transcript: item[\"transcript\"],\n };\n}\n\nexport function realtimeServerEventResponseAudioTranscriptDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseAudioTranscriptDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n transcript: item[\"transcript\"],\n };\n}\n\n/**\n * Returned when a new content part is added to an assistant message item during\n * response generation.\n */\nexport interface RealtimeServerEventResponseContentPartAdded extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.content_part.added`. */\n type: \"response.content_part.added\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item to which the content part was added. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The content part that was added. */\n part: RealtimeServerEventResponseContentPartAddedPart;\n}\n\nexport function realtimeServerEventResponseContentPartAddedSerializer(\n item: RealtimeServerEventResponseContentPartAdded,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n part: realtimeServerEventResponseContentPartAddedPartSerializer(item[\"part\"]),\n };\n}\n\nexport function realtimeServerEventResponseContentPartAddedDeserializer(\n item: any,\n): RealtimeServerEventResponseContentPartAdded {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n part: realtimeServerEventResponseContentPartAddedPartDeserializer(item[\"part\"]),\n };\n}\n\n/** model interface RealtimeServerEventResponseContentPartAddedPart */\nexport interface RealtimeServerEventResponseContentPartAddedPart {\n /** Whether the added content part contains audio or text. */\n type?: \"audio\" | \"text\";\n /** Text included when the added content part has type `text`. */\n text?: string;\n /** Base64-encoded audio included when the added content part has type `audio`. */\n audio?: string;\n /** The transcript associated with an added audio content part. */\n transcript?: string;\n}\n\nexport function realtimeServerEventResponseContentPartAddedPartSerializer(\n item: RealtimeServerEventResponseContentPartAddedPart,\n): any {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n transcript: item[\"transcript\"],\n };\n}\n\nexport function realtimeServerEventResponseContentPartAddedPartDeserializer(\n item: any,\n): RealtimeServerEventResponseContentPartAddedPart {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n transcript: item[\"transcript\"],\n };\n}\n\n/**\n * Returned when a content part is done streaming in an assistant message item.\n * Also emitted when a Response is interrupted, incomplete, or cancelled.\n */\nexport interface RealtimeServerEventResponseContentPartDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.content_part.done`. */\n type: \"response.content_part.done\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The content part that is done. */\n part: RealtimeServerEventResponseContentPartDonePart;\n}\n\nexport function realtimeServerEventResponseContentPartDoneSerializer(\n item: RealtimeServerEventResponseContentPartDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n part: realtimeServerEventResponseContentPartDonePartSerializer(item[\"part\"]),\n };\n}\n\nexport function realtimeServerEventResponseContentPartDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseContentPartDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n part: realtimeServerEventResponseContentPartDonePartDeserializer(item[\"part\"]),\n };\n}\n\n/** model interface RealtimeServerEventResponseContentPartDonePart */\nexport interface RealtimeServerEventResponseContentPartDonePart {\n /** Whether the finalized content part contains audio or text. */\n type?: \"audio\" | \"text\";\n /** Text included when the finalized content part has type `text`. */\n text?: string;\n /** Base64-encoded audio included when the finalized content part has type `audio`. */\n audio?: string;\n /** The transcript associated with a finalized audio content part. */\n transcript?: string;\n /** The audio format, when this is an audio content part. */\n format?: RealtimeAudioFormatsUnion;\n}\n\nexport function realtimeServerEventResponseContentPartDonePartSerializer(\n item: RealtimeServerEventResponseContentPartDonePart,\n): any {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n transcript: item[\"transcript\"],\n format: !item[\"format\"] ? item[\"format\"] : realtimeAudioFormatsUnionSerializer(item[\"format\"]),\n };\n}\n\nexport function realtimeServerEventResponseContentPartDonePartDeserializer(\n item: any,\n): RealtimeServerEventResponseContentPartDonePart {\n return {\n type: item[\"type\"],\n text: item[\"text\"],\n audio: item[\"audio\"],\n transcript: item[\"transcript\"],\n format: !item[\"format\"]\n ? item[\"format\"]\n : realtimeAudioFormatsUnionDeserializer(item[\"format\"]),\n };\n}\n\n/**\n * Returned when a new Response is created. The first event of response creation,\n * where the response is in an initial state of `in_progress`.\n */\nexport interface RealtimeServerEventResponseCreated extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.created`. */\n type: \"response.created\";\n /** The newly created response in its initial `in_progress` state. */\n response: VoiceAgentRealtimeResponse;\n}\n\nexport function realtimeServerEventResponseCreatedSerializer(\n item: RealtimeServerEventResponseCreated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response: voiceAgentRealtimeResponseSerializer(item[\"response\"]),\n };\n}\n\nexport function realtimeServerEventResponseCreatedDeserializer(\n item: any,\n): RealtimeServerEventResponseCreated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response: voiceAgentRealtimeResponseDeserializer(item[\"response\"]),\n };\n}\n\n/** A live realtime response returned by the voice-agent service in both `response.created` and `response.done` events. */\nexport interface VoiceAgentRealtimeResponse extends VoiceAgentRealtimeResponseBase {\n /** The audio configuration used by the live response, including flat voice provider, locale, and format fields under `output`. */\n audio?: VoiceResponseAudio;\n /** The items produced by the live response. */\n output?: RealtimeConversationItemUnion[];\n}\n\nexport function voiceAgentRealtimeResponseSerializer(item: VoiceAgentRealtimeResponse): any {\n return {\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n status_details: !item[\"status_details\"]\n ? item[\"status_details\"]\n : realtimeResponseStatusDetailsSerializer(item[\"status_details\"]),\n metadata: !item[\"metadata\"] ? item[\"metadata\"] : metadataSerializer(item[\"metadata\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageSerializer(item[\"usage\"]),\n conversation_id: item[\"conversation_id\"],\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceResponseBaseMaxOutputTokensSerializer(item[\"max_output_tokens\"]),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceResponseAudioSerializer(item[\"audio\"]),\n output: !item[\"output\"]\n ? item[\"output\"]\n : realtimeConversationItemUnionArraySerializer(item[\"output\"]),\n };\n}\n\nexport function voiceAgentRealtimeResponseDeserializer(item: any): VoiceAgentRealtimeResponse {\n return {\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n status_details: !item[\"status_details\"]\n ? item[\"status_details\"]\n : realtimeResponseStatusDetailsDeserializer(item[\"status_details\"]),\n metadata: !item[\"metadata\"] ? item[\"metadata\"] : metadataDeserializer(item[\"metadata\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageDeserializer(item[\"usage\"]),\n conversation_id: item[\"conversation_id\"],\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceResponseBaseMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n audio: !item[\"audio\"] ? item[\"audio\"] : voiceResponseAudioDeserializer(item[\"audio\"]),\n output: !item[\"output\"]\n ? item[\"output\"]\n : realtimeConversationItemUnionArrayDeserializer(item[\"output\"]),\n };\n}\n\n/**\n * Returned when a Response is done streaming. Always emitted, no matter the\n * final state. The Response object included in the `response.done` event will\n * include all output Items in the Response but will omit the raw audio data.\n * Clients should check the `status` field of the Response to determine if it was successful\n * (`completed`) or if there was another outcome: `cancelled`, `failed`, or `incomplete`.\n * A response will contain all output items that were generated during the response, excluding\n * any audio content.\n */\nexport interface RealtimeServerEventResponseDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.done`. */\n type: \"response.done\";\n /** The response's final status and generated output items, excluding raw audio data. */\n response: VoiceAgentRealtimeResponse;\n}\n\nexport function realtimeServerEventResponseDoneSerializer(\n item: RealtimeServerEventResponseDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response: voiceAgentRealtimeResponseSerializer(item[\"response\"]),\n };\n}\n\nexport function realtimeServerEventResponseDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response: voiceAgentRealtimeResponseDeserializer(item[\"response\"]),\n };\n}\n\n/** Returned when the model-generated function call arguments are updated. */\nexport interface RealtimeServerEventResponseFunctionCallArgumentsDelta extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.function_call_arguments.delta`. */\n type: \"response.function_call_arguments.delta\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the function call item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The ID of the function call. */\n call_id: string;\n /** The arguments delta as a JSON string. */\n delta: string;\n}\n\nexport function realtimeServerEventResponseFunctionCallArgumentsDeltaSerializer(\n item: RealtimeServerEventResponseFunctionCallArgumentsDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n call_id: item[\"call_id\"],\n delta: item[\"delta\"],\n };\n}\n\nexport function realtimeServerEventResponseFunctionCallArgumentsDeltaDeserializer(\n item: any,\n): RealtimeServerEventResponseFunctionCallArgumentsDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n call_id: item[\"call_id\"],\n delta: item[\"delta\"],\n };\n}\n\n/**\n * Returned when the model-generated function call arguments are done streaming.\n * Also emitted when a Response is interrupted, incomplete, or cancelled.\n */\nexport interface RealtimeServerEventResponseFunctionCallArgumentsDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.function_call_arguments.done`. */\n type: \"response.function_call_arguments.done\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the function call item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The ID of the function call. */\n call_id: string;\n /** The name of the function that was called. */\n name: string;\n /** The final arguments as a JSON string. */\n arguments: string;\n}\n\nexport function realtimeServerEventResponseFunctionCallArgumentsDoneSerializer(\n item: RealtimeServerEventResponseFunctionCallArgumentsDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n call_id: item[\"call_id\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\nexport function realtimeServerEventResponseFunctionCallArgumentsDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseFunctionCallArgumentsDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n call_id: item[\"call_id\"],\n name: item[\"name\"],\n arguments: item[\"arguments\"],\n };\n}\n\n/** Returned when a new Item is created during Response generation. */\nexport interface RealtimeServerEventResponseOutputItemAdded extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_item.added`. */\n type: \"response.output_item.added\";\n /** The ID of the Response to which the item belongs. */\n response_id: string;\n /** The index of the output item in the Response. */\n output_index: number;\n /** The output item added to the response as generation begins for that item. */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventResponseOutputItemAddedSerializer(\n item: RealtimeServerEventResponseOutputItemAdded,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n output_index: item[\"output_index\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventResponseOutputItemAddedDeserializer(\n item: any,\n): RealtimeServerEventResponseOutputItemAdded {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n output_index: item[\"output_index\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Returned when an Item is done streaming. Also emitted when a Response is\n * interrupted, incomplete, or cancelled.\n */\nexport interface RealtimeServerEventResponseOutputItemDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_item.done`. */\n type: \"response.output_item.done\";\n /** The ID of the Response to which the item belongs. */\n response_id: string;\n /** The index of the output item in the Response. */\n output_index: number;\n /**\n * The output item after streaming ends, including when its response is interrupted or incomplete.\n */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventResponseOutputItemDoneSerializer(\n item: RealtimeServerEventResponseOutputItemDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n output_index: item[\"output_index\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventResponseOutputItemDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseOutputItemDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n output_index: item[\"output_index\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/** Returned when the text value of an \"output_text\" content part is updated. */\nexport interface RealtimeServerEventResponseTextDelta extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_text.delta`. */\n type: \"response.output_text.delta\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The text delta. */\n delta: string;\n}\n\nexport function realtimeServerEventResponseTextDeltaSerializer(\n item: RealtimeServerEventResponseTextDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n delta: item[\"delta\"],\n };\n}\n\nexport function realtimeServerEventResponseTextDeltaDeserializer(\n item: any,\n): RealtimeServerEventResponseTextDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n delta: item[\"delta\"],\n };\n}\n\n/**\n * Returned when the text value of an \"output_text\" content part is done streaming. Also\n * emitted when a Response is interrupted, incomplete, or cancelled.\n */\nexport interface RealtimeServerEventResponseTextDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.output_text.done`. */\n type: \"response.output_text.done\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The final text content. */\n text: string;\n}\n\nexport function realtimeServerEventResponseTextDoneSerializer(\n item: RealtimeServerEventResponseTextDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n text: item[\"text\"],\n };\n}\n\nexport function realtimeServerEventResponseTextDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseTextDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n text: item[\"text\"],\n };\n}\n\n/**\n * Returned when a Session is created. Emitted automatically when a new\n * connection is established as the first server event. This event will contain\n * the default Session configuration.\n */\nexport interface RealtimeServerEventSessionCreated extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `session.created`. */\n type: \"session.created\";\n /** The session configuration. */\n session: VoiceAgentSessionResponse;\n /** The session-scoped conversation id. When present, responses attached to the session conversation use the same value in `response.created` and `response.done`. */\n conversation_id?: string;\n}\n\nexport function realtimeServerEventSessionCreatedSerializer(\n item: RealtimeServerEventSessionCreated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n session: voiceAgentSessionResponseSerializer(item[\"session\"]),\n conversation_id: item[\"conversation_id\"],\n };\n}\n\nexport function realtimeServerEventSessionCreatedDeserializer(\n item: any,\n): RealtimeServerEventSessionCreated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n session: voiceAgentSessionResponseDeserializer(item[\"session\"]),\n conversation_id: item[\"conversation_id\"],\n };\n}\n\n/** The effective session configuration returned in voice-agent session lifecycle events. */\nexport type VoiceAgentSessionResponse = VoiceAgentSessionResponseConfig;\n\nexport function voiceAgentSessionResponseSerializer(item: VoiceAgentSessionResponse): any {\n return item;\n}\n\nexport function voiceAgentSessionResponseDeserializer(item: any): VoiceAgentSessionResponse {\n return item;\n}\n\n/**\n * Returned when a session is updated with a `session.update` event, unless\n * there is an error.\n */\nexport interface RealtimeServerEventSessionUpdated extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `session.updated`. */\n type: \"session.updated\";\n /** The session configuration. */\n session: VoiceAgentSessionResponse;\n}\n\nexport function realtimeServerEventSessionUpdatedSerializer(\n item: RealtimeServerEventSessionUpdated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n session: voiceAgentSessionResponseSerializer(item[\"session\"]),\n };\n}\n\nexport function realtimeServerEventSessionUpdatedDeserializer(\n item: any,\n): RealtimeServerEventSessionUpdated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n session: voiceAgentSessionResponseDeserializer(item[\"session\"]),\n };\n}\n\n/**\n * **WebRTC/SIP Only:** Emitted when the output audio buffer is cleared. This happens either in VAD\n * mode when the user has interrupted (`input_audio_buffer.speech_started`),\n * or when the client has emitted the `output_audio_buffer.clear` event to manually\n * cut off the current audio response.\n * [Learn more](/docs/guides/realtime-conversations#client-and-server-events-for-audio-in-webrtc).\n */\nexport interface RealtimeServerEventOutputAudioBufferCleared extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `output_audio_buffer.cleared`. */\n type: \"output_audio_buffer.cleared\";\n /** The unique ID of the response that produced the audio. */\n response_id: string;\n}\n\nexport function realtimeServerEventOutputAudioBufferClearedSerializer(\n item: RealtimeServerEventOutputAudioBufferCleared,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], response_id: item[\"response_id\"] };\n}\n\nexport function realtimeServerEventOutputAudioBufferClearedDeserializer(\n item: any,\n): RealtimeServerEventOutputAudioBufferCleared {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n };\n}\n\n/**\n * Sent by the server when an Item is added to the default Conversation. This can happen in several cases:\n * - When the client sends a `conversation.item.create` event.\n * - When the input audio buffer is committed. In this case the item will be a user message containing the audio from the buffer.\n * - When the model is generating a Response. In this case the `conversation.item.added` event will be sent when the model starts generating a specific Item, and thus it will not yet have any content (and `status` will be `in_progress`).\n * The event will include the full content of the Item (except when model is generating a Response) except for audio data, which can be retrieved separately with a `conversation.item.retrieve` event if necessary.\n */\nexport interface RealtimeServerEventConversationItemAdded extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.added`. */\n type: \"conversation.item.added\";\n /** The identifier of the conversation item immediately preceding the added item. */\n previous_item_id?: string;\n /** The added conversation item, which may still be in progress while a response is generated. */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventConversationItemAddedSerializer(\n item: RealtimeServerEventConversationItemAdded,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemAddedDeserializer(\n item: any,\n): RealtimeServerEventConversationItemAdded {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Returned when a conversation item is finalized.\n * The event will include the full content of the Item except for audio data, which can be retrieved separately with a `conversation.item.retrieve` event if needed.\n */\nexport interface RealtimeServerEventConversationItemDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.done`. */\n type: \"conversation.item.done\";\n /** The identifier of the conversation item immediately preceding the finalized item. */\n previous_item_id?: string;\n /** The finalized conversation item, excluding raw audio data. */\n item: RealtimeConversationItemUnion;\n}\n\nexport function realtimeServerEventConversationItemDoneSerializer(\n item: RealtimeServerEventConversationItemDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionSerializer(item[\"item\"]),\n };\n}\n\nexport function realtimeServerEventConversationItemDoneDeserializer(\n item: any,\n): RealtimeServerEventConversationItemDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n previous_item_id: item[\"previous_item_id\"],\n item: realtimeConversationItemUnionDeserializer(item[\"item\"]),\n };\n}\n\n/**\n * Returned when the Server VAD timeout is triggered for the input audio buffer. This is configured\n * with `idle_timeout_ms` in the `turn_detection` settings of the session, and it indicates that\n * there hasn't been any speech detected for the configured duration.\n * The `audio_start_ms` and `audio_end_ms` fields indicate the segment of audio after the last\n * model response up to the triggering time, as an offset from the beginning of audio written\n * to the input audio buffer. This means it demarcates the segment of audio that was silent and\n * the difference between the start and end values will roughly match the configured timeout.\n * The empty audio will be committed to the conversation as an `input_audio` item (there will be a\n * `input_audio_buffer.committed` event) and a model response will be generated. There may be speech\n * that didn't trigger VAD but is still detected by the model, so the model may respond with\n * something relevant to the conversation or a prompt to continue speaking.\n */\nexport interface RealtimeServerEventInputAudioBufferTimeoutTriggered extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `input_audio_buffer.timeout_triggered`. */\n type: \"input_audio_buffer.timeout_triggered\";\n /** Millisecond offset of audio written to the input audio buffer that was after the playback time of the last model response. */\n audio_start_ms: number;\n /** Millisecond offset of audio written to the input audio buffer at the time the timeout was triggered. */\n audio_end_ms: number;\n /** The ID of the item associated with this segment. */\n item_id: string;\n}\n\nexport function realtimeServerEventInputAudioBufferTimeoutTriggeredSerializer(\n item: RealtimeServerEventInputAudioBufferTimeoutTriggered,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio_start_ms: item[\"audio_start_ms\"],\n audio_end_ms: item[\"audio_end_ms\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventInputAudioBufferTimeoutTriggeredDeserializer(\n item: any,\n): RealtimeServerEventInputAudioBufferTimeoutTriggered {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n audio_start_ms: item[\"audio_start_ms\"],\n audio_end_ms: item[\"audio_end_ms\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** Returned when an input audio transcription segment is identified for an item. */\nexport interface RealtimeServerEventConversationItemInputAudioTranscriptionSegment extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `conversation.item.input_audio_transcription.segment`. */\n type: \"conversation.item.input_audio_transcription.segment\";\n /** The ID of the item containing the input audio content. */\n item_id: string;\n /** The index of the input audio content part within the item. */\n content_index: number;\n /** The text for this segment. */\n text: string;\n /** The segment identifier. */\n id: string;\n /** The detected speaker label for this segment. */\n speaker: string;\n /** Start time of the segment in seconds. */\n start: number;\n /** End time of the segment in seconds. */\n end: number;\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionSegmentSerializer(\n item: RealtimeServerEventConversationItemInputAudioTranscriptionSegment,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n text: item[\"text\"],\n id: item[\"id\"],\n speaker: item[\"speaker\"],\n start: item[\"start\"],\n end: item[\"end\"],\n };\n}\n\nexport function realtimeServerEventConversationItemInputAudioTranscriptionSegmentDeserializer(\n item: any,\n): RealtimeServerEventConversationItemInputAudioTranscriptionSegment {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n content_index: item[\"content_index\"],\n text: item[\"text\"],\n id: item[\"id\"],\n speaker: item[\"speaker\"],\n start: item[\"start\"],\n end: item[\"end\"],\n };\n}\n\n/** Returned when listing MCP tools is in progress for an item. */\nexport interface RealtimeServerEventMCPListToolsInProgress extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `mcp_list_tools.in_progress`. */\n type: \"mcp_list_tools.in_progress\";\n /** The ID of the MCP list tools item. */\n item_id: string;\n}\n\nexport function realtimeServerEventMCPListToolsInProgressSerializer(\n item: RealtimeServerEventMCPListToolsInProgress,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], item_id: item[\"item_id\"] };\n}\n\nexport function realtimeServerEventMCPListToolsInProgressDeserializer(\n item: any,\n): RealtimeServerEventMCPListToolsInProgress {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** Returned when listing MCP tools has completed for an item. */\nexport interface RealtimeServerEventMCPListToolsCompleted extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `mcp_list_tools.completed`. */\n type: \"mcp_list_tools.completed\";\n /** The ID of the MCP list tools item. */\n item_id: string;\n}\n\nexport function realtimeServerEventMCPListToolsCompletedSerializer(\n item: RealtimeServerEventMCPListToolsCompleted,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], item_id: item[\"item_id\"] };\n}\n\nexport function realtimeServerEventMCPListToolsCompletedDeserializer(\n item: any,\n): RealtimeServerEventMCPListToolsCompleted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** Returned when listing MCP tools has failed for an item. */\nexport interface RealtimeServerEventMCPListToolsFailed extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `mcp_list_tools.failed`. */\n type: \"mcp_list_tools.failed\";\n /** The ID of the MCP list tools item. */\n item_id: string;\n}\n\nexport function realtimeServerEventMCPListToolsFailedSerializer(\n item: RealtimeServerEventMCPListToolsFailed,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], item_id: item[\"item_id\"] };\n}\n\nexport function realtimeServerEventMCPListToolsFailedDeserializer(\n item: any,\n): RealtimeServerEventMCPListToolsFailed {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** Returned when MCP tool call arguments are updated during response generation. */\nexport interface RealtimeServerEventResponseMCPCallArgumentsDelta extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.mcp_call_arguments.delta`. */\n type: \"response.mcp_call_arguments.delta\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the MCP tool call item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The JSON-encoded arguments delta. */\n delta: string;\n /** Indicates, when present, that the arguments delta was obfuscated. */\n obfuscation?: string;\n}\n\nexport function realtimeServerEventResponseMCPCallArgumentsDeltaSerializer(\n item: RealtimeServerEventResponseMCPCallArgumentsDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n delta: item[\"delta\"],\n obfuscation: item[\"obfuscation\"],\n };\n}\n\nexport function realtimeServerEventResponseMCPCallArgumentsDeltaDeserializer(\n item: any,\n): RealtimeServerEventResponseMCPCallArgumentsDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n delta: item[\"delta\"],\n obfuscation: item[\"obfuscation\"],\n };\n}\n\n/** Returned when MCP tool call arguments are finalized during response generation. */\nexport interface RealtimeServerEventResponseMCPCallArgumentsDone extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.mcp_call_arguments.done`. */\n type: \"response.mcp_call_arguments.done\";\n /** The ID of the response. */\n response_id: string;\n /** The ID of the MCP tool call item. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The final JSON-encoded arguments string. */\n arguments: string;\n}\n\nexport function realtimeServerEventResponseMCPCallArgumentsDoneSerializer(\n item: RealtimeServerEventResponseMCPCallArgumentsDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n arguments: item[\"arguments\"],\n };\n}\n\nexport function realtimeServerEventResponseMCPCallArgumentsDoneDeserializer(\n item: any,\n): RealtimeServerEventResponseMCPCallArgumentsDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n arguments: item[\"arguments\"],\n };\n}\n\n/** Returned when an MCP tool call has started and is in progress. */\nexport interface RealtimeServerEventResponseMCPCallInProgress extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.mcp_call.in_progress`. */\n type: \"response.mcp_call.in_progress\";\n /** The index of the output item in the response. */\n output_index: number;\n /** The ID of the MCP tool call item. */\n item_id: string;\n}\n\nexport function realtimeServerEventResponseMCPCallInProgressSerializer(\n item: RealtimeServerEventResponseMCPCallInProgress,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventResponseMCPCallInProgressDeserializer(\n item: any,\n): RealtimeServerEventResponseMCPCallInProgress {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** Returned when an MCP tool call has completed successfully. */\nexport interface RealtimeServerEventResponseMCPCallCompleted extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.mcp_call.completed`. */\n type: \"response.mcp_call.completed\";\n /** The index of the output item in the response. */\n output_index: number;\n /** The ID of the MCP tool call item. */\n item_id: string;\n}\n\nexport function realtimeServerEventResponseMCPCallCompletedSerializer(\n item: RealtimeServerEventResponseMCPCallCompleted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventResponseMCPCallCompletedDeserializer(\n item: any,\n): RealtimeServerEventResponseMCPCallCompleted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** Returned when an MCP tool call has failed. */\nexport interface RealtimeServerEventResponseMCPCallFailed extends RealtimeServerEvent {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `response.mcp_call.failed`. */\n type: \"response.mcp_call.failed\";\n /** The index of the output item in the response. */\n output_index: number;\n /** The ID of the MCP tool call item. */\n item_id: string;\n}\n\nexport function realtimeServerEventResponseMCPCallFailedSerializer(\n item: RealtimeServerEventResponseMCPCallFailed,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n item_id: item[\"item_id\"],\n };\n}\n\nexport function realtimeServerEventResponseMCPCallFailedDeserializer(\n item: any,\n): RealtimeServerEventResponseMCPCallFailed {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n item_id: item[\"item_id\"],\n };\n}\n\n/** The `session.subagent.started` server event. */\nexport interface VoiceAgentServerEventSessionSubagentStarted extends RealtimeServerEvent {\n /** The event type. Always `session.subagent.started`. */\n type: \"session.subagent.started\";\n /** The server-generated event identifier. */\n event_id: string;\n /** The identifier of the subagent consultation. */\n consultation_id: string;\n /** The identifier of the function call that initiated the consultation. */\n call_id: string;\n /** The name of the consulted subagent. */\n subagent_name: string;\n}\n\nexport function voiceAgentServerEventSessionSubagentStartedSerializer(\n item: VoiceAgentServerEventSessionSubagentStarted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n consultation_id: item[\"consultation_id\"],\n call_id: item[\"call_id\"],\n subagent_name: item[\"subagent_name\"],\n };\n}\n\nexport function voiceAgentServerEventSessionSubagentStartedDeserializer(\n item: any,\n): VoiceAgentServerEventSessionSubagentStarted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n consultation_id: item[\"consultation_id\"],\n call_id: item[\"call_id\"],\n subagent_name: item[\"subagent_name\"],\n };\n}\n\n/** The `session.subagent.aborted` server event. */\nexport interface VoiceAgentServerEventSessionSubagentAborted extends RealtimeServerEvent {\n /** The event type. Always `session.subagent.aborted`. */\n type: \"session.subagent.aborted\";\n /** The server-generated event identifier. */\n event_id: string;\n /** The identifier of the subagent consultation. */\n consultation_id: string;\n /** The identifier of the function call that initiated the consultation. */\n call_id: string;\n /** The name of the consulted subagent. */\n subagent_name: string;\n /** The reason the consultation was aborted. */\n reason: VoiceAgentSubagentAbortReason;\n}\n\nexport function voiceAgentServerEventSessionSubagentAbortedSerializer(\n item: VoiceAgentServerEventSessionSubagentAborted,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n consultation_id: item[\"consultation_id\"],\n call_id: item[\"call_id\"],\n subagent_name: item[\"subagent_name\"],\n reason: item[\"reason\"],\n };\n}\n\nexport function voiceAgentServerEventSessionSubagentAbortedDeserializer(\n item: any,\n): VoiceAgentServerEventSessionSubagentAborted {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n consultation_id: item[\"consultation_id\"],\n call_id: item[\"call_id\"],\n subagent_name: item[\"subagent_name\"],\n reason: item[\"reason\"],\n };\n}\n\n/** The reason a subagent consultation was aborted. */\nexport type VoiceAgentSubagentAbortReason =\n \"unknown_target\" | \"timeout\" | \"cancelled\" | \"stopped_by_user\" | \"superseded\" | \"failed\";\n\n/** The `warning` server event. */\nexport interface VoiceAgentServerEventWarning extends RealtimeServerEvent {\n /** The event type. Always `warning`. */\n type: \"warning\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** Details of the non-fatal warning reported by the service. */\n warning: VoiceAgentServerEventWarningDetails;\n}\n\nexport function voiceAgentServerEventWarningSerializer(item: VoiceAgentServerEventWarning): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n warning: voiceAgentServerEventWarningDetailsSerializer(item[\"warning\"]),\n };\n}\n\nexport function voiceAgentServerEventWarningDeserializer(item: any): VoiceAgentServerEventWarning {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n warning: voiceAgentServerEventWarningDetailsDeserializer(item[\"warning\"]),\n };\n}\n\n/** Details of a non-fatal warning. */\nexport interface VoiceAgentServerEventWarningDetails {\n /** A human-readable description of the warning. */\n message: string;\n /** A machine-readable code identifying the warning. */\n code?: string;\n /** The parameter associated with the warning, when applicable. */\n param?: string;\n}\n\nexport function voiceAgentServerEventWarningDetailsSerializer(\n item: VoiceAgentServerEventWarningDetails,\n): any {\n return { message: item[\"message\"], code: item[\"code\"], param: item[\"param\"] };\n}\n\nexport function voiceAgentServerEventWarningDetailsDeserializer(\n item: any,\n): VoiceAgentServerEventWarningDetails {\n return {\n message: item[\"message\"],\n code: item[\"code\"],\n param: item[\"param\"],\n };\n}\n\n/** The `session.avatar.connecting` server event. */\nexport interface VoiceAgentServerEventSessionAvatarConnecting extends RealtimeServerEvent {\n /** The event type. Always `session.avatar.connecting`. */\n type: \"session.avatar.connecting\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The server's SDP answer for avatar media negotiation. */\n server_sdp: string;\n}\n\nexport function voiceAgentServerEventSessionAvatarConnectingSerializer(\n item: VoiceAgentServerEventSessionAvatarConnecting,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], server_sdp: item[\"server_sdp\"] };\n}\n\nexport function voiceAgentServerEventSessionAvatarConnectingDeserializer(\n item: any,\n): VoiceAgentServerEventSessionAvatarConnecting {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n server_sdp: item[\"server_sdp\"],\n };\n}\n\n/** The `rtc.call.sdp.created` server event: the SDP answer that completes WebRTC negotiation. */\nexport interface VoiceAgentServerEventRtcCallSdpCreated extends RealtimeServerEvent {\n /** The event type. Always `rtc.call.sdp.created`. */\n type: \"rtc.call.sdp.created\";\n /** The server-generated event identifier. */\n event_id: string;\n /** The identifier of the established WebRTC call. */\n rtc_call_id: string;\n /** The server's SDP answer for the WebRTC connection. */\n sdp_answer: string;\n}\n\nexport function voiceAgentServerEventRtcCallSdpCreatedSerializer(\n item: VoiceAgentServerEventRtcCallSdpCreated,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n rtc_call_id: item[\"rtc_call_id\"],\n sdp_answer: item[\"sdp_answer\"],\n };\n}\n\nexport function voiceAgentServerEventRtcCallSdpCreatedDeserializer(\n item: any,\n): VoiceAgentServerEventRtcCallSdpCreated {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n rtc_call_id: item[\"rtc_call_id\"],\n sdp_answer: item[\"sdp_answer\"],\n };\n}\n\n/** The `rtc.call.error` server event: a WebRTC signaling failure. */\nexport interface VoiceAgentServerEventRtcCallError extends RealtimeServerEvent {\n /** The event type. Always `rtc.call.error`. */\n type: \"rtc.call.error\";\n /** An optional server-generated event identifier. */\n event_id?: string;\n /** The signaling operation that failed, when known. */\n operation?: string;\n /** The identifier of the WebRTC call, when known. */\n rtc_call_id?: string;\n /** The error detail. */\n error: VoiceAgentRtcCallErrorDetails;\n}\n\nexport function voiceAgentServerEventRtcCallErrorSerializer(\n item: VoiceAgentServerEventRtcCallError,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n operation: item[\"operation\"],\n rtc_call_id: item[\"rtc_call_id\"],\n error: voiceAgentRtcCallErrorDetailsSerializer(item[\"error\"]),\n };\n}\n\nexport function voiceAgentServerEventRtcCallErrorDeserializer(\n item: any,\n): VoiceAgentServerEventRtcCallError {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n operation: item[\"operation\"],\n rtc_call_id: item[\"rtc_call_id\"],\n error: voiceAgentRtcCallErrorDetailsDeserializer(item[\"error\"]),\n };\n}\n\n/** Details of a WebRTC signaling error. */\nexport interface VoiceAgentRtcCallErrorDetails {\n /** The error category, following the VoiceLive wire contract: `invalid_request_error` for a client-side signaling fault (for example, a malformed SDP offer) or `server_error` for a service-side failure. Additional categories may be added over time. */\n type: string;\n /** A machine-readable error code, when available. */\n code?: string;\n /** A human-readable error message. */\n message: string;\n}\n\nexport function voiceAgentRtcCallErrorDetailsSerializer(item: VoiceAgentRtcCallErrorDetails): any {\n return { type: item[\"type\"], code: item[\"code\"], message: item[\"message\"] };\n}\n\nexport function voiceAgentRtcCallErrorDetailsDeserializer(\n item: any,\n): VoiceAgentRtcCallErrorDetails {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n message: item[\"message\"],\n };\n}\n\n/** The `session.avatar.switch_to_speaking` server event. */\nexport interface VoiceAgentServerEventSessionAvatarSwitchToSpeaking extends RealtimeServerEvent {\n /** The event type. Always `session.avatar.switch_to_speaking`. */\n type: \"session.avatar.switch_to_speaking\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the conversation turn associated with the transition to speaking. */\n turn_id?: string;\n}\n\nexport function voiceAgentServerEventSessionAvatarSwitchToSpeakingSerializer(\n item: VoiceAgentServerEventSessionAvatarSwitchToSpeaking,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], turn_id: item[\"turn_id\"] };\n}\n\nexport function voiceAgentServerEventSessionAvatarSwitchToSpeakingDeserializer(\n item: any,\n): VoiceAgentServerEventSessionAvatarSwitchToSpeaking {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n turn_id: item[\"turn_id\"],\n };\n}\n\n/** The `session.avatar.switch_to_idle` server event. */\nexport interface VoiceAgentServerEventSessionAvatarSwitchToIdle extends RealtimeServerEvent {\n /** The event type. Always `session.avatar.switch_to_idle`. */\n type: \"session.avatar.switch_to_idle\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the conversation turn associated with the transition to idle. */\n turn_id?: string;\n}\n\nexport function voiceAgentServerEventSessionAvatarSwitchToIdleSerializer(\n item: VoiceAgentServerEventSessionAvatarSwitchToIdle,\n): any {\n return { type: item[\"type\"], event_id: item[\"event_id\"], turn_id: item[\"turn_id\"] };\n}\n\nexport function voiceAgentServerEventSessionAvatarSwitchToIdleDeserializer(\n item: any,\n): VoiceAgentServerEventSessionAvatarSwitchToIdle {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n turn_id: item[\"turn_id\"],\n };\n}\n\n/** The `response.audio_timestamp.delta` server event. */\nexport interface VoiceAgentServerEventResponseAudioTimestampDelta extends RealtimeServerEvent {\n /** The event type. Always `response.audio_timestamp.delta`. */\n type: \"response.audio_timestamp.delta\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the response associated with this event. */\n response_id: string;\n /** The identifier of the output item associated with this event. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The starting audio offset, in milliseconds, of the timestamped text. */\n audio_offset_ms: number;\n /** The duration, in milliseconds, of the audio corresponding to the timestamped text. */\n audio_duration_ms: number;\n /** The word associated with this audio timestamp. */\n text: string;\n /** The granularity of the audio timestamp. Always `word`. */\n timestamp_type: \"word\";\n}\n\nexport function voiceAgentServerEventResponseAudioTimestampDeltaSerializer(\n item: VoiceAgentServerEventResponseAudioTimestampDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n audio_offset_ms: item[\"audio_offset_ms\"],\n audio_duration_ms: item[\"audio_duration_ms\"],\n text: item[\"text\"],\n timestamp_type: item[\"timestamp_type\"],\n };\n}\n\nexport function voiceAgentServerEventResponseAudioTimestampDeltaDeserializer(\n item: any,\n): VoiceAgentServerEventResponseAudioTimestampDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n audio_offset_ms: item[\"audio_offset_ms\"],\n audio_duration_ms: item[\"audio_duration_ms\"],\n text: item[\"text\"],\n timestamp_type: item[\"timestamp_type\"],\n };\n}\n\n/** The `response.audio_timestamp.done` server event. */\nexport interface VoiceAgentServerEventResponseAudioTimestampDone extends RealtimeServerEvent {\n /** The event type. Always `response.audio_timestamp.done`. */\n type: \"response.audio_timestamp.done\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the response associated with this event. */\n response_id: string;\n /** The identifier of the output item associated with this event. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n}\n\nexport function voiceAgentServerEventResponseAudioTimestampDoneSerializer(\n item: VoiceAgentServerEventResponseAudioTimestampDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n };\n}\n\nexport function voiceAgentServerEventResponseAudioTimestampDoneDeserializer(\n item: any,\n): VoiceAgentServerEventResponseAudioTimestampDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n };\n}\n\n/** The `response.animation_blendshapes.delta` server event. */\nexport interface VoiceAgentServerEventResponseAnimationBlendshapesDelta extends RealtimeServerEvent {\n /** The event type. Always `response.animation_blendshapes.delta`. */\n type: \"response.animation_blendshapes.delta\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the response associated with this event. */\n response_id: string;\n /** The identifier of the output item associated with this event. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** Animation frames as numeric blendshape weights. */\n frames: number[][];\n /** The index of the first frame in this delta. */\n frame_index: number;\n}\n\nexport function voiceAgentServerEventResponseAnimationBlendshapesDeltaSerializer(\n item: VoiceAgentServerEventResponseAnimationBlendshapesDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n frames: item[\"frames\"].map((frame: number[]) => {\n return frame.map((weight: number) => {\n return weight;\n });\n }),\n frame_index: item[\"frame_index\"],\n };\n}\n\nexport function voiceAgentServerEventResponseAnimationBlendshapesDeltaDeserializer(\n item: any,\n): VoiceAgentServerEventResponseAnimationBlendshapesDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n frames: item[\"frames\"].map((p: any) => {\n return p.map((p1: any) => {\n return p1;\n });\n }),\n frame_index: item[\"frame_index\"],\n };\n}\n\n/** The `response.animation_blendshapes.done` server event. */\nexport interface VoiceAgentServerEventResponseAnimationBlendshapesDone extends RealtimeServerEvent {\n /** The event type. Always `response.animation_blendshapes.done`. */\n type: \"response.animation_blendshapes.done\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the response associated with this event. */\n response_id: string;\n /** The identifier of the output item associated with this event. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n}\n\nexport function voiceAgentServerEventResponseAnimationBlendshapesDoneSerializer(\n item: VoiceAgentServerEventResponseAnimationBlendshapesDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n };\n}\n\nexport function voiceAgentServerEventResponseAnimationBlendshapesDoneDeserializer(\n item: any,\n): VoiceAgentServerEventResponseAnimationBlendshapesDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n };\n}\n\n/** The `response.animation_viseme.delta` server event. */\nexport interface VoiceAgentServerEventResponseAnimationVisemeDelta extends RealtimeServerEvent {\n /** The event type. Always `response.animation_viseme.delta`. */\n type: \"response.animation_viseme.delta\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the response associated with this event. */\n response_id: string;\n /** The identifier of the output item associated with this event. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n /** The audio offset, in milliseconds, at which the viseme occurs. */\n audio_offset_ms: number;\n /** The identifier of the viseme to display at the specified audio offset. */\n viseme_id: number;\n}\n\nexport function voiceAgentServerEventResponseAnimationVisemeDeltaSerializer(\n item: VoiceAgentServerEventResponseAnimationVisemeDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n audio_offset_ms: item[\"audio_offset_ms\"],\n viseme_id: item[\"viseme_id\"],\n };\n}\n\nexport function voiceAgentServerEventResponseAnimationVisemeDeltaDeserializer(\n item: any,\n): VoiceAgentServerEventResponseAnimationVisemeDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n audio_offset_ms: item[\"audio_offset_ms\"],\n viseme_id: item[\"viseme_id\"],\n };\n}\n\n/** The `response.animation_viseme.done` server event. */\nexport interface VoiceAgentServerEventResponseAnimationVisemeDone extends RealtimeServerEvent {\n /** The event type. Always `response.animation_viseme.done`. */\n type: \"response.animation_viseme.done\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The identifier of the response associated with this event. */\n response_id: string;\n /** The identifier of the output item associated with this event. */\n item_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The index of the content part in the item's content array. */\n content_index: number;\n}\n\nexport function voiceAgentServerEventResponseAnimationVisemeDoneSerializer(\n item: VoiceAgentServerEventResponseAnimationVisemeDone,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n };\n}\n\nexport function voiceAgentServerEventResponseAnimationVisemeDoneDeserializer(\n item: any,\n): VoiceAgentServerEventResponseAnimationVisemeDone {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n response_id: item[\"response_id\"],\n item_id: item[\"item_id\"],\n output_index: item[\"output_index\"],\n content_index: item[\"content_index\"],\n };\n}\n\n/** The `response.video.delta` server event. */\nexport interface VoiceAgentServerEventResponseVideoDelta extends RealtimeServerEvent {\n /** The event type. Always `response.video.delta`. */\n type: \"response.video.delta\";\n /** The unique identifier of the server event. */\n event_id: string;\n /** The index of the output item in the response. */\n output_index: number;\n /** The codec used to encode the video frame data. */\n codec: string;\n /** The base64-encoded video frame data. */\n delta: string;\n}\n\nexport function voiceAgentServerEventResponseVideoDeltaSerializer(\n item: VoiceAgentServerEventResponseVideoDelta,\n): any {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n codec: item[\"codec\"],\n delta: item[\"delta\"],\n };\n}\n\nexport function voiceAgentServerEventResponseVideoDeltaDeserializer(\n item: any,\n): VoiceAgentServerEventResponseVideoDelta {\n return {\n type: item[\"type\"],\n event_id: item[\"event_id\"],\n output_index: item[\"output_index\"],\n codec: item[\"codec\"],\n delta: item[\"delta\"],\n };\n}\n\n/** Token usage statistics for the request. */\nexport interface CreateTranscriptionResponseJsonUsage {\n /** Whether transcription usage is measured in tokens or audio duration. */\n type: CreateTranscriptionResponseJsonUsageType;\n}\n\nexport function createTranscriptionResponseJsonUsageSerializer(\n item: CreateTranscriptionResponseJsonUsage,\n): any {\n return { type: item[\"type\"] };\n}\n\nexport function createTranscriptionResponseJsonUsageDeserializer(\n item: any,\n): CreateTranscriptionResponseJsonUsage {\n return {\n type: item[\"type\"],\n };\n}\n\n/** Alias for CreateTranscriptionResponseJsonUsageUnion */\nexport type CreateTranscriptionResponseJsonUsageUnion =\n TranscriptTextUsageTokens | TranscriptTextUsageDuration | CreateTranscriptionResponseJsonUsage;\n\nexport function createTranscriptionResponseJsonUsageUnionSerializer(\n item: CreateTranscriptionResponseJsonUsageUnion,\n): any {\n switch (item.type) {\n case \"tokens\":\n return transcriptTextUsageTokensSerializer(item as TranscriptTextUsageTokens);\n\n case \"duration\":\n return transcriptTextUsageDurationSerializer(item as TranscriptTextUsageDuration);\n\n default:\n return createTranscriptionResponseJsonUsageSerializer(item);\n }\n}\n\nexport function createTranscriptionResponseJsonUsageUnionDeserializer(\n item: any,\n): CreateTranscriptionResponseJsonUsageUnion {\n switch (item[\"type\"]) {\n case \"tokens\":\n return transcriptTextUsageTokensDeserializer(item as TranscriptTextUsageTokens);\n\n case \"duration\":\n return transcriptTextUsageDurationDeserializer(item as TranscriptTextUsageDuration);\n\n default:\n return createTranscriptionResponseJsonUsageDeserializer(item);\n }\n}\n\n/** Type of CreateTranscriptionResponseJsonUsageType */\nexport type CreateTranscriptionResponseJsonUsageType = \"tokens\" | \"duration\";\n\n/** Properties shared by realtime responses returned by the voice-agent service. */\nexport interface VoiceAgentRealtimeResponseBase {\n /** The unique ID of the response, will look like `resp_1234`. */\n id?: string;\n /** The object type, must be `realtime.response`. */\n object?: \"realtime.response\";\n /**\n * The final status of the response (`completed`, `cancelled`, `failed`, or\n * `incomplete`, `in_progress`).\n */\n status?: \"completed\" | \"cancelled\" | \"failed\" | \"incomplete\" | \"in_progress\";\n /** Additional details about the status. */\n status_details?: RealtimeResponseStatusDetails;\n /** Custom string key-value pairs associated with the response. */\n metadata?: Metadata;\n /**\n * Usage statistics for the Response, this will correspond to billing. A\n * Realtime API session will maintain a conversation context and append new\n * Items to the Conversation, thus output from previous turns (text and\n * audio tokens) will become the input for later turns.\n */\n usage?: RealtimeResponseUsage;\n /**\n * Which conversation the response is added to, determined by the `conversation`\n * field in the `response.create` event. If `auto`, the response will be added to\n * the default conversation and the value of `conversation_id` will be an id like\n * `conv_1234`. If `none`, the response will not be added to any conversation and\n * the value of `conversation_id` will be `null`. If responses are being triggered\n * automatically by VAD the response will be added to the default conversation\n */\n conversation_id?: string;\n /**\n * The set of modalities the model used to respond, currently the only possible values are\n * `[\\\"audio\\\"]`, `[\\\"text\\\"]`. Audio output always include a text transcript. Setting the\n * output to mode `text` will disable audio output from the model.\n */\n output_modalities?: (\"text\" | \"audio\")[];\n /**\n * Maximum number of output tokens for a single assistant response,\n * inclusive of tool calls, that was used in this response.\n */\n max_output_tokens?: number | \"inf\";\n}\n\nexport function voiceAgentRealtimeResponseBaseSerializer(\n item: VoiceAgentRealtimeResponseBase,\n): any {\n return {\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n status_details: !item[\"status_details\"]\n ? item[\"status_details\"]\n : realtimeResponseStatusDetailsSerializer(item[\"status_details\"]),\n metadata: !item[\"metadata\"] ? item[\"metadata\"] : metadataSerializer(item[\"metadata\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageSerializer(item[\"usage\"]),\n conversation_id: item[\"conversation_id\"],\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceResponseBaseMaxOutputTokensSerializer(item[\"max_output_tokens\"]),\n };\n}\n\nexport function voiceAgentRealtimeResponseBaseDeserializer(\n item: any,\n): VoiceAgentRealtimeResponseBase {\n return {\n id: item[\"id\"],\n object: item[\"object\"],\n status: item[\"status\"],\n status_details: !item[\"status_details\"]\n ? item[\"status_details\"]\n : realtimeResponseStatusDetailsDeserializer(item[\"status_details\"]),\n metadata: !item[\"metadata\"] ? item[\"metadata\"] : metadataDeserializer(item[\"metadata\"]),\n usage: !item[\"usage\"] ? item[\"usage\"] : realtimeResponseUsageDeserializer(item[\"usage\"]),\n conversation_id: item[\"conversation_id\"],\n output_modalities: !item[\"output_modalities\"]\n ? item[\"output_modalities\"]\n : item[\"output_modalities\"].map((p: any) => {\n return p;\n }),\n max_output_tokens: !item[\"max_output_tokens\"]\n ? item[\"max_output_tokens\"]\n : _voiceResponseBaseMaxOutputTokensDeserializer(item[\"max_output_tokens\"]),\n };\n}\n\n/** model interface RealtimeServerEventErrorError */\nexport interface RealtimeServerEventErrorError {\n /** The category of realtime error, such as an invalid request or a server error. */\n type: string;\n /** A machine-readable code identifying the realtime error. */\n code?: string;\n /** A description of the realtime error intended for diagnostic use. */\n message: string;\n /** The request parameter associated with the error, when applicable. */\n param?: string;\n /** The identifier of the client event that caused the error, when applicable. */\n event_id?: string;\n}\n\nexport function realtimeServerEventErrorErrorSerializer(item: RealtimeServerEventErrorError): any {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n message: item[\"message\"],\n param: item[\"param\"],\n event_id: item[\"event_id\"],\n };\n}\n\nexport function realtimeServerEventErrorErrorDeserializer(\n item: any,\n): RealtimeServerEventErrorError {\n return {\n type: item[\"type\"],\n code: item[\"code\"],\n message: item[\"message\"],\n param: item[\"param\"],\n event_id: item[\"event_id\"],\n };\n}\n\n/**\n * Returned when an error occurs, which could be a client problem or a server\n * problem. Most errors are recoverable and the session will stay open, we\n * recommend to implementors to monitor and log error messages by default.\n */\nexport interface RealtimeServerEventError {\n /** The unique ID of the server event. */\n event_id: string;\n /** The event type, must be `error`. */\n type: \"error\";\n /** Details of the error. */\n error: RealtimeServerEventErrorError;\n}\n\nexport function realtimeServerEventErrorSerializer(item: RealtimeServerEventError): any {\n return {\n event_id: item[\"event_id\"],\n type: item[\"type\"],\n error: realtimeServerEventErrorErrorSerializer(item[\"error\"]),\n };\n}\n\nexport function realtimeServerEventErrorDeserializer(item: any): RealtimeServerEventError {\n return {\n event_id: item[\"event_id\"],\n type: item[\"type\"],\n error: realtimeServerEventErrorErrorDeserializer(item[\"error\"]),\n };\n}\n\n/** The kind-specific inputs for generating and creating an agent. */\nexport type GenerateAgentRequest = GenerateVoiceAgentRequest;\n\nexport function generateAgentRequestSerializer(item: GenerateAgentRequest): any {\n return item;\n}\n\n/** A stable v1 message sent by a client over a voice-agent WebSocket. */\nexport type VoiceAgentClientEvent =\n | RealtimeClientEventConversationItemCreate\n | RealtimeClientEventConversationItemDelete\n | RealtimeClientEventConversationItemRetrieve\n | RealtimeClientEventConversationItemTruncate\n | RealtimeClientEventInputAudioBufferAppend\n | RealtimeClientEventInputAudioBufferClear\n | RealtimeClientEventOutputAudioBufferClear\n | RealtimeClientEventInputAudioBufferCommit\n | RealtimeClientEventResponseCancel\n | RealtimeClientEventResponseCreate\n | VoiceAgentClientEventSessionUpdate\n | VoiceAgentClientEventSessionAvatarConnect\n | VoiceAgentClientEventRtcCallSdpCreate;\n\nexport function voiceAgentClientEventSerializer(item: VoiceAgentClientEvent): any {\n return item;\n}\n\nexport function voiceAgentClientEventDeserializer(item: any): VoiceAgentClientEvent {\n return item;\n}\n\n/** A stable v1 message sent by the service over a voice-agent WebSocket. */\nexport type VoiceAgentServerEvent =\n | RealtimeServerEventConversationItemAdded\n | RealtimeServerEventConversationItemCreated\n | RealtimeServerEventConversationItemDeleted\n | RealtimeServerEventConversationItemDone\n | RealtimeServerEventConversationItemInputAudioTranscriptionCompleted\n | RealtimeServerEventConversationItemInputAudioTranscriptionDelta\n | RealtimeServerEventConversationItemInputAudioTranscriptionFailed\n | RealtimeServerEventConversationItemInputAudioTranscriptionSegment\n | RealtimeServerEventConversationItemRetrieved\n | RealtimeServerEventConversationItemTruncated\n | RealtimeServerEventInputAudioBufferCleared\n | RealtimeServerEventInputAudioBufferCommitted\n | RealtimeServerEventInputAudioBufferSpeechStarted\n | RealtimeServerEventInputAudioBufferSpeechStopped\n | RealtimeServerEventInputAudioBufferTimeoutTriggered\n | RealtimeServerEventMCPListToolsCompleted\n | RealtimeServerEventMCPListToolsFailed\n | RealtimeServerEventMCPListToolsInProgress\n | RealtimeServerEventOutputAudioBufferCleared\n | RealtimeServerEventRateLimitsUpdated\n | RealtimeServerEventResponseAudioDelta\n | RealtimeServerEventResponseAudioDone\n | RealtimeServerEventResponseAudioTranscriptDelta\n | RealtimeServerEventResponseAudioTranscriptDone\n | RealtimeServerEventResponseContentPartAdded\n | RealtimeServerEventResponseContentPartDone\n | RealtimeServerEventResponseCreated\n | RealtimeServerEventResponseDone\n | RealtimeServerEventResponseFunctionCallArgumentsDelta\n | RealtimeServerEventResponseFunctionCallArgumentsDone\n | RealtimeServerEventResponseMCPCallArgumentsDelta\n | RealtimeServerEventResponseMCPCallArgumentsDone\n | RealtimeServerEventResponseMCPCallCompleted\n | RealtimeServerEventResponseMCPCallFailed\n | RealtimeServerEventResponseMCPCallInProgress\n | RealtimeServerEventResponseOutputItemAdded\n | RealtimeServerEventResponseOutputItemDone\n | RealtimeServerEventResponseTextDelta\n | RealtimeServerEventResponseTextDone\n | RealtimeServerEventSessionCreated\n | VoiceAgentServerEventSessionSubagentStarted\n | VoiceAgentServerEventSessionSubagentCompleted\n | VoiceAgentServerEventSessionSubagentAborted\n | RealtimeServerEventSessionUpdated\n | RealtimeServerEventError\n | VoiceAgentServerEventWarning\n | VoiceAgentServerEventSessionAvatarConnecting\n | VoiceAgentServerEventRtcCallSdpCreated\n | VoiceAgentServerEventRtcCallError\n | VoiceAgentServerEventSessionAvatarSwitchToSpeaking\n | VoiceAgentServerEventSessionAvatarSwitchToIdle\n | VoiceAgentServerEventResponseAudioTimestampDelta\n | VoiceAgentServerEventResponseAudioTimestampDone\n | VoiceAgentServerEventResponseAnimationBlendshapesDelta\n | VoiceAgentServerEventResponseAnimationBlendshapesDone\n | VoiceAgentServerEventResponseAnimationVisemeDelta\n | VoiceAgentServerEventResponseAnimationVisemeDone\n | VoiceAgentServerEventResponseVideoDelta;\n\nexport function voiceAgentServerEventSerializer(item: VoiceAgentServerEvent): any {\n return item;\n}\n\nexport function voiceAgentServerEventDeserializer(item: any): VoiceAgentServerEvent {\n return item;\n}\n\n/** A JSON text message exchanged over an established voice-agent WebSocket. Audio bytes are base64-encoded in JSON event fields. */\nexport type VoiceAgentWebSocketMessage = VoiceAgentClientEvent | VoiceAgentServerEvent;\n\nexport function voiceAgentWebSocketMessageSerializer(item: VoiceAgentWebSocketMessage): any {\n return item;\n}\n\nexport function voiceAgentWebSocketMessageDeserializer(item: any): VoiceAgentWebSocketMessage {\n return item;\n}\n\n/** The transport used for a voice-agent connection. */\nexport type VoiceAgentTransport = \"websocket\" | \"webrtc\";\n\n/** The WebSocket subprotocol supported by a voice-agent connection. */\nexport type VoiceAgentWebSocketSubprotocol = \"realtime\";\n\n/**\n * The merged stereo WAV recording of a voice conversation, exposed as a browser Blob or Node.js\n * readable stream.\n */\nexport type BetaVoiceAgentsConversationsDownloadAudioResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/**\n * The generated WAV audio for an interrupted conversation item, exposed as a browser Blob or\n * Node.js readable stream.\n */\nexport type BetaVoiceAgentsConversationsDownloadGeneratedAudioItemResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n\n/** The WAV audio for a conversation item, exposed as a browser Blob or Node.js readable stream. */\nexport type BetaVoiceAgentsConversationsDownloadAudioItemResponse = {\n /**\n * BROWSER ONLY\n *\n * The response body as a browser Blob.\n * Always `undefined` in node.js.\n */\n blobBody?: Promise<Blob>;\n /**\n * NODEJS ONLY\n *\n * The response body as a node.js Readable stream.\n * Always `undefined` in the browser.\n */\n readableStreamBody?: NodeReadableStream;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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",
|
|
6
6
|
"names": ["KnownApiVersions"]
|
|
7
7
|
}
|