From 7d4b17aefecc711ca12a92e287d63ace5c75d594 Mon Sep 17 00:00:00 2001 From: Mike Guo Date: Tue, 1 Sep 2026 18:45:01 +0800 Subject: [PATCH 1/3] Regenerate Azure AI Agents and Projects clients Co-Authored-By: Claude --- sdk/ai/azure-ai-agents/README.md | 12 +- .../azure/ai/agents/AgentsAsyncClient.java | 745 ++++- .../com/azure/ai/agents/AgentsClient.java | 713 +++- .../azure/ai/agents/AgentsClientBuilder.java | 44 + ...AgentEndpointConversationsAsyncClient.java | 1419 ++++++++ .../BetaAgentEndpointConversationsClient.java | 1307 ++++++++ .../BetaVoiceAgentWebSocketAsyncClient.java | 183 + .../agents/BetaVoiceAgentWebSocketClient.java | 179 + .../azure/ai/agents/ToolboxesAsyncClient.java | 28 +- .../com/azure/ai/agents/ToolboxesClient.java | 28 +- .../implementation/AgentsClientImpl.java | 52 +- .../ai/agents/implementation/AgentsImpl.java | 1467 ++++++-- .../BetaAgentEndpointConversationsImpl.java | 2440 ++++++++++++++ .../BetaVoiceAgentWebSocketsImpl.java | 206 ++ .../agents/implementation/ToolboxesImpl.java | 152 +- .../models/AgentDefinitionOptInKeys.java | 9 +- .../models/ApproximateLocation.java | 60 +- .../models/CreateAgentOptions.java | 39 +- .../models/CreateAgentRequest.java | 45 +- .../models/CreateAgentVersionRequest.java | 45 +- .../models/FoundryFeaturesOptInKeys.java | 14 +- .../GetMicrosoft365AppPackageRequest.java | 656 ++++ .../PublishAgentToMicrosoft365Request.java | 657 ++++ .../models/UpdateAgentRequest.java | 8 +- .../models/WebSearchApproximateLocation.java | 58 +- .../ActivityProtocolAccessBoundary.java | 157 + .../models/ActivityProtocolConfiguration.java | 21 + .../ai/agents/models/AgentDefinition.java | 2 + .../azure/ai/agents/models/AgentDetails.java | 23 + .../ai/agents/models/AgentEndpointConfig.java | 25 + .../agents/models/AgentEndpointProtocol.java | 6 + .../com/azure/ai/agents/models/AgentKind.java | 6 + .../models/AzureCreateResponseDetails.java | 27 +- .../agents/models/ConversationResource.java | 158 + .../models/CreateAgentVersionInput.java | 44 +- .../models/CreateAgentVersionOptions.java | 230 ++ .../ai/agents/models/DigitalWorkerType.java | 51 + .../GetMicrosoft365AppPackageOptions.java | 548 +++ .../agents/models/HostedAgentDefinition.java | 35 + .../ai/agents/models/McpListToolsTool.java | 173 + .../models/McpListToolsToolAnnotations.java | 57 + .../models/McpListToolsToolInputSchema.java | 57 + .../com/azure/ai/agents/models/Metadata.java | 113 + .../models/Microsoft365PermissionScopes.java | 105 + .../models/Microsoft365PublishDefaults.java | 352 ++ .../models/Microsoft365PublishResponse.java | 97 + .../models/Microsoft365PublishScope.java | 63 + .../ai/agents/models/ModelRouterAttempt.java | 105 + .../models/ModelRouterAttemptError.java | 104 + .../models/ModelRouterAttemptResult.java | 134 + .../ai/agents/models/ModelRouterDetails.java | 107 + .../ai/agents/models/ModelRouterMode.java | 63 + .../agents/models/ModelSelectionDetails.java | 83 + ...PromptAgentDefinitionReasoningContext.java | 61 + ...entDefinitionReasoningGenerateSummary.java | 61 + ...PromptAgentDefinitionReasoningSummary.java | 61 + .../PublishAgentToMicrosoft365Options.java | 549 +++ .../agents/models/PublishApprovalStatus.java | 76 + .../agents/models/RealtimeAudioFormats.java | 109 + .../models/RealtimeAudioFormatsAudioPcm.java | 111 + .../RealtimeAudioFormatsAudioPcmRate.java | 49 + .../models/RealtimeAudioFormatsAudioPcma.java | 80 + .../models/RealtimeAudioFormatsAudioPcmu.java | 80 + .../models/RealtimeAudioFormatsType.java | 63 + .../models/RealtimeConversationItem.java | 116 + .../RealtimeConversationItemFunctionCall.java | 305 ++ ...imeConversationItemFunctionCallOutput.java | 308 ++ ...versationItemFunctionCallOutputStatus.java | 62 + ...imeConversationItemFunctionCallStatus.java | 61 + ...meConversationItemMessageSystemObject.java | 51 + ...eConversationItemMessageSystemObject1.java | 51 + .../models/RealtimeConversationItemType.java | 87 + .../RealtimeFunctionToolParameters.java | 58 + .../models/RealtimeMCPApprovalRequest.java | 213 ++ .../models/RealtimeMCPApprovalResponse.java | 224 ++ .../ai/agents/models/RealtimeMCPError.java | 109 + .../agents/models/RealtimeMCPHTTPError.java | 126 + .../agents/models/RealtimeMCPListTools.java | 202 ++ .../models/RealtimeMCPProtocolError.java | 126 + .../ai/agents/models/RealtimeMCPToolCall.java | 312 ++ .../models/RealtimeMCPToolExecutionError.java | 105 + .../agents/models/RealtimeMcpErrorType.java | 63 + .../models/RealtimeResponseStatusDetails.java | 120 + .../RealtimeResponseStatusDetailsError.java | 98 + .../RealtimeResponseStatusDetailsReason.java | 66 + .../RealtimeResponseStatusDetailsType.java | 66 + .../agents/models/RealtimeResponseUsage.java | 156 + ...ealtimeResponseUsageInputTokenDetails.java | 161 + ...eInputTokenDetailsCachedTokensDetails.java | 123 + ...altimeResponseUsageOutputTokenDetails.java | 101 + .../com/azure/ai/agents/models/Reasoning.java | 225 ++ .../ai/agents/models/ReasoningEffort.java | 93 + .../ai/agents/models/ReasoningModeEnum.java | 57 + .../ai/agents/models/RoutingTraceEntry.java | 137 + .../agents/models/SessionConfiguration.java | 106 + .../ai/agents/models/ShellToolboxTool.java | 189 ++ .../java/com/azure/ai/agents/models/Tool.java | 14 +- .../ai/agents/models/ToolChoiceFunction.java | 106 + .../azure/ai/agents/models/ToolChoiceMCP.java | 139 + .../ai/agents/models/ToolChoiceParam.java | 109 + .../ai/agents/models/ToolChoiceParamType.java | 135 + .../com/azure/ai/agents/models/ToolType.java | 6 + .../ToolboxShellContainerAutoEnvironment.java | 211 ++ ...boxShellContainerReferenceEnvironment.java | 105 + .../models/ToolboxShellEnvironment.java | 108 + .../models/ToolboxShellNetworkPolicy.java | 105 + .../ToolboxShellNetworkPolicyDisabled.java | 79 + .../azure/ai/agents/models/ToolboxTool.java | 4 + .../ai/agents/models/ToolboxToolType.java | 14 +- .../agents/models/VoiceAgentAudioConfig.java | 121 + .../models/VoiceAgentAudioInputConfig.java | 220 ++ ...entAudioInputConfigTranscriptionDelay.java | 71 + .../models/VoiceAgentAudioOutputConfig.java | 577 ++++ .../models/VoiceAgentAudioTimestampType.java | 51 + .../agents/models/VoiceAgentAvatarConfig.java | 337 ++ .../VoiceAgentAvatarOutputProtocol.java | 63 + .../agents/models/VoiceAgentAvatarScene.java | 276 ++ .../agents/models/VoiceAgentAvatarType.java | 57 + .../VoiceAgentAvatarVideoBackground.java | 122 + .../models/VoiceAgentAvatarVideoCrop.java | 105 + .../models/VoiceAgentAvatarVideoParams.java | 216 ++ .../VoiceAgentAvatarVideoResolution.java | 104 + ...eAgentAzureSemanticVadEnTurnDetection.java | 414 +++ ...eSemanticVadMultilingualTurnDetection.java | 448 +++ ...iceAgentAzureSemanticVadTurnDetection.java | 447 +++ .../agents/models/VoiceAgentDefinition.java | 653 ++++ .../models/VoiceAgentEchoCancellation.java | 145 + ...eAgentEchoCancellationReferenceSource.java | 56 + .../VoiceAgentEndOfUtteranceDetection.java | 159 + ...oiceAgentEndOfUtteranceDetectionModel.java | 74 + ...oiceAgentEndOfUtteranceThresholdLevel.java | 70 + .../agents/models/VoiceAgentFunctionTool.java | 176 + .../models/VoiceAgentGreetingConfig.java | 107 + .../models/VoiceAgentInputTranscription.java | 354 ++ .../VoiceAgentInputTranscriptionModel.java | 103 + .../VoiceAgentInterimResponseConfig.java | 183 + .../VoiceAgentInterimResponseTrigger.java | 57 + .../VoiceAgentLlmGeneratedGreetingConfig.java | 143 + .../VoiceAgentLlmInterimResponseConfig.java | 210 ++ .../ai/agents/models/VoiceAgentMcpTool.java | 492 +++ .../models/VoiceAgentNoiseReduction.java | 82 + .../models/VoiceAgentNoiseReductionType.java | 64 + .../VoiceAgentSemanticVadTurnDetection.java | 190 ++ ...gentSemanticVadTurnDetectionEagerness.java | 66 + .../VoiceAgentServerVadTurnDetection.java | 360 ++ .../VoiceAgentSessionIncludeOption.java | 61 + ...VoiceAgentStaticInterimResponseConfig.java | 148 + .../agents/models/VoiceAgentSystemTool.java | 138 + .../models/VoiceAgentSystemToolName.java | 51 + .../VoiceAgentTemplateGreetingConfig.java | 106 + .../ai/agents/models/VoiceAgentTool.java | 111 + .../VoiceAgentToolResponseScheduling.java | 69 + .../agents/models/VoiceAgentToolboxTool.java | 163 + .../models/VoiceAgentTurnDetectionConfig.java | 146 + .../models/VoiceAgentTurnDetectionType.java | 76 + .../VoiceAgentWebSocketSubprotocol.java | 51 + .../ai/agents/models/VoiceAudioCodec.java | 63 + .../models/VoiceAudioContainerFormat.java | 51 + .../ai/agents/models/VoiceAudioRole.java | 57 + .../ai/agents/models/VoiceConversation.java | 249 ++ .../models/VoiceConversationStatus.java | 68 + .../agents/models/VoiceItemAudioResponse.java | 288 ++ .../ai/agents/models/VoiceModelType.java | 58 + .../ai/agents/models/VoiceOutputModality.java | 69 + .../models/VoiceRecordingChannelLayout.java | 92 + .../agents/models/VoiceRecordingResponse.java | 231 ++ .../azure/ai/agents/models/VoiceResponse.java | 406 +++ .../ai/agents/models/VoiceResponseAudio.java | 78 + .../models/VoiceResponseAudioOutput.java | 135 + .../ai/agents/models/VoiceResponseBase.java | 354 ++ .../models/VoiceResponseBaseObject.java | 51 + .../VoiceResponseBaseOutputModality.java | 56 + .../models/VoiceResponseBaseStatus.java | 71 + .../com/azure/ai/agents/models/VoiceType.java | 81 + .../ai/agents/models/WebIqPreviewTool.java | 180 + .../models/WebIqPreviewToolboxTool.java | 227 ++ .../agents/models/WebSearchPreviewTool.java | 1 + .../azure/ai/agents/models/WebSearchTool.java | 35 + .../agents/models/WebSearchToolboxTool.java | 35 + .../META-INF/azure-ai-agents_metadata.json | 2 +- .../CreateResponseWithConversation.java | 3 +- .../CreateResponseWithStructuredInput.java | 5 +- .../azure/ai/agents/MemorySearchAgent.java | 3 +- .../ai/agents/MultipleAgentsConversation.java | 3 +- .../com/azure/ai/agents/ReadmeSamples.java | 3 +- .../azure/ai/agents/agents/CreateAgent.java | 3 +- .../CodeInterpreterStreamingAsync.java | 3 +- .../CodeInterpreterStreamingSync.java | 3 +- .../streaming/FunctionCallStreamingAsync.java | 3 +- .../streaming/FunctionCallStreamingSync.java | 3 +- .../streaming/SimpleStreamingAsync.java | 3 +- .../agents/streaming/SimpleStreamingSync.java | 3 +- .../ai/agents/tools/AgentToAgentAsync.java | 3 +- .../ai/agents/tools/AgentToAgentSync.java | 3 +- .../ai/agents/tools/AzureAISearchAsync.java | 3 +- .../ai/agents/tools/AzureAISearchSync.java | 3 +- .../ai/agents/tools/AzureFunctionAsync.java | 3 +- .../ai/agents/tools/AzureFunctionSync.java | 3 +- .../agents/tools/BingCustomSearchAsync.java | 3 +- .../ai/agents/tools/BingCustomSearchSync.java | 3 +- .../ai/agents/tools/BingGroundingAsync.java | 3 +- .../ai/agents/tools/BingGroundingSync.java | 3 +- .../agents/tools/BrowserAutomationAsync.java | 3 +- .../agents/tools/BrowserAutomationSync.java | 3 +- .../ai/agents/tools/CodeInterpreterAsync.java | 3 +- .../ai/agents/tools/CodeInterpreterSync.java | 3 +- .../ai/agents/tools/ComputerUseAsync.java | 3 +- .../ai/agents/tools/ComputerUseSync.java | 3 +- .../tools/CustomCodeInterpreterAsync.java | 3 +- .../tools/CustomCodeInterpreterSync.java | 3 +- .../azure/ai/agents/tools/FabricAsync.java | 3 +- .../azure/ai/agents/tools/FabricIQAsync.java | 3 +- .../azure/ai/agents/tools/FabricIQSync.java | 3 +- .../com/azure/ai/agents/tools/FabricSync.java | 3 +- .../ai/agents/tools/FileSearchAsync.java | 3 +- .../azure/ai/agents/tools/FileSearchSync.java | 3 +- .../ai/agents/tools/FunctionCallAsync.java | 3 +- .../ai/agents/tools/FunctionCallSync.java | 3 +- .../ai/agents/tools/ImageGenerationAsync.java | 3 +- .../ai/agents/tools/ImageGenerationSync.java | 3 +- .../com/azure/ai/agents/tools/McpAsync.java | 3 +- .../com/azure/ai/agents/tools/McpSync.java | 3 +- .../agents/tools/McpWithConnectionAsync.java | 3 +- .../agents/tools/McpWithConnectionSync.java | 3 +- .../ai/agents/tools/MemorySearchAsync.java | 3 +- .../ai/agents/tools/MemorySearchSync.java | 3 +- .../azure/ai/agents/tools/OpenApiAsync.java | 3 +- .../azure/ai/agents/tools/OpenApiSample.java | 3 +- .../azure/ai/agents/tools/OpenApiSync.java | 3 +- .../tools/OpenApiWithConnectionAsync.java | 3 +- .../tools/OpenApiWithConnectionSync.java | 3 +- .../tools/SharePointGroundingAsync.java | 3 +- .../agents/tools/SharePointGroundingSync.java | 3 +- .../azure/ai/agents/tools/WebSearchAsync.java | 3 +- .../azure/ai/agents/tools/WebSearchSync.java | 3 +- .../azure/ai/agents/tools/WorkIQAsync.java | 3 +- .../com/azure/ai/agents/tools/WorkIQSync.java | 3 +- .../com/azure/ai/agents/AgentsAsyncTests.java | 23 +- .../java/com/azure/ai/agents/AgentsTests.java | 18 +- .../azure/ai/agents/StreamingAsyncTests.java | 82 +- .../com/azure/ai/agents/StreamingTests.java | 15 +- .../com/azure/ai/agents/ToolsAsyncTests.java | 103 +- .../java/com/azure/ai/agents/ToolsTests.java | 20 +- ...ApproximateLocationSerializationTests.java | 218 -- ...ApproximateLocationSerializationTests.java | 163 - .../agents/tools/FabricIQSamplesTestBase.java | 7 +- .../agents/tools/WorkIQSamplesTestBase.java | 7 +- .../ai/projects/AIProjectClientBuilder.java | 22 + .../BetaAgentInsightMonitorsAsyncClient.java | 1431 ++++++++ .../BetaAgentInsightMonitorsClient.java | 1344 ++++++++ .../ai/projects/BetaRoutinesAsyncClient.java | 99 +- .../azure/ai/projects/BetaRoutinesClient.java | 97 +- .../implementation/AIProjectClientImpl.java | 57 +- .../BetaAgentInsightMonitorsImpl.java | 2940 +++++++++++++++++ .../implementation/BetaRoutinesImpl.java | 170 +- .../implementation/JsonMergePatchHelper.java | 54 + .../models/CreateOrUpdateRoutineRequest.java | 35 + .../models/FoundryFeaturesOptInKeys.java | 14 +- .../ai/projects/models/AgentInsight.java | 300 ++ .../projects/models/AgentInsightDetails.java | 130 + .../models/AgentInsightEstimatedCost.java | 101 + .../models/AgentInsightHighlightedTrace.java | 185 ++ .../models/AgentInsightLinkedTrace.java | 101 + .../projects/models/AgentInsightMonitor.java | 252 ++ .../models/AgentInsightMonitorCreate.java | 176 + .../models/AgentInsightMonitorListItem.java | 235 ++ .../models/AgentInsightMonitorUpdate.java | 274 ++ .../models/AgentInsightOverviewSource.java | 57 + .../models/AgentInsightPromptSurface.java | 57 + .../models/AgentInsightProposedFix.java | 129 + .../models/AgentInsightProposedFixChange.java | 207 ++ .../models/AgentInsightProposedFixKind.java | 63 + .../models/AgentInsightRecommendedAction.java | 83 + .../ai/projects/models/AgentInsightRun.java | 342 ++ .../models/AgentInsightRunCreate.java | 94 + .../models/AgentInsightRunResult.java | 195 ++ .../models/AgentInsightRunTrigger.java | 57 + .../projects/models/AgentInsightSeverity.java | 63 + .../projects/models/AgentInsightStatus.java | 63 + .../models/AgentInsightSuspension.java | 167 + .../models/AgentInsightTokenUsage.java | 151 + .../projects/models/AgentInsightUpdate.java | 143 + .../models/AgentInsightsOverview.java | 134 + .../models/AgentInsightsOverviewOverride.java | 146 + .../projects/models/RoutineAuthorization.java | 95 + .../models/RoutineDispatchIdentity.java | 57 + ...imulationSeedDataGenerationJobOptions.java | 2 +- .../META-INF/azure-ai-projects_metadata.json | 2 +- .../ai/projects/RoutinesAsyncSample.java | 6 +- .../RoutinesManualDispatchAsyncSample.java | 6 +- .../RoutinesManualDispatchSample.java | 6 +- .../com/azure/ai/projects/RoutinesSample.java | 6 +- .../RoutinesScheduleTriggerAsyncSample.java | 6 +- .../RoutinesScheduleTriggerSample.java | 6 +- .../RoutinesTimerTriggerAsyncSample.java | 6 +- .../projects/RoutinesTimerTriggerSample.java | 6 +- 296 files changed, 41339 insertions(+), 1517 deletions(-) create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java rename sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/{ => implementation}/models/ApproximateLocation.java (78%) create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java rename sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/{ => implementation}/models/WebSearchApproximateLocation.java (81%) create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ConversationResource.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterMode.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Reasoning.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningEffort.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionConfiguration.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversation.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponse.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceType.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java delete mode 100644 sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/ApproximateLocationSerializationTests.java delete mode 100644 sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebSearchApproximateLocationSerializationTests.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsAsyncClient.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsClient.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaAgentInsightMonitorsImpl.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java create mode 100644 sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java diff --git a/sdk/ai/azure-ai-agents/README.md b/sdk/ai/azure-ai-agents/README.md index 46df8730ab15..67001ef341ed 100644 --- a/sdk/ai/azure-ai-agents/README.md +++ b/sdk/ai/azure-ai-agents/README.md @@ -60,9 +60,9 @@ AgentsAsyncClient agentsAsyncClient = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) .endpoint(endpoint) .buildAgentsAsyncClient(); -``` +``` -The Agents client library has the following sub-clients which group the different operations that can be performed: +The Agents client library has the following sub-clients which group the different operations that can be performed: - `AgentsClient` / `AgentsAsyncClient`: Perform operations related to agents, such as creating, retrieving, updating, and deleting agents. When `allowPreview(true)` is configured, these clients can also use preview draft versions, hosted-agent sessions, session files, and code package operations. - `BetaAgentsClient` / `BetaAgentsAsyncClient` **(preview)**: Perform preview agent optimization operations. - `ResponsesClient` / `ResponsesAsyncClient`: Handle responses operations. See the [OpenAI's Responses API documentation][openai_responses_api_docs] for more information. @@ -226,7 +226,7 @@ Remember to adjust your base URL so that your AI Foundry project `endpoint`'s pa ### Prompt Agent -This example will show how to create the context necessary for a `PromptAgent` to work. Note that the way that context is handled in this scenario would allow you to share the context with multiple agents. +This example will show how to create the context necessary for a `PromptAgent` to work. Note that the way that context is handled in this scenario would allow you to share the context with multiple agents. #### Create an Agent @@ -234,7 +234,7 @@ Creating an Agent can be done like in the following code snippet: ```java com.azure.ai.agents.create_prompt_agent PromptAgentDefinition promptAgentDefinition = new PromptAgentDefinition("gpt-4o"); -AgentVersionDetails agent = agentsClient.createAgentVersion("my-agent", promptAgentDefinition); +AgentVersionDetails agent = agentsClient.createAgentVersion("my-agent", new CreateAgentVersionInput(promptAgentDefinition)); ``` This will return an `AgentVersionDetails` which contains the information necessary to create an `AgentReference`. But first it's necessary to setup the `Conversation` and its messages to be able to obtain `Response`s with a centralized context. @@ -847,11 +847,11 @@ structuredInputDefinitions.put("userRole", new StructuredInputDefinition().setDescription("User's role").setRequired(true)); AgentVersionDetails agent = agentsClient.createAgentVersion("structured-input-agent", - new PromptAgentDefinition(model) + new CreateAgentVersionInput(new PromptAgentDefinition(model) .setInstructions("You are a helpful assistant. " + "The user's name is {{userName}} and their role is {{userRole}}. " + "Greet them and confirm their details.") - .setStructuredInputs(structuredInputDefinitions)); + .setStructuredInputs(structuredInputDefinitions))); ``` #### Create a response with structured input values diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java index 8bad304c63af..5fad1d7c8834 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java @@ -14,6 +14,8 @@ import com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest; import com.azure.ai.agents.implementation.models.CreateAgentVersionRequest; import com.azure.ai.agents.implementation.models.CreateSessionRequest; +import com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest; +import com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request; import com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest; import com.azure.ai.agents.implementation.models.UpdateAgentRequest; import com.azure.ai.agents.implementation.utils.FileUtils; @@ -24,11 +26,16 @@ import com.azure.ai.agents.models.AgentSessionResource; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeFileDetails; +import com.azure.ai.agents.models.ConversationResource; import com.azure.ai.agents.models.CreateAgentVersionFromCodeContent; import com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata; import com.azure.ai.agents.models.CreateAgentVersionInput; +import com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions; import com.azure.ai.agents.models.HostedAgentDefinition; +import com.azure.ai.agents.models.Microsoft365PublishDefaults; +import com.azure.ai.agents.models.Microsoft365PublishResponse; import com.azure.ai.agents.models.PageOrder; +import com.azure.ai.agents.models.PublishAgentToMicrosoft365Options; import com.azure.ai.agents.models.SessionDirectoryEntry; import com.azure.ai.agents.models.SessionFileWriteResult; import com.azure.ai.agents.models.SessionLogEvent; @@ -72,7 +79,7 @@ public final class AgentsAsyncClient { * * Retrieves an agent definition by its unique name. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -93,7 +100,7 @@ public final class AgentsAsyncClient {
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -124,6 +131,9 @@ public final class AgentsAsyncClient {
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -141,7 +151,9 @@ public final class AgentsAsyncClient {
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -188,7 +200,7 @@ public Mono> getAgentWithResponse(String agentName, Request
      *
      * Creates a new version for the specified agent and returns the created version resource.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -197,7 +209,7 @@ public Mono> getAgentWithResponse(String agentName, Request
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -205,13 +217,14 @@ public Mono> getAgentWithResponse(String agentName, Request
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -225,7 +238,7 @@ public Mono> getAgentWithResponse(String agentName, Request
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -343,7 +356,7 @@ public Mono deleteAgentVersion(String agentName, String agentVersion) {
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -357,7 +370,7 @@ public Mono deleteAgentVersion(String agentName, String agentVersion) {
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -484,42 +497,12 @@ public PagedFlux listAgentVersions(String agentName) {
         });
     }
 
-    /**
-     * Create an agent version
-     *
-     * Creates a new version for the specified agent and returns the created version resource.
-     *
-     * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent.
-     * - Must start and end with alphanumeric characters,
-     * - Can contain hyphens in the middle
-     * - Must not exceed 63 characters.
-     * @param definition The agent definition. This can be a workflow, hosted agent, or a simple agent definition.
-     * @throws IllegalArgumentException thrown if parameters fail the validation.
-     * @throws HttpResponseException thrown if the request is rejected by server.
-     * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
-     * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
-     * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
-     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return the response body on successful completion of {@link Mono}.
-     */
-    @Generated
-    @ServiceMethod(returns = ReturnType.SINGLE)
-    public Mono createAgentVersion(String agentName, AgentDefinition definition) {
-        // Generated convenience method for createAgentVersionWithResponse
-        RequestOptions requestOptions = new RequestOptions();
-        CreateAgentVersionRequest createAgentVersionRequestObj = new CreateAgentVersionRequest(definition);
-        BinaryData createAgentVersionRequest = BinaryData.fromObject(createAgentVersionRequestObj);
-        return createAgentVersionWithResponse(agentName, createAgentVersionRequest, requestOptions)
-            .flatMap(FluxUtil::toMono)
-            .map(protocolMethodData -> protocolMethodData.toObject(AgentVersionDetails.class));
-    }
-
     /**
      * Create an agent
      *
      * Creates a new agent or a new version of an existing agent.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -530,7 +513,7 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -538,6 +521,7 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      *     agent_endpoint (Optional): {
      *         version_selector (Optional): {
@@ -551,6 +535,9 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -568,6 +555,7 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -589,9 +577,9 @@ public Mono createAgentVersion(String agentName, AgentDefin
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -612,7 +600,7 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -643,6 +631,9 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -660,7 +651,9 @@ public Mono createAgentVersion(String agentName, AgentDefin
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -705,7 +698,7 @@ Mono> createAgentWithResponse(BinaryData createAgentRequest
      * Updates the agent by adding a new version if there are any changes to the agent definition.
      * If no changes, returns the existing agent version.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -714,7 +707,7 @@ Mono> createAgentWithResponse(BinaryData createAgentRequest
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -725,9 +718,9 @@ Mono> createAgentWithResponse(BinaryData createAgentRequest
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -748,7 +741,7 @@ Mono> createAgentWithResponse(BinaryData createAgentRequest
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -779,6 +772,9 @@ Mono> createAgentWithResponse(BinaryData createAgentRequest
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -796,7 +792,9 @@ Mono> createAgentWithResponse(BinaryData createAgentRequest
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -844,7 +842,8 @@ Mono> updateAgentWithResponse(String agentName, BinaryData
      * If no changes, returns the existing agent version.
      *
      * @param agentName The name of the agent to retrieve.
-     * @param definition The agent definition. This can be a workflow, hosted agent, or a simple agent definition.
+     * @param definition The agent definition. This can be a prompt, workflow, hosted, external, or voice agent
+     * definition.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws HttpResponseException thrown if the request is rejected by server.
      * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
@@ -879,7 +878,7 @@ Mono updateAgent(String agentName, AgentDefinition definition) {
      *
      * Imports the provided manifest to create an agent and returns the created resource.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -895,9 +894,9 @@ Mono updateAgent(String agentName, AgentDefinition definition) {
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -918,7 +917,7 @@ Mono updateAgent(String agentName, AgentDefinition definition) {
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -949,6 +948,9 @@ Mono updateAgent(String agentName, AgentDefinition definition) {
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -966,7 +968,9 @@ Mono updateAgent(String agentName, AgentDefinition definition) {
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1013,7 +1017,7 @@ Mono> createAgentFromManifestWithResponse(BinaryData create
      * Updates the agent from a manifest by adding a new version if there are any changes to the agent definition.
      * If no changes, returns the existing agent version.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1028,9 +1032,9 @@ Mono> createAgentFromManifestWithResponse(BinaryData create
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1051,7 +1055,7 @@ Mono> createAgentFromManifestWithResponse(BinaryData create
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1082,6 +1086,9 @@ Mono> createAgentFromManifestWithResponse(BinaryData create
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1099,7 +1106,9 @@ Mono> createAgentFromManifestWithResponse(BinaryData create
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1146,7 +1155,7 @@ Mono> updateAgentFromManifestWithResponse(String agentName,
      *
      * Imports the provided manifest to create a new version for the specified agent.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1161,9 +1170,9 @@ Mono> updateAgentFromManifestWithResponse(String agentName,
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1177,7 +1186,7 @@ Mono> updateAgentFromManifestWithResponse(String agentName,
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1402,7 +1411,7 @@ public Mono createAgentVersionFromManifest(String agentName
      *
      * Retrieves the specified version of an agent by its agent name and version identifier.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1416,7 +1425,7 @@ public Mono createAgentVersionFromManifest(String agentName
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1552,7 +1561,7 @@ public PagedFlux listAgents(AgentKind kind, Integer limit, PageOrd
      * Query Parameters
      * NameTypeRequiredDescription
      * kindStringNoFilter agents by kind. If not provided, all agents are returned.
-     * Allowed values: "prompt", "hosted", "workflow", "external".
+     * Allowed values: "prompt", "hosted", "workflow", "external", "voice".
      * limitIntegerNoA limit on the number of objects to be returned. Limit can range
      * between 1 and 100, and the
      * default is 20.
@@ -1570,7 +1579,7 @@ public PagedFlux listAgents(AgentKind kind, Integer limit, PageOrd
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1591,7 +1600,7 @@ public PagedFlux listAgents(AgentKind kind, Integer limit, PageOrd
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1622,6 +1631,9 @@ public PagedFlux listAgents(AgentKind kind, Integer limit, PageOrd
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1639,7 +1651,9 @@ public PagedFlux listAgents(AgentKind kind, Integer limit, PageOrd
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1756,7 +1770,7 @@ Mono createAgentFromManifest(String agentName, String manifestId,
      * 
      * You can add these to a request with {@link RequestOptions#addHeader}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1799,7 +1813,7 @@ public PagedFlux listAgentConversations(RequestOptions requestOption
      */
     @Generated
     @ServiceMethod(returns = ReturnType.COLLECTION)
-    public PagedFlux listAgentConversations() {
+    public PagedFlux listAgentConversations() {
         // Generated convenience method for listAgentConversations
         RequestOptions requestOptions = new RequestOptions();
         PagedFlux pagedFluxResponse = listAgentConversations(requestOptions);
@@ -1807,13 +1821,14 @@ public PagedFlux listAgentConversations() {
             Flux> flux = (continuationTokenParam == null)
                 ? pagedFluxResponse.byPage().take(1)
                 : pagedFluxResponse.byPage(continuationTokenParam).take(1);
-            return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(),
-                pagedResponse.getStatusCode(), pagedResponse.getHeaders(),
-                pagedResponse.getValue()
-                    .stream()
-                    .map(protocolMethodData -> protocolMethodData.toObject(Conversation.class))
-                    .collect(Collectors.toList()),
-                pagedResponse.getContinuationToken(), null));
+            return flux
+                .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(),
+                    pagedResponse.getStatusCode(), pagedResponse.getHeaders(),
+                    pagedResponse.getValue()
+                        .stream()
+                        .map(protocolMethodData -> protocolMethodData.toObject(ConversationResource.class))
+                        .collect(Collectors.toList()),
+                    pagedResponse.getContinuationToken(), null));
         });
     }
 
@@ -1878,7 +1893,7 @@ public Mono> deleteAgentWithResponse(String agentName, RequestOpt
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1919,7 +1934,7 @@ Mono> internalDeleteAgentWithResponse(String agentName, Req
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1971,6 +1986,7 @@ Mono createAgent(CreateAgentOptions options) {
                 .setMetadata(options.getMetadata())
                 .setDescription(options.getDescription())
                 .setBlueprintReference(options.getBlueprintReference())
+                .setDigitalWorkerType(options.getDigitalWorkerType())
                 .setDraft(options.isDraft())
                 .setAgentEndpoint(options.getAgentEndpoint())
                 .setAgentCard(options.getAgentCard());
@@ -2074,8 +2090,8 @@ public Mono createAgentVersion(String agentName,
      */
     @Generated
     @ServiceMethod(returns = ReturnType.COLLECTION)
-    public PagedFlux listAgentConversations(Integer limit, PageOrder order, String after, String before,
-        String agentName, String agentId, String userIdentity) {
+    public PagedFlux listAgentConversations(Integer limit, PageOrder order, String after,
+        String before, String agentName, String agentId, String userIdentity) {
         // Generated convenience method for listAgentConversations
         RequestOptions requestOptions = new RequestOptions();
         if (limit != null) {
@@ -2104,13 +2120,14 @@ public PagedFlux listAgentConversations(Integer limit, PageOrder o
             Flux> flux = (continuationTokenParam == null)
                 ? pagedFluxResponse.byPage().take(1)
                 : pagedFluxResponse.byPage(continuationTokenParam).take(1);
-            return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(),
-                pagedResponse.getStatusCode(), pagedResponse.getHeaders(),
-                pagedResponse.getValue()
-                    .stream()
-                    .map(protocolMethodData -> protocolMethodData.toObject(Conversation.class))
-                    .collect(Collectors.toList()),
-                pagedResponse.getContinuationToken(), null));
+            return flux
+                .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(),
+                    pagedResponse.getStatusCode(), pagedResponse.getHeaders(),
+                    pagedResponse.getValue()
+                        .stream()
+                        .map(protocolMethodData -> protocolMethodData.toObject(ConversationResource.class))
+                        .collect(Collectors.toList()),
+                    pagedResponse.getContinuationToken(), null));
         });
     }
 
@@ -2184,7 +2201,8 @@ public PagedFlux listAgentConversations(Integer limit, PageOrder o
      * If no changes, returns the existing agent version.
      *
      * @param agentName The name of the agent to retrieve.
-     * @param definition The agent definition. This can be a workflow, hosted agent, or a simple agent definition.
+     * @param definition The agent definition. This can be a prompt, workflow, hosted, external, or voice agent
+     * definition.
      * @param metadata Set of 16 key-value pairs that can be attached to an object. This can be
      * useful for storing additional information about the object in a structured
      * format, and querying for objects via API or the dashboard.
@@ -2225,7 +2243,7 @@ Mono updateAgent(String agentName, AgentDefinition definition, Map
      * irrelevant).
      * Maximum upload size is 250 MB.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2246,7 +2264,7 @@ Mono updateAgent(String agentName, AgentDefinition definition, Map
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2277,6 +2295,9 @@ Mono updateAgent(String agentName, AgentDefinition definition, Map
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2294,7 +2315,9 @@ Mono updateAgent(String agentName, AgentDefinition definition, Map
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2350,7 +2373,7 @@ Mono> createAgentFromCodeWithResponse(String agentName, Str
      * irrelevant).
      * Maximum upload size is 250 MB.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2371,7 +2394,7 @@ Mono> createAgentFromCodeWithResponse(String agentName, Str
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2402,6 +2425,9 @@ Mono> createAgentFromCodeWithResponse(String agentName, Str
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2419,7 +2445,9 @@ Mono> createAgentFromCodeWithResponse(String agentName, Str
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2473,7 +2501,7 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      *
      * Applies a merge-patch update to the specified agent endpoint configuration.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2489,6 +2517,9 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2506,6 +2537,7 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -2527,9 +2559,9 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2550,7 +2582,7 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2581,6 +2613,9 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2598,7 +2633,9 @@ Mono> updateAgentFromCodeWithResponse(String agentName, Str
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2652,7 +2689,7 @@ public Mono> updateAgentDetailsWithResponse(String agentNam
      * irrelevant).
      * Maximum upload size is 250 MB.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2666,7 +2703,7 @@ public Mono> updateAgentDetailsWithResponse(String agentNam
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -2732,13 +2769,13 @@ Mono> createAgentVersionFromCodeWithResponse(String agentNa
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Headers

* * @@ -2835,7 +2872,7 @@ public Mono> downloadAgentCodeWithResponse(String agentName, Stri * The endpoint resolves the backing agent version from `version_indicator` and * enforces session ownership using the provided user identity for session-mutating operations. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2846,9 +2883,9 @@ public Mono> downloadAgentCodeWithResponse(String agentName, Stri
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2886,7 +2923,7 @@ public Mono> createSessionWithResponse(String agentName, Bi
      *
      * Retrieves the details of a hosted agent session by agent name and session identifier.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2989,7 +3026,7 @@ public Mono> stopSessionWithResponse(String agentName, String ses
      * 
Response Headers
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3050,7 +3087,7 @@ public PagedFlux listSessions(String agentName, RequestOptions reque
      * The stream remains open until the client disconnects or the server
      * terminates the connection. Clients should handle reconnection as needed.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3087,15 +3124,15 @@ public Mono> getSessionLogStreamWithResponse(String agentNa
      * Uploads binary file content to the specified path in the session sandbox.
      * The service stores the file relative to the session home directory and rejects payloads larger than 50 MB.
      * 

Request Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3182,7 +3219,7 @@ public Mono> uploadSessionFileWithResponse(String agentName
      * Downloads the file at the specified sandbox path as a binary stream.
      * The path is resolved relative to the session home directory.
      * 

Response Body Schema

- * + * *
      * {@code
      * BinaryData
@@ -3300,7 +3337,7 @@ public Mono> downloadSessionFileWithResponse(String agentName, St
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4293,4 +4330,490 @@ public PagedFlux listAgentVersions(String agentName, Intege
                     pagedResponse.getContinuationToken(), null));
         });
     }
+
+    /**
+     * Generate an agent
+     *
+     * Generates and creates an agent from kind-specific high-level inputs.
+     * The generated definition remains fully editable through the standard agent versioning operations.
+     * 

Request Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *     id: String (Required)
+     *     name: String (Required)
+     *     state: String(enabled/disabled) (Required)
+     *     state_source: String(agent_instance_identity/agent_blueprint) (Optional)
+     *     versions (Required): {
+     *         latest (Required): {
+     *             metadata (Required): {
+     *                 String: String (Required)
+     *             }
+     *             object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *             id: String (Required)
+     *             name: String (Required)
+     *             version: String (Required)
+     *             description: String (Optional)
+     *             created_at: long (Required)
+     *             definition (Required): {
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
+     *                 rai_config (Optional): {
+     *                     rai_policy_name: String (Required)
+     *                 }
+     *             }
+     *             draft: Boolean (Optional)
+     *             status: String(creating/active/failed/deleting/deleted) (Optional)
+     *             instance_identity (Optional): {
+     *                 principal_id: String (Required)
+     *                 client_id: String (Required)
+     *                 status: String(active/disabled) (Optional)
+     *             }
+     *             blueprint (Optional): (recursive schema, see blueprint above)
+     *             blueprint_reference (Optional): {
+     *                 type: String(ManagedAgentIdentityBlueprint) (Required)
+     *             }
+     *             agent_guid: String (Optional)
+     *         }
+     *     }
+     *     agent_endpoint (Optional): {
+     *         version_selector (Optional): {
+     *             version_selection_rules (Optional, Required on create): [
+     *                  (Optional, Required on create){
+     *                     type: String(FixedRatio) (Required)
+     *                     agent_version: String (Optional, Required on create)
+     *                 }
+     *             ]
+     *         }
+     *         protocol_configuration (Optional): {
+     *             activity (Optional): {
+     *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
+     *             }
+     *             responses (Optional): {
+     *             }
+     *             a2a (Optional): {
+     *             }
+     *             mcp (Optional): {
+     *             }
+     *             invocations (Optional): {
+     *             }
+     *             invocations_ws (Optional): {
+     *             }
+     *         }
+     *         authorization_schemes (Optional): [
+     *              (Optional){
+     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
+     *             }
+     *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
+     *     }
+     *     digital_worker_type: String(m365) (Optional)
+     *     instance_identity (Optional): (recursive schema, see instance_identity above)
+     *     blueprint (Optional): (recursive schema, see blueprint above)
+     *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
+     *     agent_card (Optional): {
+     *         version: String (Optional, Required on create)
+     *         description: String (Optional)
+     *         skills (Optional, Required on create): [
+     *              (Optional, Required on create){
+     *                 id: String (Optional, Required on create)
+     *                 name: String (Optional, Required on create)
+     *                 description: String (Optional)
+     *                 tags (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *                 examples (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *             }
+     *         ]
+     *     }
+     * }
+     * }
+     * 
+ * + * @param body The kind-specific inputs for generating and creating an agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> generateAgentWithResponse(BinaryData body, RequestOptions requestOptions) { + return this.serviceClient.generateAgentWithResponseAsync(body, requestOptions); + } + + /** + * Publish an agent to Microsoft 365 + * + * Publishes a Foundry agent to Microsoft 365 / Microsoft Teams and returns the published title and + * Teams app ids. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to publish. + * @param publishAgentToMicrosoft365Request The publishAgentToMicrosoft365Request parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return response from publishing an agent to Microsoft 365 / Microsoft Teams along with {@link Response} on + * successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> publishAgentToMicrosoft365WithResponse(String agentName, + BinaryData publishAgentToMicrosoft365Request, RequestOptions requestOptions) { + return this.serviceClient.publishAgentToMicrosoft365WithResponseAsync(agentName, + publishAgentToMicrosoft365Request, requestOptions); + } + + /** + * Generate a Microsoft 365 app package + * + * Generates the Microsoft Teams app package (zip) for a Foundry agent from the supplied publish + * request, without publishing it. Returns the app package as `application/zip`. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent to generate the app package for. + * @param getMicrosoft365AppPackageRequest The getMicrosoft365AppPackageRequest parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getMicrosoft365AppPackageWithResponse(String agentName, + BinaryData getMicrosoft365AppPackageRequest, RequestOptions requestOptions) { + return this.serviceClient.getMicrosoft365AppPackageWithResponseAsync(agentName, + getMicrosoft365AppPackageRequest, requestOptions); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
publishAsDigitalWorkerBooleanNoWhen true, returns defaults for publishing the + * agent as an autopilot (digital worker) agent.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     appPublishScope: String(Personal/Shared/Tenant) (Optional)
+     *     agentName: String (Optional)
+     *     agentDisplayName: String (Optional)
+     *     appRegistrationClientId: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     appVersion: String (Optional)
+     *     recommendedNextAppVersion: String (Optional)
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to get publish defaults for. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getMicrosoft365PublishDefaultsWithResponse(String agentName, + RequestOptions requestOptions) { + return this.serviceClient.getMicrosoft365PublishDefaultsWithResponseAsync(agentName, requestOptions); + } + + /** + * Generate an agent + * + * Generates and creates an agent from kind-specific high-level inputs. + * The generated definition remains fully editable through the standard agent versioning operations. + * + * @param body The kind-specific inputs for generating and creating an agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response body on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono generateAgent(BinaryData body) { + // Generated convenience method for generateAgentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return generateAgentWithResponse(body, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentDetails.class)); + } + + /** + * Publish an agent to Microsoft 365 + * + * Publishes a Foundry agent to Microsoft 365 / Microsoft Teams and returns the published title and + * Teams app ids. + * + * @param options Options for publishAgentToMicrosoft365 API. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return response from publishing an agent to Microsoft 365 / Microsoft Teams on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono publishAgentToMicrosoft365(PublishAgentToMicrosoft365Options options) { + // Generated convenience method for publishAgentToMicrosoft365WithResponse + RequestOptions requestOptions = new RequestOptions(); + String agentName = options.getAgentName(); + PublishAgentToMicrosoft365Request publishAgentToMicrosoft365RequestObj + = new PublishAgentToMicrosoft365Request(options.getPublishScope()) + .setAgentDisplayName(options.getAgentDisplayName()) + .setBotServiceArmId(options.getBotServiceArmId()) + .setPublishAsAutopilot(options.isPublishAsAutopilot()) + .setAccessBoundaries(options.getAccessBoundaries()) + .setOptionalPermissionScopes(options.getOptionalPermissionScopes()) + .setCanRespondWithoutMention(options.isCanRespondWithoutMention()) + .setAppVersion(options.getAppVersion()) + .setShortDescription(options.getShortDescription()) + .setFullDescription(options.getFullDescription()) + .setDeveloperName(options.getDeveloperName()) + .setDeveloperWebsiteUrl(options.getDeveloperWebsiteUrl()) + .setPrivacyUrl(options.getPrivacyUrl()) + .setTermsOfUseUrl(options.getTermsOfUseUrl()) + .setColorIconBase64(options.getColorIconBase64()) + .setOutlineIconBase64(options.getOutlineIconBase64()); + BinaryData publishAgentToMicrosoft365Request = BinaryData.fromObject(publishAgentToMicrosoft365RequestObj); + return publishAgentToMicrosoft365WithResponse(agentName, publishAgentToMicrosoft365Request, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(Microsoft365PublishResponse.class)); + } + + /** + * Generate a Microsoft 365 app package + * + * Generates the Microsoft Teams app package (zip) for a Foundry agent from the supplied publish + * request, without publishing it. Returns the app package as `application/zip`. + * + * @param options Options for getMicrosoft365AppPackage API. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response body on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getMicrosoft365AppPackage(GetMicrosoft365AppPackageOptions options) { + // Generated convenience method for getMicrosoft365AppPackageWithResponse + RequestOptions requestOptions = new RequestOptions(); + String agentName = options.getAgentName(); + GetMicrosoft365AppPackageRequest getMicrosoft365AppPackageRequestObj + = new GetMicrosoft365AppPackageRequest(options.getPublishScope()) + .setAgentDisplayName(options.getAgentDisplayName()) + .setBotServiceArmId(options.getBotServiceArmId()) + .setPublishAsAutopilot(options.isPublishAsAutopilot()) + .setAccessBoundaries(options.getAccessBoundaries()) + .setOptionalPermissionScopes(options.getOptionalPermissionScopes()) + .setCanRespondWithoutMention(options.isCanRespondWithoutMention()) + .setAppVersion(options.getAppVersion()) + .setShortDescription(options.getShortDescription()) + .setFullDescription(options.getFullDescription()) + .setDeveloperName(options.getDeveloperName()) + .setDeveloperWebsiteUrl(options.getDeveloperWebsiteUrl()) + .setPrivacyUrl(options.getPrivacyUrl()) + .setTermsOfUseUrl(options.getTermsOfUseUrl()) + .setColorIconBase64(options.getColorIconBase64()) + .setOutlineIconBase64(options.getOutlineIconBase64()); + BinaryData getMicrosoft365AppPackageRequest = BinaryData.fromObject(getMicrosoft365AppPackageRequestObj); + return getMicrosoft365AppPackageWithResponse(agentName, getMicrosoft365AppPackageRequest, requestOptions) + .flatMap(FluxUtil::toMono); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + * + * @param agentName The name of the agent to get publish defaults for. + * @param publishAsDigitalWorker When true, returns defaults for publishing the agent as an autopilot (digital + * worker) agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getMicrosoft365PublishDefaults(String agentName, + Boolean publishAsDigitalWorker) { + // Generated convenience method for getMicrosoft365PublishDefaultsWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (publishAsDigitalWorker != null) { + requestOptions.addQueryParam("publishAsDigitalWorker", String.valueOf(publishAsDigitalWorker), false); + } + return getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(Microsoft365PublishDefaults.class)); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + * + * @param agentName The name of the agent to get publish defaults for. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getMicrosoft365PublishDefaults(String agentName) { + // Generated convenience method for getMicrosoft365PublishDefaultsWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(Microsoft365PublishDefaults.class)); + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java index c12bcbaf9c59..df1e8bab09f8 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java @@ -14,6 +14,8 @@ import com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest; import com.azure.ai.agents.implementation.models.CreateAgentVersionRequest; import com.azure.ai.agents.implementation.models.CreateSessionRequest; +import com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest; +import com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request; import com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest; import com.azure.ai.agents.implementation.models.UpdateAgentRequest; import com.azure.ai.agents.implementation.utils.FileUtils; @@ -24,11 +26,16 @@ import com.azure.ai.agents.models.AgentSessionResource; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeFileDetails; +import com.azure.ai.agents.models.ConversationResource; import com.azure.ai.agents.models.CreateAgentVersionFromCodeContent; import com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata; import com.azure.ai.agents.models.CreateAgentVersionInput; +import com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions; import com.azure.ai.agents.models.HostedAgentDefinition; +import com.azure.ai.agents.models.Microsoft365PublishDefaults; +import com.azure.ai.agents.models.Microsoft365PublishResponse; import com.azure.ai.agents.models.PageOrder; +import com.azure.ai.agents.models.PublishAgentToMicrosoft365Options; import com.azure.ai.agents.models.SessionDirectoryEntry; import com.azure.ai.agents.models.SessionFileWriteResult; import com.azure.ai.agents.models.SessionLogEvent; @@ -68,7 +75,7 @@ public final class AgentsClient { * * Retrieves an agent definition by its unique name. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -89,7 +96,7 @@ public final class AgentsClient {
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -120,6 +127,9 @@ public final class AgentsClient {
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -137,7 +147,9 @@ public final class AgentsClient {
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -183,7 +195,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *
      * Creates a new version for the specified agent and returns the created version resource.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -192,7 +204,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -200,13 +212,14 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -220,7 +233,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -336,7 +349,7 @@ public void deleteAgentVersion(String agentName, String agentVersion) {
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -350,7 +363,7 @@ public void deleteAgentVersion(String agentName, String agentVersion) {
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -453,41 +466,12 @@ public PagedIterable listAgentVersions(String agentName) {
             .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentVersionDetails.class));
     }
 
-    /**
-     * Create an agent version
-     *
-     * Creates a new version for the specified agent and returns the created version resource.
-     *
-     * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent.
-     * - Must start and end with alphanumeric characters,
-     * - Can contain hyphens in the middle
-     * - Must not exceed 63 characters.
-     * @param definition The agent definition. This can be a workflow, hosted agent, or a simple agent definition.
-     * @throws IllegalArgumentException thrown if parameters fail the validation.
-     * @throws HttpResponseException thrown if the request is rejected by server.
-     * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
-     * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
-     * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
-     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return the response.
-     */
-    @Generated
-    @ServiceMethod(returns = ReturnType.SINGLE)
-    public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition definition) {
-        // Generated convenience method for createAgentVersionWithResponse
-        RequestOptions requestOptions = new RequestOptions();
-        CreateAgentVersionRequest createAgentVersionRequestObj = new CreateAgentVersionRequest(definition);
-        BinaryData createAgentVersionRequest = BinaryData.fromObject(createAgentVersionRequestObj);
-        return createAgentVersionWithResponse(agentName, createAgentVersionRequest, requestOptions).getValue()
-            .toObject(AgentVersionDetails.class);
-    }
-
     /**
      * Create an agent
      *
      * Creates a new agent or a new version of an existing agent.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -498,7 +482,7 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -506,6 +490,7 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      *     agent_endpoint (Optional): {
      *         version_selector (Optional): {
@@ -519,6 +504,9 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -536,6 +524,7 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -557,9 +546,9 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -580,7 +569,7 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -611,6 +600,9 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -628,7 +620,9 @@ public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -673,7 +667,7 @@ Response createAgentWithResponse(BinaryData createAgentRequest, Requ
      * Updates the agent by adding a new version if there are any changes to the agent definition.
      * If no changes, returns the existing agent version.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -682,7 +676,7 @@ Response createAgentWithResponse(BinaryData createAgentRequest, Requ
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -693,9 +687,9 @@ Response createAgentWithResponse(BinaryData createAgentRequest, Requ
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -716,7 +710,7 @@ Response createAgentWithResponse(BinaryData createAgentRequest, Requ
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -747,6 +741,9 @@ Response createAgentWithResponse(BinaryData createAgentRequest, Requ
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -764,7 +761,9 @@ Response createAgentWithResponse(BinaryData createAgentRequest, Requ
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -812,7 +811,8 @@ Response updateAgentWithResponse(String agentName, BinaryData update
      * If no changes, returns the existing agent version.
      *
      * @param agentName The name of the agent to retrieve.
-     * @param definition The agent definition. This can be a workflow, hosted agent, or a simple agent definition.
+     * @param definition The agent definition. This can be a prompt, workflow, hosted, external, or voice agent
+     * definition.
      * @throws IllegalArgumentException thrown if parameters fail the validation.
      * @throws HttpResponseException thrown if the request is rejected by server.
      * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
@@ -847,7 +847,7 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition) {
      *
      * Imports the provided manifest to create an agent and returns the created resource.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -863,9 +863,9 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition) {
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -886,7 +886,7 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition) {
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -917,6 +917,9 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition) {
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -934,7 +937,9 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition) {
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -980,7 +985,7 @@ Response createAgentFromManifestWithResponse(BinaryData createAgentF
      * Updates the agent from a manifest by adding a new version if there are any changes to the agent definition.
      * If no changes, returns the existing agent version.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -995,9 +1000,9 @@ Response createAgentFromManifestWithResponse(BinaryData createAgentF
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1018,7 +1023,7 @@ Response createAgentFromManifestWithResponse(BinaryData createAgentF
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1049,6 +1054,9 @@ Response createAgentFromManifestWithResponse(BinaryData createAgentF
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1066,7 +1074,9 @@ Response createAgentFromManifestWithResponse(BinaryData createAgentF
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1113,7 +1123,7 @@ Response updateAgentFromManifestWithResponse(String agentName,
      *
      * Imports the provided manifest to create a new version for the specified agent.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1128,9 +1138,9 @@ Response updateAgentFromManifestWithResponse(String agentName,
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1144,7 +1154,7 @@ Response updateAgentFromManifestWithResponse(String agentName,
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1362,7 +1372,7 @@ public AgentVersionDetails createAgentVersionFromManifest(String agentName, Stri
      *
      * Retrieves the specified version of an agent by its agent name and version identifier.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1376,7 +1386,7 @@ public AgentVersionDetails createAgentVersionFromManifest(String agentName, Stri
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1499,7 +1509,7 @@ public PagedIterable listAgents(AgentKind kind, Integer limit, Pag
      * Query Parameters
      * NameTypeRequiredDescription
      * kindStringNoFilter agents by kind. If not provided, all agents are returned.
-     * Allowed values: "prompt", "hosted", "workflow", "external".
+     * Allowed values: "prompt", "hosted", "workflow", "external", "voice".
      * limitIntegerNoA limit on the number of objects to be returned. Limit can range
      * between 1 and 100, and the
      * default is 20.
@@ -1517,7 +1527,7 @@ public PagedIterable listAgents(AgentKind kind, Integer limit, Pag
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1538,7 +1548,7 @@ public PagedIterable listAgents(AgentKind kind, Integer limit, Pag
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1569,6 +1579,9 @@ public PagedIterable listAgents(AgentKind kind, Integer limit, Pag
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1586,7 +1599,9 @@ public PagedIterable listAgents(AgentKind kind, Integer limit, Pag
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1702,7 +1717,7 @@ AgentDetails createAgentFromManifest(String agentName, String manifestId, Map
      * You can add these to a request with {@link RequestOptions#addHeader}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1745,11 +1760,11 @@ public PagedIterable listAgentConversations(RequestOptions requestOp
      */
     @Generated
     @ServiceMethod(returns = ReturnType.COLLECTION)
-    public PagedIterable listAgentConversations() {
+    public PagedIterable listAgentConversations() {
         // Generated convenience method for listAgentConversations
         RequestOptions requestOptions = new RequestOptions();
         return serviceClient.listAgentConversations(requestOptions)
-            .mapPage(bodyItemValue -> bodyItemValue.toObject(Conversation.class));
+            .mapPage(bodyItemValue -> bodyItemValue.toObject(ConversationResource.class));
     }
 
     /**
@@ -1811,7 +1826,7 @@ public Response deleteAgentWithResponse(String agentName, RequestOptions r
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1852,7 +1867,7 @@ Response internalDeleteAgentWithResponse(String agentName, RequestOp
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1904,6 +1919,7 @@ AgentDetails createAgent(CreateAgentOptions options) {
                 .setMetadata(options.getMetadata())
                 .setDescription(options.getDescription())
                 .setBlueprintReference(options.getBlueprintReference())
+                .setDigitalWorkerType(options.getDigitalWorkerType())
                 .setDraft(options.isDraft())
                 .setAgentEndpoint(options.getAgentEndpoint())
                 .setAgentCard(options.getAgentCard());
@@ -2002,7 +2018,7 @@ public AgentVersionDetails createAgentVersion(String agentName, CreateAgentVersi
      */
     @Generated
     @ServiceMethod(returns = ReturnType.COLLECTION)
-    public PagedIterable listAgentConversations(Integer limit, PageOrder order, String after,
+    public PagedIterable listAgentConversations(Integer limit, PageOrder order, String after,
         String before, String agentName, String agentId, String userIdentity) {
         // Generated convenience method for listAgentConversations
         RequestOptions requestOptions = new RequestOptions();
@@ -2028,7 +2044,7 @@ public PagedIterable listAgentConversations(Integer limit, PageOrd
             requestOptions.setHeader(HttpHeaderName.fromString("x-ms-user-identity"), userIdentity);
         }
         return serviceClient.listAgentConversations(requestOptions)
-            .mapPage(bodyItemValue -> bodyItemValue.toObject(Conversation.class));
+            .mapPage(bodyItemValue -> bodyItemValue.toObject(ConversationResource.class));
     }
 
     /**
@@ -2090,7 +2106,8 @@ public PagedIterable listAgentConversations(Integer limit, PageOrd
      * If no changes, returns the existing agent version.
      *
      * @param agentName The name of the agent to retrieve.
-     * @param definition The agent definition. This can be a workflow, hosted agent, or a simple agent definition.
+     * @param definition The agent definition. This can be a prompt, workflow, hosted, external, or voice agent
+     * definition.
      * @param metadata Set of 16 key-value pairs that can be attached to an object. This can be
      * useful for storing additional information about the object in a structured
      * format, and querying for objects via API or the dashboard.
@@ -2131,7 +2148,7 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition, MapResponse Body Schema

- * + * *
      * {@code
      * {
@@ -2152,7 +2169,7 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition, Map createAgentFromCodeWithResponse(String agentName, String co
      * irrelevant).
      * Maximum upload size is 250 MB.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2276,7 +2298,7 @@ Response createAgentFromCodeWithResponse(String agentName, String co
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2307,6 +2329,9 @@ Response createAgentFromCodeWithResponse(String agentName, String co
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2324,7 +2349,9 @@ Response createAgentFromCodeWithResponse(String agentName, String co
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2377,7 +2404,7 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      *
      * Applies a merge-patch update to the specified agent endpoint configuration.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2393,6 +2420,9 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2410,6 +2440,7 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -2431,9 +2462,9 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2454,7 +2485,7 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2485,6 +2516,9 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2502,7 +2536,9 @@ Response updateAgentFromCodeWithResponse(String agentName, String co
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2555,7 +2591,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin
      * irrelevant).
      * Maximum upload size is 250 MB.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2569,7 +2605,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -2635,13 +2671,13 @@ Response createAgentVersionFromCodeWithResponse(String agentName, St
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Headers

* * @@ -2742,7 +2778,7 @@ public Response downloadAgentCodeWithResponse(String agentName, String fil * The endpoint resolves the backing agent version from `version_indicator` and * enforces session ownership using the provided user identity for session-mutating operations. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2753,9 +2789,9 @@ public Response downloadAgentCodeWithResponse(String agentName, String fil
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2793,7 +2829,7 @@ public Response createSessionWithResponse(String agentName, BinaryDa
      *
      * Retrieves the details of a hosted agent session by agent name and session identifier.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2893,7 +2929,7 @@ public Response stopSessionWithResponse(String agentName, String sessionId
      * 
Response Headers
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2954,7 +2990,7 @@ public PagedIterable listSessions(String agentName, RequestOptions r
      * The stream remains open until the client disconnects or the server
      * terminates the connection. Clients should handle reconnection as needed.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2990,15 +3026,15 @@ public Response getSessionLogStreamWithResponse(String agentName, St
      * Uploads binary file content to the specified path in the session sandbox.
      * The service stores the file relative to the session home directory and rejects payloads larger than 50 MB.
      * 

Request Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3082,7 +3118,7 @@ public Response uploadSessionFileWithResponse(String agentName, Stri
      * Downloads the file at the specified sandbox path as a binary stream.
      * The path is resolved relative to the session home directory.
      * 

Response Body Schema

- * + * *
      * {@code
      * BinaryData
@@ -3205,7 +3241,7 @@ public Response downloadSessionFileWithResponse(String agentName, String a
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4125,4 +4161,487 @@ public PagedIterable listAgentVersions(String agentName, In
         return serviceClient.listAgentVersions(agentName, requestOptions)
             .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentVersionDetails.class));
     }
+
+    /**
+     * Generate an agent
+     *
+     * Generates and creates an agent from kind-specific high-level inputs.
+     * The generated definition remains fully editable through the standard agent versioning operations.
+     * 

Request Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *     id: String (Required)
+     *     name: String (Required)
+     *     state: String(enabled/disabled) (Required)
+     *     state_source: String(agent_instance_identity/agent_blueprint) (Optional)
+     *     versions (Required): {
+     *         latest (Required): {
+     *             metadata (Required): {
+     *                 String: String (Required)
+     *             }
+     *             object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *             id: String (Required)
+     *             name: String (Required)
+     *             version: String (Required)
+     *             description: String (Optional)
+     *             created_at: long (Required)
+     *             definition (Required): {
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
+     *                 rai_config (Optional): {
+     *                     rai_policy_name: String (Required)
+     *                 }
+     *             }
+     *             draft: Boolean (Optional)
+     *             status: String(creating/active/failed/deleting/deleted) (Optional)
+     *             instance_identity (Optional): {
+     *                 principal_id: String (Required)
+     *                 client_id: String (Required)
+     *                 status: String(active/disabled) (Optional)
+     *             }
+     *             blueprint (Optional): (recursive schema, see blueprint above)
+     *             blueprint_reference (Optional): {
+     *                 type: String(ManagedAgentIdentityBlueprint) (Required)
+     *             }
+     *             agent_guid: String (Optional)
+     *         }
+     *     }
+     *     agent_endpoint (Optional): {
+     *         version_selector (Optional): {
+     *             version_selection_rules (Optional, Required on create): [
+     *                  (Optional, Required on create){
+     *                     type: String(FixedRatio) (Required)
+     *                     agent_version: String (Optional, Required on create)
+     *                 }
+     *             ]
+     *         }
+     *         protocol_configuration (Optional): {
+     *             activity (Optional): {
+     *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
+     *             }
+     *             responses (Optional): {
+     *             }
+     *             a2a (Optional): {
+     *             }
+     *             mcp (Optional): {
+     *             }
+     *             invocations (Optional): {
+     *             }
+     *             invocations_ws (Optional): {
+     *             }
+     *         }
+     *         authorization_schemes (Optional): [
+     *              (Optional){
+     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
+     *             }
+     *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
+     *     }
+     *     digital_worker_type: String(m365) (Optional)
+     *     instance_identity (Optional): (recursive schema, see instance_identity above)
+     *     blueprint (Optional): (recursive schema, see blueprint above)
+     *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
+     *     agent_card (Optional): {
+     *         version: String (Optional, Required on create)
+     *         description: String (Optional)
+     *         skills (Optional, Required on create): [
+     *              (Optional, Required on create){
+     *                 id: String (Optional, Required on create)
+     *                 name: String (Optional, Required on create)
+     *                 description: String (Optional)
+     *                 tags (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *                 examples (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *             }
+     *         ]
+     *     }
+     * }
+     * }
+     * 
+ * + * @param body The kind-specific inputs for generating and creating an agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response generateAgentWithResponse(BinaryData body, RequestOptions requestOptions) { + return this.serviceClient.generateAgentWithResponse(body, requestOptions); + } + + /** + * Publish an agent to Microsoft 365 + * + * Publishes a Foundry agent to Microsoft 365 / Microsoft Teams and returns the published title and + * Teams app ids. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to publish. + * @param publishAgentToMicrosoft365Request The publishAgentToMicrosoft365Request parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return response from publishing an agent to Microsoft 365 / Microsoft Teams along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response publishAgentToMicrosoft365WithResponse(String agentName, + BinaryData publishAgentToMicrosoft365Request, RequestOptions requestOptions) { + return this.serviceClient.publishAgentToMicrosoft365WithResponse(agentName, publishAgentToMicrosoft365Request, + requestOptions); + } + + /** + * Generate a Microsoft 365 app package + * + * Generates the Microsoft Teams app package (zip) for a Foundry agent from the supplied publish + * request, without publishing it. Returns the app package as `application/zip`. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent to generate the app package for. + * @param getMicrosoft365AppPackageRequest The getMicrosoft365AppPackageRequest parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getMicrosoft365AppPackageWithResponse(String agentName, + BinaryData getMicrosoft365AppPackageRequest, RequestOptions requestOptions) { + return this.serviceClient.getMicrosoft365AppPackageWithResponse(agentName, getMicrosoft365AppPackageRequest, + requestOptions); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
publishAsDigitalWorkerBooleanNoWhen true, returns defaults for publishing the + * agent as an autopilot (digital worker) agent.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     appPublishScope: String(Personal/Shared/Tenant) (Optional)
+     *     agentName: String (Optional)
+     *     agentDisplayName: String (Optional)
+     *     appRegistrationClientId: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     appVersion: String (Optional)
+     *     recommendedNextAppVersion: String (Optional)
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to get publish defaults for. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getMicrosoft365PublishDefaultsWithResponse(String agentName, + RequestOptions requestOptions) { + return this.serviceClient.getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions); + } + + /** + * Generate an agent + * + * Generates and creates an agent from kind-specific high-level inputs. + * The generated definition remains fully editable through the standard agent versioning operations. + * + * @param body The kind-specific inputs for generating and creating an agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentDetails generateAgent(BinaryData body) { + // Generated convenience method for generateAgentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return generateAgentWithResponse(body, requestOptions).getValue().toObject(AgentDetails.class); + } + + /** + * Publish an agent to Microsoft 365 + * + * Publishes a Foundry agent to Microsoft 365 / Microsoft Teams and returns the published title and + * Teams app ids. + * + * @param options Options for publishAgentToMicrosoft365 API. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return response from publishing an agent to Microsoft 365 / Microsoft Teams. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Microsoft365PublishResponse publishAgentToMicrosoft365(PublishAgentToMicrosoft365Options options) { + // Generated convenience method for publishAgentToMicrosoft365WithResponse + RequestOptions requestOptions = new RequestOptions(); + String agentName = options.getAgentName(); + PublishAgentToMicrosoft365Request publishAgentToMicrosoft365RequestObj + = new PublishAgentToMicrosoft365Request(options.getPublishScope()) + .setAgentDisplayName(options.getAgentDisplayName()) + .setBotServiceArmId(options.getBotServiceArmId()) + .setPublishAsAutopilot(options.isPublishAsAutopilot()) + .setAccessBoundaries(options.getAccessBoundaries()) + .setOptionalPermissionScopes(options.getOptionalPermissionScopes()) + .setCanRespondWithoutMention(options.isCanRespondWithoutMention()) + .setAppVersion(options.getAppVersion()) + .setShortDescription(options.getShortDescription()) + .setFullDescription(options.getFullDescription()) + .setDeveloperName(options.getDeveloperName()) + .setDeveloperWebsiteUrl(options.getDeveloperWebsiteUrl()) + .setPrivacyUrl(options.getPrivacyUrl()) + .setTermsOfUseUrl(options.getTermsOfUseUrl()) + .setColorIconBase64(options.getColorIconBase64()) + .setOutlineIconBase64(options.getOutlineIconBase64()); + BinaryData publishAgentToMicrosoft365Request = BinaryData.fromObject(publishAgentToMicrosoft365RequestObj); + return publishAgentToMicrosoft365WithResponse(agentName, publishAgentToMicrosoft365Request, requestOptions) + .getValue() + .toObject(Microsoft365PublishResponse.class); + } + + /** + * Generate a Microsoft 365 app package + * + * Generates the Microsoft Teams app package (zip) for a Foundry agent from the supplied publish + * request, without publishing it. Returns the app package as `application/zip`. + * + * @param options Options for getMicrosoft365AppPackage API. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData getMicrosoft365AppPackage(GetMicrosoft365AppPackageOptions options) { + // Generated convenience method for getMicrosoft365AppPackageWithResponse + RequestOptions requestOptions = new RequestOptions(); + String agentName = options.getAgentName(); + GetMicrosoft365AppPackageRequest getMicrosoft365AppPackageRequestObj + = new GetMicrosoft365AppPackageRequest(options.getPublishScope()) + .setAgentDisplayName(options.getAgentDisplayName()) + .setBotServiceArmId(options.getBotServiceArmId()) + .setPublishAsAutopilot(options.isPublishAsAutopilot()) + .setAccessBoundaries(options.getAccessBoundaries()) + .setOptionalPermissionScopes(options.getOptionalPermissionScopes()) + .setCanRespondWithoutMention(options.isCanRespondWithoutMention()) + .setAppVersion(options.getAppVersion()) + .setShortDescription(options.getShortDescription()) + .setFullDescription(options.getFullDescription()) + .setDeveloperName(options.getDeveloperName()) + .setDeveloperWebsiteUrl(options.getDeveloperWebsiteUrl()) + .setPrivacyUrl(options.getPrivacyUrl()) + .setTermsOfUseUrl(options.getTermsOfUseUrl()) + .setColorIconBase64(options.getColorIconBase64()) + .setOutlineIconBase64(options.getOutlineIconBase64()); + BinaryData getMicrosoft365AppPackageRequest = BinaryData.fromObject(getMicrosoft365AppPackageRequestObj); + return getMicrosoft365AppPackageWithResponse(agentName, getMicrosoft365AppPackageRequest, requestOptions) + .getValue(); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + * + * @param agentName The name of the agent to get publish defaults for. + * @param publishAsDigitalWorker When true, returns defaults for publishing the agent as an autopilot (digital + * worker) agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Microsoft365PublishDefaults getMicrosoft365PublishDefaults(String agentName, + Boolean publishAsDigitalWorker) { + // Generated convenience method for getMicrosoft365PublishDefaultsWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (publishAsDigitalWorker != null) { + requestOptions.addQueryParam("publishAsDigitalWorker", String.valueOf(publishAsDigitalWorker), false); + } + return getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions).getValue() + .toObject(Microsoft365PublishDefaults.class); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + * + * @param agentName The name of the agent to get publish defaults for. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Microsoft365PublishDefaults getMicrosoft365PublishDefaults(String agentName) { + // Generated convenience method for getMicrosoft365PublishDefaultsWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions).getValue() + .toObject(Microsoft365PublishDefaults.class); + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java index d9a4935e69ff..675035be61df 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java @@ -62,10 +62,14 @@ serviceClients = { BetaMemoryStoresClient.class, BetaAgentsClient.class, + BetaVoiceAgentWebSocketClient.class, + BetaAgentEndpointConversationsClient.class, AgentsClient.class, ToolboxesClient.class, BetaMemoryStoresAsyncClient.class, BetaAgentsAsyncClient.class, + BetaVoiceAgentWebSocketAsyncClient.class, + BetaAgentEndpointConversationsAsyncClient.class, AgentsAsyncClient.class, ToolboxesAsyncClient.class }) public final class AgentsClientBuilder @@ -681,4 +685,44 @@ public ToolboxesAsyncClient buildToolboxesAsyncClient() { public ToolboxesClient buildToolboxesClient() { return new ToolboxesClient(buildInnerClient().getToolboxes()); } + + /** + * Builds an instance of BetaVoiceAgentWebSocketAsyncClient class. + * + * @return an instance of BetaVoiceAgentWebSocketAsyncClient. + */ + @Generated + public BetaVoiceAgentWebSocketAsyncClient buildBetaVoiceAgentWebSocketAsyncClient() { + return new BetaVoiceAgentWebSocketAsyncClient(buildInnerClient().getBetaVoiceAgentWebSockets()); + } + + /** + * Builds an instance of BetaAgentEndpointConversationsAsyncClient class. + * + * @return an instance of BetaAgentEndpointConversationsAsyncClient. + */ + @Generated + public BetaAgentEndpointConversationsAsyncClient buildBetaAgentEndpointConversationsAsyncClient() { + return new BetaAgentEndpointConversationsAsyncClient(buildInnerClient().getBetaAgentEndpointConversations()); + } + + /** + * Builds an instance of BetaVoiceAgentWebSocketClient class. + * + * @return an instance of BetaVoiceAgentWebSocketClient. + */ + @Generated + public BetaVoiceAgentWebSocketClient buildBetaVoiceAgentWebSocketClient() { + return new BetaVoiceAgentWebSocketClient(buildInnerClient().getBetaVoiceAgentWebSockets()); + } + + /** + * Builds an instance of BetaAgentEndpointConversationsClient class. + * + * @return an instance of BetaAgentEndpointConversationsClient. + */ + @Generated + public BetaAgentEndpointConversationsClient buildBetaAgentEndpointConversationsClient() { + return new BetaAgentEndpointConversationsClient(buildInnerClient().getBetaAgentEndpointConversations()); + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java new file mode 100644 index 000000000000..63d1c898d058 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java @@ -0,0 +1,1419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents; + +import com.azure.ai.agents.implementation.BetaAgentEndpointConversationsImpl; +import com.azure.ai.agents.implementation.utils.Beta; +import com.azure.ai.agents.models.PageOrder; +import com.azure.ai.agents.models.RealtimeConversationItem; +import com.azure.ai.agents.models.VoiceConversation; +import com.azure.ai.agents.models.VoiceItemAudioResponse; +import com.azure.ai.agents.models.VoiceRecordingResponse; +import com.azure.ai.agents.models.VoiceResponse; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.PagedFlux; +import com.azure.core.http.rest.PagedResponse; +import com.azure.core.http.rest.PagedResponseBase; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.BinaryData; +import com.azure.core.util.FluxUtil; +import java.util.stream.Collectors; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +/** + * Initializes a new instance of the asynchronous AgentsClient type. + */ +@ServiceClient(builder = AgentsClientBuilder.class, isAsync = true) +@Beta(warningText = "This class is in preview and may change in future releases.") +public final class BetaAgentEndpointConversationsAsyncClient { + + @Generated + private final BetaAgentEndpointConversationsImpl serviceClient; + + /** + * Initializes an instance of BetaAgentEndpointConversationsAsyncClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + BetaAgentEndpointConversationsAsyncClient(BetaAgentEndpointConversationsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversations(String agentName, RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationsAsync(agentName, requestOptions); + } + + /** + * Get a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist along with + * {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationWithResponseAsync(agentName, conversationId, requestOptions); + } + + /** + * Delete a voice agent conversation + * + * Deletes a conversation and all of its stored data — responses, items, and any audio (cascade). This is + * the customer's explicit data-deletion control for voice conversations. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to delete. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> deleteAgentConversationWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.deleteAgentConversationWithResponseAsync(agentName, conversationId, requestOptions); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponses(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationResponsesAsync(agentName, conversationId, requestOptions); + } + + /** + * Get a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. Returns `404` when the conversation or response was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationResponseWithResponse(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationResponseWithResponseAsync(agentName, conversationId, responseId, + requestOptions); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponseItems(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationResponseItemsAsync(agentName, conversationId, responseId, + requestOptions); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationItems(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationItemsAsync(agentName, conversationId, requestOptions); + } + + /** + * Get a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. An + * `input_audio`/`output_audio` content part indicates that audio is available for the item; the canonical per-item + * audio metadata is the `/items/{item_id}/audio` resource, and the bytes are streamed by + * `/items/{item_id}/audio/content`. Returns `404` when the conversation or item was not persisted + * (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript along with + * {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemWithResponse(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemWithResponseAsync(agentName, conversationId, itemId, + requestOptions); + } + + /** + * Get a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemAudioWithResponse(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemAudioWithResponseAsync(agentName, conversationId, itemId, + requestOptions); + } + + /** + * Stream a voice agent conversation item's audio + * + * Streams a single conversation item's audio as a WAV (`audio/wav`) byte stream through the service (no SAS + * URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) recordings the + * bytes are not proxied — the caller must download directly from customer storage using the `blob_uri` + * returned by the item's `/audio` metadata route — so this route returns `409 Conflict` for BYOS recordings. + * Returns `404` when the conversation, item, or its audio was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemAudioContentWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemAudioContentWithResponseAsync(agentName, conversationId, + itemId, requestOptions); + } + + /** + * Get a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). The common metadata (format, sample rate, channels, channel layout, duration) is returned + * for both Foundry-managed and bring-your-own-storage (BYOS) recordings; for BYOS the response additionally + * includes `blob_uri`, the URI of the recording in the customer's own storage (no SAS) that the customer downloads + * with their own credentials. The recording is built once from the per-turn segments after persistence + * finalization succeeds. While the conversation is `in_progress`, this route returns retriable `409 Conflict` + * with `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, metadata is available subject to the existing BYOS behavior. Requires the + * conversation to have persisted audio (`store = true`); otherwise returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     format: String(wav) (Required)
+     *     sample_rate: int (Required)
+     *     channels: int (Required)
+     *     channel_layout (Required): {
+     *         left: String (Required)
+     *         right: String (Required)
+     *     }
+     *     duration_ms: long (Required)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right) along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationAudioWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationAudioWithResponseAsync(agentName, conversationId, requestOptions); + } + + /** + * Stream a voice agent conversation's merged recording + * + * Streams the whole-call merged stereo recording as a WAV (`audio/wav`) byte stream through the service + * (no SAS URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) + * recordings the bytes are not proxied — the caller must download directly from customer storage using the + * `blob_uri` returned by the metadata route — so this route returns `409 Conflict` for BYOS recordings. + * While the conversation is `in_progress`, this route returns retriable `409 Conflict` with + * `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, content is available subject to the existing BYOS behavior. A conversation + * without persisted audio (`store = false`) returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationAudioContentWithResponse(String agentName, + String conversationId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationAudioContentWithResponseAsync(agentName, conversationId, + requestOptions); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + * + * @param agentName The name of the agent. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversations(String agentName, Integer limit, PageOrder order, + String after, String before) { + // Generated convenience method for listAgentConversations + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + PagedFlux pagedFluxResponse = listAgentConversations(agentName, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(VoiceConversation.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + * + * @param agentName The name of the agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversations(String agentName) { + // Generated convenience method for listAgentConversations + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listAgentConversations(agentName, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(VoiceConversation.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Get a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to retrieve. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist on successful + * completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversation(String agentName, String conversationId) { + // Generated convenience method for getAgentConversationWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationWithResponse(agentName, conversationId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(VoiceConversation.class)); + } + + /** + * Delete a voice agent conversation + * + * Deletes a conversation and all of its stored data — responses, items, and any audio (cascade). This is + * the customer's explicit data-deletion control for voice conversations. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to delete. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return A {@link Mono} that completes when a successful response is received. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono deleteAgentConversation(String agentName, String conversationId) { + // Generated convenience method for deleteAgentConversationWithResponse + RequestOptions requestOptions = new RequestOptions(); + return deleteAgentConversationWithResponse(agentName, conversationId, requestOptions).flatMap(FluxUtil::toMono); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponses(String agentName, String conversationId, + Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listAgentConversationResponses + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + PagedFlux pagedFluxResponse + = listAgentConversationResponses(agentName, conversationId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(VoiceResponse.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponses(String agentName, String conversationId) { + // Generated convenience method for listAgentConversationResponses + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse + = listAgentConversationResponses(agentName, conversationId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(VoiceResponse.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Get a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. Returns `404` when the conversation or response was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response to retrieve. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationResponse(String agentName, String conversationId, + String responseId) { + // Generated convenience method for getAgentConversationResponseWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationResponseWithResponse(agentName, conversationId, responseId, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(VoiceResponse.class)); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponseItems(String agentName, + String conversationId, String responseId, Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listAgentConversationResponseItems + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + PagedFlux pagedFluxResponse + = listAgentConversationResponseItems(agentName, conversationId, responseId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux + .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(RealtimeConversationItem.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponseItems(String agentName, + String conversationId, String responseId) { + // Generated convenience method for listAgentConversationResponseItems + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse + = listAgentConversationResponseItems(agentName, conversationId, responseId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux + .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(RealtimeConversationItem.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationItems(String agentName, String conversationId, + Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listAgentConversationItems + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + PagedFlux pagedFluxResponse = listAgentConversationItems(agentName, conversationId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux + .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(RealtimeConversationItem.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationItems(String agentName, String conversationId) { + // Generated convenience method for listAgentConversationItems + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listAgentConversationItems(agentName, conversationId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux + .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(RealtimeConversationItem.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Get a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. An + * `input_audio`/`output_audio` content part indicates that audio is available for the item; the canonical per-item + * audio metadata is the `/items/{item_id}/audio` resource, and the bytes are streamed by + * `/items/{item_id}/audio/content`. Returns `404` when the conversation or item was not persisted + * (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item to retrieve. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript on successful + * completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationItem(String agentName, String conversationId, + String itemId) { + // Generated convenience method for getAgentConversationItemWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemWithResponse(agentName, conversationId, itemId, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(RealtimeConversationItem.class)); + } + + /** + * Get a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio metadata is retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationItemAudio(String agentName, String conversationId, + String itemId) { + // Generated convenience method for getAgentConversationItemAudioWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemAudioWithResponse(agentName, conversationId, itemId, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(VoiceItemAudioResponse.class)); + } + + /** + * Stream a voice agent conversation item's audio + * + * Streams a single conversation item's audio as a WAV (`audio/wav`) byte stream through the service (no SAS + * URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) recordings the + * bytes are not proxied — the caller must download directly from customer storage using the `blob_uri` + * returned by the item's `/audio` metadata route — so this route returns `409 Conflict` for BYOS recordings. + * Returns `404` when the conversation, item, or its audio was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio is streamed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response body on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationItemAudioContent(String agentName, String conversationId, + String itemId) { + // Generated convenience method for getAgentConversationItemAudioContentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemAudioContentWithResponse(agentName, conversationId, itemId, requestOptions) + .flatMap(FluxUtil::toMono); + } + + /** + * Get a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). The common metadata (format, sample rate, channels, channel layout, duration) is returned + * for both Foundry-managed and bring-your-own-storage (BYOS) recordings; for BYOS the response additionally + * includes `blob_uri`, the URI of the recording in the customer's own storage (no SAS) that the customer downloads + * with their own credentials. The recording is built once from the per-turn segments after persistence + * finalization succeeds. While the conversation is `in_progress`, this route returns retriable `409 Conflict` + * with `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, metadata is available subject to the existing BYOS behavior. Requires the + * conversation to have persisted audio (`store = true`); otherwise returns `404`. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording metadata is retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right) on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationAudio(String agentName, String conversationId) { + // Generated convenience method for getAgentConversationAudioWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationAudioWithResponse(agentName, conversationId, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(VoiceRecordingResponse.class)); + } + + /** + * Stream a voice agent conversation's merged recording + * + * Streams the whole-call merged stereo recording as a WAV (`audio/wav`) byte stream through the service + * (no SAS URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) + * recordings the bytes are not proxied — the caller must download directly from customer storage using the + * `blob_uri` returned by the metadata route — so this route returns `409 Conflict` for BYOS recordings. + * While the conversation is `in_progress`, this route returns retriable `409 Conflict` with + * `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, content is available subject to the existing BYOS behavior. A conversation + * without persisted audio (`store = false`) returns `404`. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording is streamed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response body on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationAudioContent(String agentName, String conversationId) { + // Generated convenience method for getAgentConversationAudioContentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationAudioContentWithResponse(agentName, conversationId, requestOptions) + .flatMap(FluxUtil::toMono); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java new file mode 100644 index 000000000000..131e96461eab --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java @@ -0,0 +1,1307 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents; + +import com.azure.ai.agents.implementation.BetaAgentEndpointConversationsImpl; +import com.azure.ai.agents.implementation.utils.Beta; +import com.azure.ai.agents.models.PageOrder; +import com.azure.ai.agents.models.RealtimeConversationItem; +import com.azure.ai.agents.models.VoiceConversation; +import com.azure.ai.agents.models.VoiceItemAudioResponse; +import com.azure.ai.agents.models.VoiceRecordingResponse; +import com.azure.ai.agents.models.VoiceResponse; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.PagedIterable; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.BinaryData; + +/** + * Initializes a new instance of the synchronous AgentsClient type. + */ +@ServiceClient(builder = AgentsClientBuilder.class) +@Beta(warningText = "This class is in preview and may change in future releases.") +public final class BetaAgentEndpointConversationsClient { + + @Generated + private final BetaAgentEndpointConversationsImpl serviceClient; + + /** + * Initializes an instance of BetaAgentEndpointConversationsClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + BetaAgentEndpointConversationsClient(BetaAgentEndpointConversationsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversations(String agentName, RequestOptions requestOptions) { + return this.serviceClient.listAgentConversations(agentName, requestOptions); + } + + /** + * Get a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist along with + * {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationWithResponse(agentName, conversationId, requestOptions); + } + + /** + * Delete a voice agent conversation + * + * Deletes a conversation and all of its stored data — responses, items, and any audio (cascade). This is + * the customer's explicit data-deletion control for voice conversations. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to delete. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response deleteAgentConversationWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.deleteAgentConversationWithResponse(agentName, conversationId, requestOptions); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponses(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationResponses(agentName, conversationId, requestOptions); + } + + /** + * Get a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. Returns `404` when the conversation or response was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationResponseWithResponse(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationResponseWithResponse(agentName, conversationId, responseId, + requestOptions); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponseItems(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationResponseItems(agentName, conversationId, responseId, + requestOptions); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationItems(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.listAgentConversationItems(agentName, conversationId, requestOptions); + } + + /** + * Get a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. An + * `input_audio`/`output_audio` content part indicates that audio is available for the item; the canonical per-item + * audio metadata is the `/items/{item_id}/audio` resource, and the bytes are streamed by + * `/items/{item_id}/audio/content`. Returns `404` when the conversation or item was not persisted + * (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript along with + * {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemWithResponse(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemWithResponse(agentName, conversationId, itemId, + requestOptions); + } + + /** + * Get a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemAudioWithResponse(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemAudioWithResponse(agentName, conversationId, itemId, + requestOptions); + } + + /** + * Stream a voice agent conversation item's audio + * + * Streams a single conversation item's audio as a WAV (`audio/wav`) byte stream through the service (no SAS + * URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) recordings the + * bytes are not proxied — the caller must download directly from customer storage using the `blob_uri` + * returned by the item's `/audio` metadata route — so this route returns `409 Conflict` for BYOS recordings. + * Returns `404` when the conversation, item, or its audio was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemAudioContentWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemAudioContentWithResponse(agentName, conversationId, itemId, + requestOptions); + } + + /** + * Get a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). The common metadata (format, sample rate, channels, channel layout, duration) is returned + * for both Foundry-managed and bring-your-own-storage (BYOS) recordings; for BYOS the response additionally + * includes `blob_uri`, the URI of the recording in the customer's own storage (no SAS) that the customer downloads + * with their own credentials. The recording is built once from the per-turn segments after persistence + * finalization succeeds. While the conversation is `in_progress`, this route returns retriable `409 Conflict` + * with `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, metadata is available subject to the existing BYOS behavior. Requires the + * conversation to have persisted audio (`store = true`); otherwise returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     format: String(wav) (Required)
+     *     sample_rate: int (Required)
+     *     channels: int (Required)
+     *     channel_layout (Required): {
+     *         left: String (Required)
+     *         right: String (Required)
+     *     }
+     *     duration_ms: long (Required)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right) along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationAudioWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationAudioWithResponse(agentName, conversationId, requestOptions); + } + + /** + * Stream a voice agent conversation's merged recording + * + * Streams the whole-call merged stereo recording as a WAV (`audio/wav`) byte stream through the service + * (no SAS URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) + * recordings the bytes are not proxied — the caller must download directly from customer storage using the + * `blob_uri` returned by the metadata route — so this route returns `409 Conflict` for BYOS recordings. + * While the conversation is `in_progress`, this route returns retriable `409 Conflict` with + * `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, content is available subject to the existing BYOS behavior. A conversation + * without persisted audio (`store = false`) returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationAudioContentWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationAudioContentWithResponse(agentName, conversationId, + requestOptions); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + * + * @param agentName The name of the agent. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversations(String agentName, Integer limit, PageOrder order, + String after, String before) { + // Generated convenience method for listAgentConversations + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return serviceClient.listAgentConversations(agentName, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(VoiceConversation.class)); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + * + * @param agentName The name of the agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversations(String agentName) { + // Generated convenience method for listAgentConversations + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentConversations(agentName, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(VoiceConversation.class)); + } + + /** + * Get a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to retrieve. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public VoiceConversation getAgentConversation(String agentName, String conversationId) { + // Generated convenience method for getAgentConversationWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationWithResponse(agentName, conversationId, requestOptions).getValue() + .toObject(VoiceConversation.class); + } + + /** + * Delete a voice agent conversation + * + * Deletes a conversation and all of its stored data — responses, items, and any audio (cascade). This is + * the customer's explicit data-deletion control for voice conversations. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to delete. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public void deleteAgentConversation(String agentName, String conversationId) { + // Generated convenience method for deleteAgentConversationWithResponse + RequestOptions requestOptions = new RequestOptions(); + deleteAgentConversationWithResponse(agentName, conversationId, requestOptions).getValue(); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponses(String agentName, String conversationId, + Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listAgentConversationResponses + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return serviceClient.listAgentConversationResponses(agentName, conversationId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(VoiceResponse.class)); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponses(String agentName, String conversationId) { + // Generated convenience method for listAgentConversationResponses + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentConversationResponses(agentName, conversationId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(VoiceResponse.class)); + } + + /** + * Get a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. Returns `404` when the conversation or response was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response to retrieve. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public VoiceResponse getAgentConversationResponse(String agentName, String conversationId, String responseId) { + // Generated convenience method for getAgentConversationResponseWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationResponseWithResponse(agentName, conversationId, responseId, requestOptions) + .getValue() + .toObject(VoiceResponse.class); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponseItems(String agentName, + String conversationId, String responseId, Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listAgentConversationResponseItems + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return serviceClient.listAgentConversationResponseItems(agentName, conversationId, responseId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(RealtimeConversationItem.class)); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponseItems(String agentName, + String conversationId, String responseId) { + // Generated convenience method for listAgentConversationResponseItems + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentConversationResponseItems(agentName, conversationId, responseId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(RealtimeConversationItem.class)); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationItems(String agentName, String conversationId, + Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listAgentConversationItems + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return serviceClient.listAgentConversationItems(agentName, conversationId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(RealtimeConversationItem.class)); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationItems(String agentName, String conversationId) { + // Generated convenience method for listAgentConversationItems + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentConversationItems(agentName, conversationId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(RealtimeConversationItem.class)); + } + + /** + * Get a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. An + * `input_audio`/`output_audio` content part indicates that audio is available for the item; the canonical per-item + * audio metadata is the `/items/{item_id}/audio` resource, and the bytes are streamed by + * `/items/{item_id}/audio/content`. Returns `404` when the conversation or item was not persisted + * (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item to retrieve. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public RealtimeConversationItem getAgentConversationItem(String agentName, String conversationId, String itemId) { + // Generated convenience method for getAgentConversationItemWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemWithResponse(agentName, conversationId, itemId, requestOptions).getValue() + .toObject(RealtimeConversationItem.class); + } + + /** + * Get a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio metadata is retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public VoiceItemAudioResponse getAgentConversationItemAudio(String agentName, String conversationId, + String itemId) { + // Generated convenience method for getAgentConversationItemAudioWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemAudioWithResponse(agentName, conversationId, itemId, requestOptions).getValue() + .toObject(VoiceItemAudioResponse.class); + } + + /** + * Stream a voice agent conversation item's audio + * + * Streams a single conversation item's audio as a WAV (`audio/wav`) byte stream through the service (no SAS + * URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) recordings the + * bytes are not proxied — the caller must download directly from customer storage using the `blob_uri` + * returned by the item's `/audio` metadata route — so this route returns `409 Conflict` for BYOS recordings. + * Returns `404` when the conversation, item, or its audio was not persisted (`store = false`). + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio is streamed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData getAgentConversationItemAudioContent(String agentName, String conversationId, String itemId) { + // Generated convenience method for getAgentConversationItemAudioContentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemAudioContentWithResponse(agentName, conversationId, itemId, requestOptions) + .getValue(); + } + + /** + * Get a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). The common metadata (format, sample rate, channels, channel layout, duration) is returned + * for both Foundry-managed and bring-your-own-storage (BYOS) recordings; for BYOS the response additionally + * includes `blob_uri`, the URI of the recording in the customer's own storage (no SAS) that the customer downloads + * with their own credentials. The recording is built once from the per-turn segments after persistence + * finalization succeeds. While the conversation is `in_progress`, this route returns retriable `409 Conflict` + * with `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, metadata is available subject to the existing BYOS behavior. Requires the + * conversation to have persisted audio (`store = true`); otherwise returns `404`. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording metadata is retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public VoiceRecordingResponse getAgentConversationAudio(String agentName, String conversationId) { + // Generated convenience method for getAgentConversationAudioWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationAudioWithResponse(agentName, conversationId, requestOptions).getValue() + .toObject(VoiceRecordingResponse.class); + } + + /** + * Stream a voice agent conversation's merged recording + * + * Streams the whole-call merged stereo recording as a WAV (`audio/wav`) byte stream through the service + * (no SAS URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) + * recordings the bytes are not proxied — the caller must download directly from customer storage using the + * `blob_uri` returned by the metadata route — so this route returns `409 Conflict` for BYOS recordings. + * While the conversation is `in_progress`, this route returns retriable `409 Conflict` with + * `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, content is available subject to the existing BYOS behavior. A conversation + * without persisted audio (`store = false`) returns `404`. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording is streamed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData getAgentConversationAudioContent(String agentName, String conversationId) { + // Generated convenience method for getAgentConversationAudioContentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationAudioContentWithResponse(agentName, conversationId, requestOptions).getValue(); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java new file mode 100644 index 000000000000..af6c1c0e352b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java @@ -0,0 +1,183 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents; + +import com.azure.ai.agents.implementation.BetaVoiceAgentWebSocketsImpl; +import com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys; +import com.azure.ai.agents.implementation.utils.Beta; +import com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.HttpHeaderName; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.FluxUtil; +import reactor.core.publisher.Mono; + +/** + * Initializes a new instance of the asynchronous AgentsClient type. + */ +@ServiceClient(builder = AgentsClientBuilder.class, isAsync = true) +@Beta(warningText = "This class is in preview and may change in future releases.") +public final class BetaVoiceAgentWebSocketAsyncClient { + + @Generated + private final BetaVoiceAgentWebSocketsImpl serviceClient; + + /** + * Initializes an instance of BetaVoiceAgentWebSocketAsyncClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + BetaVoiceAgentWebSocketAsyncClient(BetaVoiceAgentWebSocketsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + *

Query Parameters

+ * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
foundry_featuresStringNoA query alternative to the `Foundry-Features` header + * for clients that cannot set headers during a + * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is + * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", + * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview".
storeBooleanNoWhether to persist the conversation created by this WebSocket + * session. If omitted, the service honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only.
x-agent-version-overrideStringNoSelects a specific version of the voice agent + * for this session.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Sec-WebSocket-ProtocolStringNoThe requested WebSocket subprotocol. Omit this + * header or request exactly `realtime`. Allowed values: "realtime".
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
Sec-WebSocket-ProtocolStringThe negotiated WebSocket subprotocol. Present only when the + * client requests `realtime`.
+ * + * @param agentName The name of the voice agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> connectVoiceAgentWithResponse(String agentName, RequestOptions requestOptions) { + return this.serviceClient.connectVoiceAgentWithResponseAsync(agentName, requestOptions); + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * + * @param agentName The name of the voice agent. + * @param foundryFeaturesQuery A query alternative to the `Foundry-Features` header for clients that cannot set + * headers during a + * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is + * required. + * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service + * honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only. + * @param agentVersionOverride Selects a specific version of the voice agent for this session. + * @param websocketSubprotocol The requested WebSocket subprotocol. Omit this header or request exactly `realtime`. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return A {@link Mono} that completes when a successful response is received. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono connectVoiceAgent(String agentName, AgentDefinitionOptInKeys foundryFeaturesQuery, Boolean store, + String agentVersionOverride, VoiceAgentWebSocketSubprotocol websocketSubprotocol) { + // Generated convenience method for connectVoiceAgentWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (foundryFeaturesQuery != null) { + requestOptions.addQueryParam("foundry_features", foundryFeaturesQuery.toString(), false); + } + if (store != null) { + requestOptions.addQueryParam("store", String.valueOf(store), false); + } + if (agentVersionOverride != null) { + requestOptions.addQueryParam("x-agent-version-override", agentVersionOverride, false); + } + if (websocketSubprotocol != null) { + requestOptions.setHeader(HttpHeaderName.fromString("Sec-WebSocket-Protocol"), + websocketSubprotocol.toString()); + } + return connectVoiceAgentWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono); + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * + * @param agentName The name of the voice agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return A {@link Mono} that completes when a successful response is received. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono connectVoiceAgent(String agentName) { + // Generated convenience method for connectVoiceAgentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return connectVoiceAgentWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java new file mode 100644 index 000000000000..1737985bf8fd --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java @@ -0,0 +1,179 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents; + +import com.azure.ai.agents.implementation.BetaVoiceAgentWebSocketsImpl; +import com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys; +import com.azure.ai.agents.implementation.utils.Beta; +import com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.HttpHeaderName; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; + +/** + * Initializes a new instance of the synchronous AgentsClient type. + */ +@ServiceClient(builder = AgentsClientBuilder.class) +@Beta(warningText = "This class is in preview and may change in future releases.") +public final class BetaVoiceAgentWebSocketClient { + + @Generated + private final BetaVoiceAgentWebSocketsImpl serviceClient; + + /** + * Initializes an instance of BetaVoiceAgentWebSocketClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + BetaVoiceAgentWebSocketClient(BetaVoiceAgentWebSocketsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + *

Query Parameters

+ * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
foundry_featuresStringNoA query alternative to the `Foundry-Features` header + * for clients that cannot set headers during a + * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is + * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", + * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview".
storeBooleanNoWhether to persist the conversation created by this WebSocket + * session. If omitted, the service honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only.
x-agent-version-overrideStringNoSelects a specific version of the voice agent + * for this session.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Sec-WebSocket-ProtocolStringNoThe requested WebSocket subprotocol. Omit this + * header or request exactly `realtime`. Allowed values: "realtime".
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
Sec-WebSocket-ProtocolStringThe negotiated WebSocket subprotocol. Present only when the + * client requests `realtime`.
+ * + * @param agentName The name of the voice agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response connectVoiceAgentWithResponse(String agentName, RequestOptions requestOptions) { + return this.serviceClient.connectVoiceAgentWithResponse(agentName, requestOptions); + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * + * @param agentName The name of the voice agent. + * @param foundryFeaturesQuery A query alternative to the `Foundry-Features` header for clients that cannot set + * headers during a + * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is + * required. + * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service + * honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only. + * @param agentVersionOverride Selects a specific version of the voice agent for this session. + * @param websocketSubprotocol The requested WebSocket subprotocol. Omit this header or request exactly `realtime`. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public void connectVoiceAgent(String agentName, AgentDefinitionOptInKeys foundryFeaturesQuery, Boolean store, + String agentVersionOverride, VoiceAgentWebSocketSubprotocol websocketSubprotocol) { + // Generated convenience method for connectVoiceAgentWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (foundryFeaturesQuery != null) { + requestOptions.addQueryParam("foundry_features", foundryFeaturesQuery.toString(), false); + } + if (store != null) { + requestOptions.addQueryParam("store", String.valueOf(store), false); + } + if (agentVersionOverride != null) { + requestOptions.addQueryParam("x-agent-version-override", agentVersionOverride, false); + } + if (websocketSubprotocol != null) { + requestOptions.setHeader(HttpHeaderName.fromString("Sec-WebSocket-Protocol"), + websocketSubprotocol.toString()); + } + connectVoiceAgentWithResponse(agentName, requestOptions).getValue(); + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * + * @param agentName The name of the voice agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public void connectVoiceAgent(String agentName) { + // Generated convenience method for connectVoiceAgentWithResponse + RequestOptions requestOptions = new RequestOptions(); + connectVoiceAgentWithResponse(agentName, requestOptions).getValue(); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java index dfdb86992fb5..756f3fc88ed5 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java @@ -57,7 +57,7 @@ public final class ToolboxesAsyncClient { * * Creates a new toolbox version, provisioning the toolbox itself if it does not already exist. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -67,7 +67,7 @@ public final class ToolboxesAsyncClient {
      *     }
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -91,9 +91,9 @@ public final class ToolboxesAsyncClient {
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -107,7 +107,7 @@ public final class ToolboxesAsyncClient {
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -154,7 +154,7 @@ public Mono> createToolboxVersionWithResponse(String name,
      *
      * Retrieves the specified toolbox and its current configuration.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -205,7 +205,7 @@ public Mono> getToolboxWithResponse(String name, RequestOpt
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -254,7 +254,7 @@ public PagedFlux listToolboxes(RequestOptions requestOptions) {
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -268,7 +268,7 @@ public PagedFlux listToolboxes(RequestOptions requestOptions) {
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -312,7 +312,7 @@ public PagedFlux listToolboxVersions(String name, RequestOptions req
      *
      * Retrieves the specified version of a toolbox by name and version identifier.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -326,7 +326,7 @@ public PagedFlux listToolboxVersions(String name, RequestOptions req
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -372,7 +372,7 @@ public Mono> getToolboxVersionWithResponse(String name, Str
      *
      * Updates the toolbox's default version pointer to the specified version.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -380,9 +380,9 @@ public Mono> getToolboxVersionWithResponse(String name, Str
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesClient.java
index 6f087ae6e009..b540c4c23d4e 100644
--- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesClient.java
+++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/ToolboxesClient.java
@@ -51,7 +51,7 @@ public final class ToolboxesClient {
      *
      * Creates a new toolbox version, provisioning the toolbox itself if it does not already exist.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -61,7 +61,7 @@ public final class ToolboxesClient {
      *     }
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -85,9 +85,9 @@ public final class ToolboxesClient {
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -101,7 +101,7 @@ public final class ToolboxesClient {
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -147,7 +147,7 @@ public Response createToolboxVersionWithResponse(String name, Binary
      *
      * Retrieves the specified toolbox and its current configuration.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -197,7 +197,7 @@ public Response getToolboxWithResponse(String name, RequestOptions r
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -246,7 +246,7 @@ public PagedIterable listToolboxes(RequestOptions requestOptions) {
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -260,7 +260,7 @@ public PagedIterable listToolboxes(RequestOptions requestOptions) {
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -304,7 +304,7 @@ public PagedIterable listToolboxVersions(String name, RequestOptions
      *
      * Retrieves the specified version of a toolbox by name and version identifier.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -318,7 +318,7 @@ public PagedIterable listToolboxVersions(String name, RequestOptions
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -364,7 +364,7 @@ public Response getToolboxVersionWithResponse(String name, String ve
      *
      * Updates the toolbox's default version pointer to the specified version.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -372,9 +372,9 @@ public Response getToolboxVersionWithResponse(String name, String ve
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java
index d5d107362708..41ad2bcebaea 100644
--- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java
+++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java
@@ -31,7 +31,7 @@ public final class AgentsClientImpl {
      * If you only have one Project in your Foundry Hub, or to target the default Project
      * in your Hub, use the form
      * "https://{ai-services-account-name}.services.ai.azure.com/api/projects/_project".
-     * 
+     *
      * @return the endpoint value.
      */
     public String getEndpoint() {
@@ -45,7 +45,7 @@ public String getEndpoint() {
 
     /**
      * Gets Service version.
-     * 
+     *
      * @return the serviceVersion value.
      */
     public AgentsServiceVersion getServiceVersion() {
@@ -59,7 +59,7 @@ public AgentsServiceVersion getServiceVersion() {
 
     /**
      * Gets The HTTP pipeline to send requests through.
-     * 
+     *
      * @return the httpPipeline value.
      */
     public HttpPipeline getHttpPipeline() {
@@ -73,7 +73,7 @@ public HttpPipeline getHttpPipeline() {
 
     /**
      * Gets The serializer to serialize an object into a string.
-     * 
+     *
      * @return the serializerAdapter value.
      */
     public SerializerAdapter getSerializerAdapter() {
@@ -87,7 +87,7 @@ public SerializerAdapter getSerializerAdapter() {
 
     /**
      * Gets the BetaMemoryStoresImpl object to access its operations.
-     * 
+     *
      * @return the BetaMemoryStoresImpl object.
      */
     public BetaMemoryStoresImpl getBetaMemoryStores() {
@@ -101,13 +101,41 @@ public BetaMemoryStoresImpl getBetaMemoryStores() {
 
     /**
      * Gets the BetaAgentsImpl object to access its operations.
-     * 
+     *
      * @return the BetaAgentsImpl object.
      */
     public BetaAgentsImpl getBetaAgents() {
         return this.betaAgents;
     }
 
+    /**
+     * The BetaVoiceAgentWebSocketsImpl object to access its operations.
+     */
+    private final BetaVoiceAgentWebSocketsImpl betaVoiceAgentWebSockets;
+
+    /**
+     * Gets the BetaVoiceAgentWebSocketsImpl object to access its operations.
+     *
+     * @return the BetaVoiceAgentWebSocketsImpl object.
+     */
+    public BetaVoiceAgentWebSocketsImpl getBetaVoiceAgentWebSockets() {
+        return this.betaVoiceAgentWebSockets;
+    }
+
+    /**
+     * The BetaAgentEndpointConversationsImpl object to access its operations.
+     */
+    private final BetaAgentEndpointConversationsImpl betaAgentEndpointConversations;
+
+    /**
+     * Gets the BetaAgentEndpointConversationsImpl object to access its operations.
+     *
+     * @return the BetaAgentEndpointConversationsImpl object.
+     */
+    public BetaAgentEndpointConversationsImpl getBetaAgentEndpointConversations() {
+        return this.betaAgentEndpointConversations;
+    }
+
     /**
      * The AgentsImpl object to access its operations.
      */
@@ -115,7 +143,7 @@ public BetaAgentsImpl getBetaAgents() {
 
     /**
      * Gets the AgentsImpl object to access its operations.
-     * 
+     *
      * @return the AgentsImpl object.
      */
     public AgentsImpl getAgents() {
@@ -129,7 +157,7 @@ public AgentsImpl getAgents() {
 
     /**
      * Gets the ToolboxesImpl object to access its operations.
-     * 
+     *
      * @return the ToolboxesImpl object.
      */
     public ToolboxesImpl getToolboxes() {
@@ -138,7 +166,7 @@ public ToolboxesImpl getToolboxes() {
 
     /**
      * Initializes an instance of AgentsClient client.
-     * 
+     *
      * @param endpoint Foundry Project endpoint in the form
      * "https://{ai-services-account-name}.services.ai.azure.com/api/projects/{project-name}".
      * If you only have one Project in your Foundry Hub, or to target the default Project
@@ -153,7 +181,7 @@ public AgentsClientImpl(String endpoint, AgentsServiceVersion serviceVersion) {
 
     /**
      * Initializes an instance of AgentsClient client.
-     * 
+     *
      * @param httpPipeline The HTTP pipeline to send requests through.
      * @param endpoint Foundry Project endpoint in the form
      * "https://{ai-services-account-name}.services.ai.azure.com/api/projects/{project-name}".
@@ -168,7 +196,7 @@ public AgentsClientImpl(HttpPipeline httpPipeline, String endpoint, AgentsServic
 
     /**
      * Initializes an instance of AgentsClient client.
-     * 
+     *
      * @param httpPipeline The HTTP pipeline to send requests through.
      * @param serializerAdapter The serializer to serialize an object into a string.
      * @param endpoint Foundry Project endpoint in the form
@@ -186,6 +214,8 @@ public AgentsClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializerA
         this.serviceVersion = serviceVersion;
         this.betaMemoryStores = new BetaMemoryStoresImpl(this);
         this.betaAgents = new BetaAgentsImpl(this);
+        this.betaVoiceAgentWebSockets = new BetaVoiceAgentWebSocketsImpl(this);
+        this.betaAgentEndpointConversations = new BetaAgentEndpointConversationsImpl(this);
         this.agents = new AgentsImpl(this);
         this.toolboxes = new ToolboxesImpl(this);
     }
diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java
index 81aa07465dd1..5ebf4a7431e9 100644
--- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java
+++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java
@@ -56,7 +56,7 @@ public final class AgentsImpl {
 
     /**
      * Initializes an instance of AgentsImpl.
-     * 
+     *
      * @param client the instance of the service client containing this operation class.
      */
     AgentsImpl(AgentsClientImpl client) {
@@ -66,7 +66,7 @@ public final class AgentsImpl {
 
     /**
      * Gets Service version.
-     * 
+     *
      * @return the serviceVersion value.
      */
     public AgentsServiceVersion getServiceVersion() {
@@ -122,6 +122,28 @@ Response createAgentSync(@HostParam("endpoint") String endpoint,
             @HeaderParam("Accept") String accept, @BodyParam("application/json") BinaryData createAgentRequest,
             RequestOptions requestOptions, Context context);
 
+        @Post("/agents:generate")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> generateAgent(@HostParam("endpoint") String endpoint,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType,
+            @HeaderParam("Accept") String accept, @BodyParam("application/json") BinaryData body,
+            RequestOptions requestOptions, Context context);
+
+        @Post("/agents:generate")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response generateAgentSync(@HostParam("endpoint") String endpoint,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType,
+            @HeaderParam("Accept") String accept, @BodyParam("application/json") BinaryData body,
+            RequestOptions requestOptions, Context context);
+
         // @Multipart not supported by RestProxy
         @Post("/agents")
         @ExpectedResponses({ 200 })
@@ -726,6 +748,74 @@ Response deleteSessionFileSync(@HostParam("endpoint") String endpoint,
             @QueryParam("path") String path, @QueryParam("api-version") String apiVersion,
             RequestOptions requestOptions, Context context);
 
+        @Post("/agents/{agent_name}/microsoft365/publish")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> publishAgentToMicrosoft365(@HostParam("endpoint") String endpoint,
+            @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Content-Type") String contentType, @HeaderParam("Accept") String accept,
+            @BodyParam("application/json") BinaryData publishAgentToMicrosoft365Request, RequestOptions requestOptions,
+            Context context);
+
+        @Post("/agents/{agent_name}/microsoft365/publish")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response publishAgentToMicrosoft365Sync(@HostParam("endpoint") String endpoint,
+            @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Content-Type") String contentType, @HeaderParam("Accept") String accept,
+            @BodyParam("application/json") BinaryData publishAgentToMicrosoft365Request, RequestOptions requestOptions,
+            Context context);
+
+        @Post("/agents/{agent_name}/microsoft365/zip")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> getMicrosoft365AppPackage(@HostParam("endpoint") String endpoint,
+            @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Content-Type") String contentType, @HeaderParam("Accept") String accept,
+            @BodyParam("application/json") BinaryData getMicrosoft365AppPackageRequest, RequestOptions requestOptions,
+            Context context);
+
+        @Post("/agents/{agent_name}/microsoft365/zip")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response getMicrosoft365AppPackageSync(@HostParam("endpoint") String endpoint,
+            @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Content-Type") String contentType, @HeaderParam("Accept") String accept,
+            @BodyParam("application/json") BinaryData getMicrosoft365AppPackageRequest, RequestOptions requestOptions,
+            Context context);
+
+        @Get("/agents/{agent_name}/microsoft365/publishdefaults")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> getMicrosoft365PublishDefaults(@HostParam("endpoint") String endpoint,
+            @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
+        @Get("/agents/{agent_name}/microsoft365/publishdefaults")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response getMicrosoft365PublishDefaultsSync(@HostParam("endpoint") String endpoint,
+            @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
         @Get("/openai/v1/conversations")
         @ExpectedResponses({ 200 })
         @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
@@ -747,10 +837,10 @@ Response listAgentConversationsSync(@HostParam("endpoint") String en
 
     /**
      * Get an agent
-     * 
+     *
      * Retrieves an agent definition by its unique name.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -771,7 +861,7 @@ Response listAgentConversationsSync(@HostParam("endpoint") String en
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -802,6 +892,9 @@ Response listAgentConversationsSync(@HostParam("endpoint") String en
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -819,7 +912,9 @@ Response listAgentConversationsSync(@HostParam("endpoint") String en
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -843,7 +938,7 @@ Response listAgentConversationsSync(@HostParam("endpoint") String en
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -851,7 +946,7 @@ Response listAgentConversationsSync(@HostParam("endpoint") String en * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return an agent - * + * * Retrieves an agent definition by its unique name along with {@link Response} on successful completion of * {@link Mono}. */ @@ -864,10 +959,10 @@ public Mono> getAgentWithResponseAsync(String agentName, Re /** * Get an agent - * + * * Retrieves an agent definition by its unique name. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -888,7 +983,7 @@ public Mono> getAgentWithResponseAsync(String agentName, Re
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -919,6 +1014,9 @@ public Mono> getAgentWithResponseAsync(String agentName, Re
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -936,7 +1034,9 @@ public Mono> getAgentWithResponseAsync(String agentName, Re
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -960,7 +1060,7 @@ public Mono> getAgentWithResponseAsync(String agentName, Re
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -968,7 +1068,7 @@ public Mono> getAgentWithResponseAsync(String agentName, Re * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return an agent - * + * * Retrieves an agent definition by its unique name along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) @@ -980,10 +1080,10 @@ public Response getAgentWithResponse(String agentName, RequestOption /** * Create an agent - * + * * Creates a new agent or a new version of an existing agent. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -994,7 +1094,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1002,6 +1102,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      *     agent_endpoint (Optional): {
      *         version_selector (Optional): {
@@ -1015,6 +1116,9 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1032,6 +1136,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -1053,9 +1158,9 @@ public Response getAgentWithResponse(String agentName, RequestOption
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1076,7 +1181,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1107,6 +1212,9 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1124,7 +1232,9 @@ public Response getAgentWithResponse(String agentName, RequestOption
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1148,7 +1258,7 @@ public Response getAgentWithResponse(String agentName, RequestOption
      * }
      * }
      * 
- * + * * @param createAgentRequest The createAgentRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1169,10 +1279,10 @@ public Mono> createAgentWithResponseAsync(BinaryData create /** * Create an agent - * + * * Creates a new agent or a new version of an existing agent. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1183,7 +1293,7 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1191,6 +1301,7 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      *     agent_endpoint (Optional): {
      *         version_selector (Optional): {
@@ -1204,6 +1315,9 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1221,6 +1335,7 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -1242,9 +1357,9 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1265,7 +1380,7 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1296,6 +1411,9 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1313,7 +1431,9 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1337,7 +1457,7 @@ public Mono> createAgentWithResponseAsync(BinaryData create
      * }
      * }
      * 
- * + * * @param createAgentRequest The createAgentRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1354,9 +1474,267 @@ public Response createAgentWithResponse(BinaryData createAgentReques contentType, accept, createAgentRequest, requestOptions, Context.NONE); } + /** + * Generate an agent + * + * Generates and creates an agent from kind-specific high-level inputs. + * The generated definition remains fully editable through the standard agent versioning operations. + *

Request Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *     id: String (Required)
+     *     name: String (Required)
+     *     state: String(enabled/disabled) (Required)
+     *     state_source: String(agent_instance_identity/agent_blueprint) (Optional)
+     *     versions (Required): {
+     *         latest (Required): {
+     *             metadata (Required): {
+     *                 String: String (Required)
+     *             }
+     *             object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *             id: String (Required)
+     *             name: String (Required)
+     *             version: String (Required)
+     *             description: String (Optional)
+     *             created_at: long (Required)
+     *             definition (Required): {
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
+     *                 rai_config (Optional): {
+     *                     rai_policy_name: String (Required)
+     *                 }
+     *             }
+     *             draft: Boolean (Optional)
+     *             status: String(creating/active/failed/deleting/deleted) (Optional)
+     *             instance_identity (Optional): {
+     *                 principal_id: String (Required)
+     *                 client_id: String (Required)
+     *                 status: String(active/disabled) (Optional)
+     *             }
+     *             blueprint (Optional): (recursive schema, see blueprint above)
+     *             blueprint_reference (Optional): {
+     *                 type: String(ManagedAgentIdentityBlueprint) (Required)
+     *             }
+     *             agent_guid: String (Optional)
+     *         }
+     *     }
+     *     agent_endpoint (Optional): {
+     *         version_selector (Optional): {
+     *             version_selection_rules (Optional, Required on create): [
+     *                  (Optional, Required on create){
+     *                     type: String(FixedRatio) (Required)
+     *                     agent_version: String (Optional, Required on create)
+     *                 }
+     *             ]
+     *         }
+     *         protocol_configuration (Optional): {
+     *             activity (Optional): {
+     *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
+     *             }
+     *             responses (Optional): {
+     *             }
+     *             a2a (Optional): {
+     *             }
+     *             mcp (Optional): {
+     *             }
+     *             invocations (Optional): {
+     *             }
+     *             invocations_ws (Optional): {
+     *             }
+     *         }
+     *         authorization_schemes (Optional): [
+     *              (Optional){
+     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
+     *             }
+     *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
+     *     }
+     *     digital_worker_type: String(m365) (Optional)
+     *     instance_identity (Optional): (recursive schema, see instance_identity above)
+     *     blueprint (Optional): (recursive schema, see blueprint above)
+     *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
+     *     agent_card (Optional): {
+     *         version: String (Optional, Required on create)
+     *         description: String (Optional)
+     *         skills (Optional, Required on create): [
+     *              (Optional, Required on create){
+     *                 id: String (Optional, Required on create)
+     *                 name: String (Optional, Required on create)
+     *                 description: String (Optional)
+     *                 tags (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *                 examples (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *             }
+     *         ]
+     *     }
+     * }
+     * }
+     * 
+ * + * @param body The kind-specific inputs for generating and creating an agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> generateAgentWithResponseAsync(BinaryData body, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.generateAgent(this.client.getEndpoint(), + this.client.getServiceVersion().getVersion(), contentType, accept, body, requestOptions, context)); + } + + /** + * Generate an agent + * + * Generates and creates an agent from kind-specific high-level inputs. + * The generated definition remains fully editable through the standard agent versioning operations. + *

Request Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *     id: String (Required)
+     *     name: String (Required)
+     *     state: String(enabled/disabled) (Required)
+     *     state_source: String(agent_instance_identity/agent_blueprint) (Optional)
+     *     versions (Required): {
+     *         latest (Required): {
+     *             metadata (Required): {
+     *                 String: String (Required)
+     *             }
+     *             object: String(agent/agent.version/agent.deleted/agent.version.deleted/agent.container) (Required)
+     *             id: String (Required)
+     *             name: String (Required)
+     *             version: String (Required)
+     *             description: String (Optional)
+     *             created_at: long (Required)
+     *             definition (Required): {
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
+     *                 rai_config (Optional): {
+     *                     rai_policy_name: String (Required)
+     *                 }
+     *             }
+     *             draft: Boolean (Optional)
+     *             status: String(creating/active/failed/deleting/deleted) (Optional)
+     *             instance_identity (Optional): {
+     *                 principal_id: String (Required)
+     *                 client_id: String (Required)
+     *                 status: String(active/disabled) (Optional)
+     *             }
+     *             blueprint (Optional): (recursive schema, see blueprint above)
+     *             blueprint_reference (Optional): {
+     *                 type: String(ManagedAgentIdentityBlueprint) (Required)
+     *             }
+     *             agent_guid: String (Optional)
+     *         }
+     *     }
+     *     agent_endpoint (Optional): {
+     *         version_selector (Optional): {
+     *             version_selection_rules (Optional, Required on create): [
+     *                  (Optional, Required on create){
+     *                     type: String(FixedRatio) (Required)
+     *                     agent_version: String (Optional, Required on create)
+     *                 }
+     *             ]
+     *         }
+     *         protocol_configuration (Optional): {
+     *             activity (Optional): {
+     *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
+     *             }
+     *             responses (Optional): {
+     *             }
+     *             a2a (Optional): {
+     *             }
+     *             mcp (Optional): {
+     *             }
+     *             invocations (Optional): {
+     *             }
+     *             invocations_ws (Optional): {
+     *             }
+     *         }
+     *         authorization_schemes (Optional): [
+     *              (Optional){
+     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
+     *             }
+     *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
+     *     }
+     *     digital_worker_type: String(m365) (Optional)
+     *     instance_identity (Optional): (recursive schema, see instance_identity above)
+     *     blueprint (Optional): (recursive schema, see blueprint above)
+     *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
+     *     agent_card (Optional): {
+     *         version: String (Optional, Required on create)
+     *         description: String (Optional)
+     *         skills (Optional, Required on create): [
+     *              (Optional, Required on create){
+     *                 id: String (Optional, Required on create)
+     *                 name: String (Optional, Required on create)
+     *                 description: String (Optional)
+     *                 tags (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *                 examples (Optional): [
+     *                     String (Optional)
+     *                 ]
+     *             }
+     *         ]
+     *     }
+     * }
+     * }
+     * 
+ * + * @param body The kind-specific inputs for generating and creating an agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response generateAgentWithResponse(BinaryData body, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.generateAgentSync(this.client.getEndpoint(), this.client.getServiceVersion().getVersion(), + contentType, accept, body, requestOptions, Context.NONE); + } + /** * Create a new code-based agent - * + * * Creates a new code-based agent. Uploads the code zip and creates the agent in a single call. * The agent name is provided in the `x-ms-agent-name` header since POST /agents has no name in the URL path. * The SHA-256 hex digest of the zip is provided in the `x-ms-code-zip-sha256` header for integrity and dedup. @@ -1364,7 +1742,7 @@ public Response createAgentWithResponse(BinaryData createAgentReques * irrelevant). * Maximum upload size is 250 MB. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1385,7 +1763,7 @@ public Response createAgentWithResponse(BinaryData createAgentReques
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1416,6 +1794,9 @@ public Response createAgentWithResponse(BinaryData createAgentReques
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1433,7 +1814,9 @@ public Response createAgentWithResponse(BinaryData createAgentReques
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1457,7 +1840,7 @@ public Response createAgentWithResponse(BinaryData createAgentReques
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Max 63 chars, must start and end with alphanumeric, * hyphens allowed in the middle. * @param codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity @@ -1482,7 +1865,7 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag /** * Create a new code-based agent - * + * * Creates a new code-based agent. Uploads the code zip and creates the agent in a single call. * The agent name is provided in the `x-ms-agent-name` header since POST /agents has no name in the URL path. * The SHA-256 hex digest of the zip is provided in the `x-ms-code-zip-sha256` header for integrity and dedup. @@ -1490,7 +1873,7 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag * irrelevant). * Maximum upload size is 250 MB. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1511,7 +1894,7 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1542,6 +1925,9 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1559,7 +1945,9 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1583,7 +1971,7 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Max 63 chars, must start and end with alphanumeric, * hyphens allowed in the middle. * @param codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity @@ -1607,11 +1995,11 @@ public Response createAgentFromCodeWithResponse(String agentName, St /** * Update an agent - * + * * Updates the agent by adding a new version if there are any changes to the agent definition. * If no changes, returns the existing agent version. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1620,7 +2008,7 @@ public Response createAgentFromCodeWithResponse(String agentName, St
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1631,9 +2019,9 @@ public Response createAgentFromCodeWithResponse(String agentName, St
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1654,7 +2042,7 @@ public Response createAgentFromCodeWithResponse(String agentName, St
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1685,6 +2073,9 @@ public Response createAgentFromCodeWithResponse(String agentName, St
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1702,7 +2093,9 @@ public Response createAgentFromCodeWithResponse(String agentName, St
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1726,7 +2119,7 @@ public Response createAgentFromCodeWithResponse(String agentName, St
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve. * @param updateAgentRequest The updateAgentRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1748,11 +2141,11 @@ public Mono> updateAgentWithResponseAsync(String agentName, /** * Update an agent - * + * * Updates the agent by adding a new version if there are any changes to the agent definition. * If no changes, returns the existing agent version. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1761,7 +2154,7 @@ public Mono> updateAgentWithResponseAsync(String agentName,
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -1772,9 +2165,9 @@ public Mono> updateAgentWithResponseAsync(String agentName,
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1795,7 +2188,7 @@ public Mono> updateAgentWithResponseAsync(String agentName,
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1826,6 +2219,9 @@ public Mono> updateAgentWithResponseAsync(String agentName,
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1843,7 +2239,9 @@ public Mono> updateAgentWithResponseAsync(String agentName,
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1867,7 +2265,7 @@ public Mono> updateAgentWithResponseAsync(String agentName,
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve. * @param updateAgentRequest The updateAgentRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1889,14 +2287,14 @@ public Response updateAgentWithResponse(String agentName, BinaryData /** * Update a code-based agent - * + * * Updates a code-based agent by uploading new code and creating a new version. * If the code and definition are unchanged (matched by x-ms-code-zip-sha256 header), returns the existing version. * The request body is multipart/form-data with a JSON metadata part and a binary code part (part order is * irrelevant). * Maximum upload size is 250 MB. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1917,7 +2315,7 @@ public Response updateAgentWithResponse(String agentName, BinaryData
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -1948,6 +2346,9 @@ public Response updateAgentWithResponse(String agentName, BinaryData
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -1965,7 +2366,9 @@ public Response updateAgentWithResponse(String agentName, BinaryData
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -1989,7 +2392,7 @@ public Response updateAgentWithResponse(String agentName, BinaryData
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -2016,14 +2419,14 @@ public Mono> updateAgentFromCodeWithResponseAsync(String ag /** * Update a code-based agent - * + * * Updates a code-based agent by uploading new code and creating a new version. * If the code and definition are unchanged (matched by x-ms-code-zip-sha256 header), returns the existing version. * The request body is multipart/form-data with a JSON metadata part and a binary code part (part order is * irrelevant). * Maximum upload size is 250 MB. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2044,7 +2447,7 @@ public Mono> updateAgentFromCodeWithResponseAsync(String ag
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2075,6 +2478,9 @@ public Mono> updateAgentFromCodeWithResponseAsync(String ag
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2092,7 +2498,9 @@ public Mono> updateAgentFromCodeWithResponseAsync(String ag
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2116,7 +2524,7 @@ public Mono> updateAgentFromCodeWithResponseAsync(String ag
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -2142,10 +2550,10 @@ public Response updateAgentFromCodeWithResponse(String agentName, St /** * Create an agent from a manifest - * + * * Imports the provided manifest to create an agent and returns the created resource. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2161,9 +2569,9 @@ public Response updateAgentFromCodeWithResponse(String agentName, St
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2184,7 +2592,7 @@ public Response updateAgentFromCodeWithResponse(String agentName, St
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2215,6 +2623,9 @@ public Response updateAgentFromCodeWithResponse(String agentName, St
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2232,7 +2643,9 @@ public Response updateAgentFromCodeWithResponse(String agentName, St
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2256,7 +2669,7 @@ public Response updateAgentFromCodeWithResponse(String agentName, St
      * }
      * }
      * 
- * + * * @param createAgentFromManifestRequest The createAgentFromManifestRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -2277,10 +2690,10 @@ public Mono> createAgentFromManifestWithResponseAsync( /** * Create an agent from a manifest - * + * * Imports the provided manifest to create an agent and returns the created resource. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2296,9 +2709,9 @@ public Mono> createAgentFromManifestWithResponseAsync(
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2319,7 +2732,7 @@ public Mono> createAgentFromManifestWithResponseAsync(
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2350,6 +2763,9 @@ public Mono> createAgentFromManifestWithResponseAsync(
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2367,7 +2783,9 @@ public Mono> createAgentFromManifestWithResponseAsync(
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2391,7 +2809,7 @@ public Mono> createAgentFromManifestWithResponseAsync(
      * }
      * }
      * 
- * + * * @param createAgentFromManifestRequest The createAgentFromManifestRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -2412,11 +2830,11 @@ public Response createAgentFromManifestWithResponse(BinaryData creat /** * Update an agent from a manifest - * + * * Updates the agent from a manifest by adding a new version if there are any changes to the agent definition. * If no changes, returns the existing agent version. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2431,9 +2849,9 @@ public Response createAgentFromManifestWithResponse(BinaryData creat
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2454,7 +2872,7 @@ public Response createAgentFromManifestWithResponse(BinaryData creat
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2485,6 +2903,9 @@ public Response createAgentFromManifestWithResponse(BinaryData creat
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2502,7 +2923,9 @@ public Response createAgentFromManifestWithResponse(BinaryData creat
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2526,7 +2949,7 @@ public Response createAgentFromManifestWithResponse(BinaryData creat
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to update. * @param updateAgentFromManifestRequest The updateAgentFromManifestRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -2548,11 +2971,11 @@ public Mono> updateAgentFromManifestWithResponseAsync(Strin /** * Update an agent from a manifest - * + * * Updates the agent from a manifest by adding a new version if there are any changes to the agent definition. * If no changes, returns the existing agent version. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -2567,9 +2990,9 @@ public Mono> updateAgentFromManifestWithResponseAsync(Strin
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2590,7 +3013,7 @@ public Mono> updateAgentFromManifestWithResponseAsync(Strin
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2621,6 +3044,9 @@ public Mono> updateAgentFromManifestWithResponseAsync(Strin
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2638,7 +3064,9 @@ public Mono> updateAgentFromManifestWithResponseAsync(Strin
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2662,7 +3090,7 @@ public Mono> updateAgentFromManifestWithResponseAsync(Strin
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to update. * @param updateAgentFromManifestRequest The updateAgentFromManifestRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -2684,7 +3112,7 @@ public Response updateAgentFromManifestWithResponse(String agentName /** * Delete an agent - * + * * Deletes an agent. For hosted agents, if any version has active sessions, the request * is rejected with HTTP 409 unless `force` is set to true. When force is true, all * associated sessions are cascade-deleted along with the agent and its versions. @@ -2698,7 +3126,7 @@ public Response updateAgentFromManifestWithResponse(String agentName * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2708,7 +3136,7 @@ public Response updateAgentFromManifestWithResponse(String agentName
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -2727,7 +3155,7 @@ public Mono> internalDeleteAgentWithResponseAsync(String ag /** * Delete an agent - * + * * Deletes an agent. For hosted agents, if any version has active sessions, the request * is rejected with HTTP 409 unless `force` is set to true. When force is true, all * associated sessions are cascade-deleted along with the agent and its versions. @@ -2741,7 +3169,7 @@ public Mono> internalDeleteAgentWithResponseAsync(String ag * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2751,7 +3179,7 @@ public Mono> internalDeleteAgentWithResponseAsync(String ag
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -2769,14 +3197,14 @@ public Response internalDeleteAgentWithResponse(String agentName, Re /** * List agents - * + * * Returns a paged collection of agent resources. *

Query Parameters

* * * * + * Allowed values: "prompt", "hosted", "workflow", "external", "voice". * @@ -2794,7 +3222,7 @@ public Response internalDeleteAgentWithResponse(String agentName, Re *
Query Parameters
NameTypeRequiredDescription
kindStringNoFilter agents by kind. If not provided, all agents are returned. - * Allowed values: "prompt", "hosted", "workflow", "external".
limitIntegerNoA limit on the number of objects to be returned. Limit can range * between 1 and 100, and the * default is 20.
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2815,7 +3243,7 @@ public Response internalDeleteAgentWithResponse(String agentName, Re
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2846,6 +3274,9 @@ public Response internalDeleteAgentWithResponse(String agentName, Re
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -2863,7 +3294,9 @@ public Response internalDeleteAgentWithResponse(String agentName, Re
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -2887,7 +3320,7 @@ public Response internalDeleteAgentWithResponse(String agentName, Re
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -2908,14 +3341,14 @@ private Mono> listAgentsSinglePageAsync(RequestOptions /** * List agents - * + * * Returns a paged collection of agent resources. *

Query Parameters

* * * * + * Allowed values: "prompt", "hosted", "workflow", "external", "voice". * @@ -2933,7 +3366,7 @@ private Mono> listAgentsSinglePageAsync(RequestOptions *
Query Parameters
NameTypeRequiredDescription
kindStringNoFilter agents by kind. If not provided, all agents are returned. - * Allowed values: "prompt", "hosted", "workflow", "external".
limitIntegerNoA limit on the number of objects to be returned. Limit can range * between 1 and 100, and the * default is 20.
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -2954,7 +3387,7 @@ private Mono> listAgentsSinglePageAsync(RequestOptions
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -2985,6 +3418,9 @@ private Mono> listAgentsSinglePageAsync(RequestOptions
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -3002,7 +3438,9 @@ private Mono> listAgentsSinglePageAsync(RequestOptions
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -3026,7 +3464,7 @@ private Mono> listAgentsSinglePageAsync(RequestOptions
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -3041,14 +3479,14 @@ public PagedFlux listAgentsAsync(RequestOptions requestOptions) { /** * List agents - * + * * Returns a paged collection of agent resources. *

Query Parameters

* * * * + * Allowed values: "prompt", "hosted", "workflow", "external", "voice". * @@ -3066,7 +3504,7 @@ public PagedFlux listAgentsAsync(RequestOptions requestOptions) { *
Query Parameters
NameTypeRequiredDescription
kindStringNoFilter agents by kind. If not provided, all agents are returned. - * Allowed values: "prompt", "hosted", "workflow", "external".
limitIntegerNoA limit on the number of objects to be returned. Limit can range * between 1 and 100, and the * default is 20.
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3087,7 +3525,7 @@ public PagedFlux listAgentsAsync(RequestOptions requestOptions) {
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -3118,6 +3556,9 @@ public PagedFlux listAgentsAsync(RequestOptions requestOptions) {
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -3135,7 +3576,9 @@ public PagedFlux listAgentsAsync(RequestOptions requestOptions) {
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -3159,7 +3602,7 @@ public PagedFlux listAgentsAsync(RequestOptions requestOptions) {
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -3178,14 +3621,14 @@ private PagedResponse listAgentsSinglePage(RequestOptions requestOpt /** * List agents - * + * * Returns a paged collection of agent resources. *

Query Parameters

* * * * + * Allowed values: "prompt", "hosted", "workflow", "external", "voice". * @@ -3203,7 +3646,7 @@ private PagedResponse listAgentsSinglePage(RequestOptions requestOpt *
Query Parameters
NameTypeRequiredDescription
kindStringNoFilter agents by kind. If not provided, all agents are returned. - * Allowed values: "prompt", "hosted", "workflow", "external".
limitIntegerNoA limit on the number of objects to be returned. Limit can range * between 1 and 100, and the * default is 20.
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3224,7 +3667,7 @@ private PagedResponse listAgentsSinglePage(RequestOptions requestOpt
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -3255,6 +3698,9 @@ private PagedResponse listAgentsSinglePage(RequestOptions requestOpt
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -3272,7 +3718,9 @@ private PagedResponse listAgentsSinglePage(RequestOptions requestOpt
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -3296,7 +3744,7 @@ private PagedResponse listAgentsSinglePage(RequestOptions requestOpt
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -3311,10 +3759,10 @@ public PagedIterable listAgents(RequestOptions requestOptions) { /** * Create an agent version - * + * * Creates a new version for the specified agent and returns the created version resource. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -3323,7 +3771,7 @@ public PagedIterable listAgents(RequestOptions requestOptions) {
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3331,13 +3779,14 @@ public PagedIterable listAgents(RequestOptions requestOptions) {
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3351,7 +3800,7 @@ public PagedIterable listAgents(RequestOptions requestOptions) {
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3371,7 +3820,7 @@ public PagedIterable listAgents(RequestOptions requestOptions) {
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -3396,10 +3845,10 @@ public Mono> createAgentVersionWithResponseAsync(String age /** * Create an agent version - * + * * Creates a new version for the specified agent and returns the created version resource. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -3408,7 +3857,7 @@ public Mono> createAgentVersionWithResponseAsync(String age
      *     }
      *     description: String (Optional)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3416,13 +3865,14 @@ public Mono> createAgentVersionWithResponseAsync(String age
      *     blueprint_reference (Optional): {
      *         type: String(ManagedAgentIdentityBlueprint) (Required)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     draft: Boolean (Optional)
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3436,7 +3886,7 @@ public Mono> createAgentVersionWithResponseAsync(String age
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3456,7 +3906,7 @@ public Mono> createAgentVersionWithResponseAsync(String age
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -3481,10 +3931,10 @@ public Response createAgentVersionWithResponse(String agentName, Bin /** * Create an agent version from manifest - * + * * Imports the provided manifest to create a new version for the specified agent. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -3499,9 +3949,9 @@ public Response createAgentVersionWithResponse(String agentName, Bin
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3515,7 +3965,7 @@ public Response createAgentVersionWithResponse(String agentName, Bin
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3535,7 +3985,7 @@ public Response createAgentVersionWithResponse(String agentName, Bin
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -3560,10 +4010,10 @@ public Mono> createAgentVersionFromManifestWithResponseAsyn /** * Create an agent version from manifest - * + * * Imports the provided manifest to create a new version for the specified agent. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -3578,9 +4028,9 @@ public Mono> createAgentVersionFromManifestWithResponseAsyn
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3594,7 +4044,7 @@ public Mono> createAgentVersionFromManifestWithResponseAsyn
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3614,7 +4064,7 @@ public Mono> createAgentVersionFromManifestWithResponseAsyn
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -3639,10 +4089,10 @@ public Response createAgentVersionFromManifestWithResponse(String ag /** * Get an agent version - * + * * Retrieves the specified version of an agent by its agent name and version identifier. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3656,7 +4106,7 @@ public Response createAgentVersionFromManifestWithResponse(String ag
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3676,7 +4126,7 @@ public Response createAgentVersionFromManifestWithResponse(String ag
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve. * @param agentVersion The version of the agent to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -3685,7 +4135,7 @@ public Response createAgentVersionFromManifestWithResponse(String ag * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return an agent version - * + * * Retrieves the specified version of an agent by its agent name and version identifier along with {@link Response} * on successful completion of {@link Mono}. */ @@ -3699,10 +4149,10 @@ public Mono> getAgentVersionDetailsWithResponseAsync(String /** * Get an agent version - * + * * Retrieves the specified version of an agent by its agent name and version identifier. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3716,7 +4166,7 @@ public Mono> getAgentVersionDetailsWithResponseAsync(String
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3736,7 +4186,7 @@ public Mono> getAgentVersionDetailsWithResponseAsync(String
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve. * @param agentVersion The version of the agent to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -3745,7 +4195,7 @@ public Mono> getAgentVersionDetailsWithResponseAsync(String * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return an agent version - * + * * Retrieves the specified version of an agent by its agent name and version identifier along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) @@ -3758,7 +4208,7 @@ public Response getAgentVersionDetailsWithResponse(String agentName, /** * Delete an agent version - * + * * Deletes a specific version of an agent. For hosted agents, if the version has active * sessions, the request is rejected with HTTP 409 unless `force` is set to true. When * force is true, all sessions associated with this version are cascade-deleted. @@ -3772,7 +4222,7 @@ public Response getAgentVersionDetailsWithResponse(String agentName, * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3783,7 +4233,7 @@ public Response getAgentVersionDetailsWithResponse(String agentName,
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to delete. * @param agentVersion The version of the agent to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -3803,7 +4253,7 @@ public Mono> internalDeleteAgentVersionWithResponseAsync(St /** * Delete an agent version - * + * * Deletes a specific version of an agent. For hosted agents, if the version has active * sessions, the request is rejected with HTTP 409 unless `force` is set to true. When * force is true, all sessions associated with this version are cascade-deleted. @@ -3817,7 +4267,7 @@ public Mono> internalDeleteAgentVersionWithResponseAsync(St * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3828,7 +4278,7 @@ public Mono> internalDeleteAgentVersionWithResponseAsync(St
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to delete. * @param agentVersion The version of the agent to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -3848,7 +4298,7 @@ public Response internalDeleteAgentVersionWithResponse(String agentN /** * List agent versions - * + * * Returns a paged collection of versions for the specified agent. *

Query Parameters

* @@ -3874,7 +4324,7 @@ public Response internalDeleteAgentVersionWithResponse(String agentN *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3888,7 +4338,7 @@ public Response internalDeleteAgentVersionWithResponse(String agentN
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3908,7 +4358,7 @@ public Response internalDeleteAgentVersionWithResponse(String agentN
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -3931,7 +4381,7 @@ private Mono> listAgentVersionsSinglePageAsync(String /** * List agent versions - * + * * Returns a paged collection of versions for the specified agent. *

Query Parameters

* @@ -3957,7 +4407,7 @@ private Mono> listAgentVersionsSinglePageAsync(String *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -3971,7 +4421,7 @@ private Mono> listAgentVersionsSinglePageAsync(String
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -3991,7 +4441,7 @@ private Mono> listAgentVersionsSinglePageAsync(String
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4007,7 +4457,7 @@ public PagedFlux listAgentVersionsAsync(String agentName, RequestOpt /** * List agent versions - * + * * Returns a paged collection of versions for the specified agent. *

Query Parameters

* @@ -4033,7 +4483,7 @@ public PagedFlux listAgentVersionsAsync(String agentName, RequestOpt *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4047,7 +4497,7 @@ public PagedFlux listAgentVersionsAsync(String agentName, RequestOpt
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -4067,7 +4517,7 @@ public PagedFlux listAgentVersionsAsync(String agentName, RequestOpt
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4087,7 +4537,7 @@ private PagedResponse listAgentVersionsSinglePage(String agentName, /** * List agent versions - * + * * Returns a paged collection of versions for the specified agent. *

Query Parameters

* @@ -4113,7 +4563,7 @@ private PagedResponse listAgentVersionsSinglePage(String agentName, *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4127,7 +4577,7 @@ private PagedResponse listAgentVersionsSinglePage(String agentName,
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -4147,7 +4597,7 @@ private PagedResponse listAgentVersionsSinglePage(String agentName,
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4163,10 +4613,10 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti /** * Update an agent endpoint - * + * * Applies a merge-patch update to the specified agent endpoint configuration. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -4182,6 +4632,9 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -4199,6 +4652,7 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -4220,9 +4674,9 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4243,7 +4697,7 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -4274,6 +4728,9 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -4291,7 +4748,9 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -4315,9 +4774,9 @@ public PagedIterable listAgentVersions(String agentName, RequestOpti
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve - * + * * The name of the agent to retrieve. * @param patchAgentObjectRequest The patchAgentObjectRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -4339,10 +4798,10 @@ public Mono> updateAgentDetailsWithResponseAsync(String age /** * Update an agent endpoint - * + * * Applies a merge-patch update to the specified agent endpoint configuration. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -4358,6 +4817,9 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -4375,6 +4837,7 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
      *     agent_card (Optional): {
      *         version: String (Optional, Required on create)
@@ -4396,9 +4859,9 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4419,7 +4882,7 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      *             description: String (Optional)
      *             created_at: long (Required)
      *             definition (Required): {
-     *                 kind: String(prompt/hosted/workflow/external) (Required)
+     *                 kind: String(prompt/hosted/workflow/external/voice) (Required)
      *                 rai_config (Optional): {
      *                     rai_policy_name: String (Required)
      *                 }
@@ -4450,6 +4913,9 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      *         protocol_configuration (Optional): {
      *             activity (Optional): {
      *                 enable_m365_public_endpoint: Boolean (Optional)
+     *                 access_boundaries (Optional): [
+     *                     String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *                 ]
      *             }
      *             responses (Optional): {
      *             }
@@ -4467,7 +4933,9 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
      *             }
      *         ]
+     *         publish_approval_status: String(not_published/pending/approved/rejected/no_approval_needed) (Optional)
      *     }
+     *     digital_worker_type: String(m365) (Optional)
      *     instance_identity (Optional): (recursive schema, see instance_identity above)
      *     blueprint (Optional): (recursive schema, see blueprint above)
      *     blueprint_reference (Optional): (recursive schema, see blueprint_reference above)
@@ -4491,9 +4959,9 @@ public Mono> updateAgentDetailsWithResponseAsync(String age
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to retrieve - * + * * The name of the agent to retrieve. * @param patchAgentObjectRequest The patchAgentObjectRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -4515,7 +4983,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin /** * Create an agent version from code - * + * * Creates a new agent version from code. Uploads the code zip and creates a new version * for an existing agent. The SHA-256 hex digest of the zip is provided in the * `x-ms-code-zip-sha256` header for integrity and dedup. @@ -4523,7 +4991,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin * irrelevant). * Maximum upload size is 250 MB. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4537,7 +5005,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -4557,7 +5025,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -4584,7 +5052,7 @@ public Mono> createAgentVersionFromCodeWithResponseAsync(St /** * Create an agent version from code - * + * * Creates a new agent version from code. Uploads the code zip and creates a new version * for an existing agent. The SHA-256 hex digest of the zip is provided in the * `x-ms-code-zip-sha256` header for integrity and dedup. @@ -4592,7 +5060,7 @@ public Mono> createAgentVersionFromCodeWithResponseAsync(St * irrelevant). * Maximum upload size is 250 MB. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4606,7 +5074,7 @@ public Mono> createAgentVersionFromCodeWithResponseAsync(St
      *     description: String (Optional)
      *     created_at: long (Required)
      *     definition (Required): {
-     *         kind: String(prompt/hosted/workflow/external) (Required)
+     *         kind: String(prompt/hosted/workflow/external/voice) (Required)
      *         rai_config (Optional): {
      *             rai_policy_name: String (Required)
      *         }
@@ -4626,7 +5094,7 @@ public Mono> createAgentVersionFromCodeWithResponseAsync(St
      * }
      * }
      * 
- * + * * @param agentName The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. * - Must start and end with alphanumeric characters, * - Can contain hyphens in the middle @@ -4652,13 +5120,13 @@ public Response createAgentVersionFromCodeWithResponse(String agentN /** * Download agent code - * + * * Downloads the code zip for a code-based hosted agent. * Returns the previously-uploaded zip (`application/zip`). - * + * * If `agent_version` is supplied, returns that version's code zip; otherwise * returns the latest version's code zip. - * + * * The SHA-256 digest of the returned bytes matches the `content_hash` on the * resolved version's `code_configuration`. *

Query Parameters

@@ -4671,13 +5139,13 @@ public Response createAgentVersionFromCodeWithResponse(String agentN * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Headers

* * @@ -4685,7 +5153,7 @@ public Response createAgentVersionFromCodeWithResponse(String agentN * *
Response Headers
x-ms-agent-versionStringThe version of the agent whose code zip is returned in the * response body.
- * + * * @param agentName The name of the agent. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4704,13 +5172,13 @@ public Mono> downloadAgentCodeWithResponseAsync(String agen /** * Download agent code - * + * * Downloads the code zip for a code-based hosted agent. * Returns the previously-uploaded zip (`application/zip`). - * + * * If `agent_version` is supplied, returns that version's code zip; otherwise * returns the latest version's code zip. - * + * * The SHA-256 digest of the returned bytes matches the `content_hash` on the * resolved version's `code_configuration`. *

Query Parameters

@@ -4723,13 +5191,13 @@ public Mono> downloadAgentCodeWithResponseAsync(String agen * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Headers

* * @@ -4737,7 +5205,7 @@ public Mono> downloadAgentCodeWithResponseAsync(String agen * *
Response Headers
x-ms-agent-versionStringThe version of the agent whose code zip is returned in the * response body.
- * + * * @param agentName The name of the agent. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4755,10 +5223,10 @@ public Response downloadAgentCodeWithResponse(String agentName, Requ /** * Enable an agent - * + * * Enables the specified agent, allowing it to accept new sessions and process requests. * This operation is idempotent — enabling an already-enabled agent returns success with no side effects. - * + * * @param agentName The name of the agent to enable. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4775,10 +5243,10 @@ public Mono> enableAgentWithResponseAsync(String agentName, Reque /** * Enable an agent - * + * * Enables the specified agent, allowing it to accept new sessions and process requests. * This operation is idempotent — enabling an already-enabled agent returns success with no side effects. - * + * * @param agentName The name of the agent to enable. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4795,11 +5263,11 @@ public Response enableAgentWithResponse(String agentName, RequestOptions r /** * Disable an agent - * + * * Disables the specified agent, preventing it from accepting new sessions or processing requests. * Existing active sessions are allowed to drain gracefully but no new sessions can be created. * This operation is idempotent — disabling an already-disabled agent returns success with no side effects. - * + * * @param agentName The name of the agent to disable. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4816,11 +5284,11 @@ public Mono> disableAgentWithResponseAsync(String agentName, Requ /** * Disable an agent - * + * * Disables the specified agent, preventing it from accepting new sessions or processing requests. * Existing active sessions are allowed to drain gracefully but no new sessions can be created. * This operation is idempotent — disabling an already-disabled agent returns success with no side effects. - * + * * @param agentName The name of the agent to disable. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -4837,12 +5305,12 @@ public Response disableAgentWithResponse(String agentName, RequestOptions /** * Create a session - * + * * Creates a new session for an agent endpoint. * The endpoint resolves the backing agent version from `version_indicator` and * enforces session ownership using the provided user identity for session-mutating operations. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -4853,9 +5321,9 @@ public Response disableAgentWithResponse(String agentName, RequestOptions
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4870,7 +5338,7 @@ public Response disableAgentWithResponse(String agentName, RequestOptions
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to create a session for. * @param createSessionRequest The createSessionRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -4893,12 +5361,12 @@ public Mono> createSessionWithResponseAsync(String agentNam /** * Create a session - * + * * Creates a new session for an agent endpoint. * The endpoint resolves the backing agent version from `version_indicator` and * enforces session ownership using the provided user identity for session-mutating operations. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -4909,9 +5377,9 @@ public Mono> createSessionWithResponseAsync(String agentNam
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4926,7 +5394,7 @@ public Mono> createSessionWithResponseAsync(String agentNam
      * }
      * }
      * 
- * + * * @param agentName The name of the agent to create a session for. * @param createSessionRequest The createSessionRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -4949,10 +5417,10 @@ public Response createSessionWithResponse(String agentName, BinaryDa /** * Get a session - * + * * Retrieves the details of a hosted agent session by agent name and session identifier. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -4967,7 +5435,7 @@ public Response createSessionWithResponse(String agentName, BinaryDa
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session identifier. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -4976,7 +5444,7 @@ public Response createSessionWithResponse(String agentName, BinaryDa * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return a session - * + * * Retrieves the details of a hosted agent session by agent name and session identifier along with {@link Response} * on successful completion of {@link Mono}. */ @@ -4990,10 +5458,10 @@ public Mono> getSessionWithResponseAsync(String agentName, /** * Get a session - * + * * Retrieves the details of a hosted agent session by agent name and session identifier. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5008,7 +5476,7 @@ public Mono> getSessionWithResponseAsync(String agentName,
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session identifier. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5017,7 +5485,7 @@ public Mono> getSessionWithResponseAsync(String agentName, * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return a session - * + * * Retrieves the details of a hosted agent session by agent name and session identifier along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) @@ -5030,10 +5498,10 @@ public Response getSessionWithResponse(String agentName, String sess /** * Delete a session - * + * * Deletes a session synchronously. * Returns 204 No Content when the session is deleted or does not exist. - * + * * @param agentName The name of the agent. * @param sessionId The session identifier. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5052,10 +5520,10 @@ public Mono> deleteSessionWithResponseAsync(String agentName, Str /** * Delete a session - * + * * Deletes a session synchronously. * Returns 204 No Content when the session is deleted or does not exist. - * + * * @param agentName The name of the agent. * @param sessionId The session identifier. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5073,9 +5541,9 @@ public Response deleteSessionWithResponse(String agentName, String session /** * Stop a session - * + * * Terminates the specified hosted agent session and returns 204 No Content when the request succeeds. - * + * * @param agentName The name of the agent. * @param sessionId The session identifier. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5094,9 +5562,9 @@ public Mono> stopSessionWithResponseAsync(String agentName, Strin /** * Stop a session - * + * * Terminates the specified hosted agent session and returns 204 No Content when the request succeeds. - * + * * @param agentName The name of the agent. * @param sessionId The session identifier. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5114,7 +5582,7 @@ public Response stopSessionWithResponse(String agentName, String sessionId /** * List sessions for an agent - * + * * Returns a paged collection of sessions associated with the specified agent endpoint. *

Query Parameters

* @@ -5137,7 +5605,7 @@ public Response stopSessionWithResponse(String agentName, String sessionId *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5152,7 +5620,7 @@ public Response stopSessionWithResponse(String agentName, String sessionId
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -5175,7 +5643,7 @@ private Mono> listSessionsSinglePageAsync(String agent /** * List sessions for an agent - * + * * Returns a paged collection of sessions associated with the specified agent endpoint. *

Query Parameters

* @@ -5198,7 +5666,7 @@ private Mono> listSessionsSinglePageAsync(String agent *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5213,7 +5681,7 @@ private Mono> listSessionsSinglePageAsync(String agent
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -5229,7 +5697,7 @@ public PagedFlux listSessionsAsync(String agentName, RequestOptions /** * List sessions for an agent - * + * * Returns a paged collection of sessions associated with the specified agent endpoint. *

Query Parameters

* @@ -5252,7 +5720,7 @@ public PagedFlux listSessionsAsync(String agentName, RequestOptions *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5267,7 +5735,7 @@ public PagedFlux listSessionsAsync(String agentName, RequestOptions
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -5287,7 +5755,7 @@ private PagedResponse listSessionsSinglePage(String agentName, Reque /** * List sessions for an agent - * + * * Returns a paged collection of sessions associated with the specified agent endpoint. *

Query Parameters

* @@ -5310,7 +5778,7 @@ private PagedResponse listSessionsSinglePage(String agentName, Reque *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5325,7 +5793,7 @@ private PagedResponse listSessionsSinglePage(String agentName, Reque
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -5341,36 +5809,36 @@ public PagedIterable listSessions(String agentName, RequestOptions r /** * Stream console logs for a hosted agent session - * + * * Streams console logs (stdout / stderr) for a specific hosted agent session * as a Server-Sent Events (SSE) stream. - * + * * Each SSE frame contains: * - `event`: always `"log"` * - `data`: a plain-text log line (currently JSON-formatted, but the schema * is not contractual and may include additional keys or change format * over time — clients should treat it as an opaque string) - * + * * Example SSE frames: * ``` * event: log * data: {"timestamp":"2026-03-10T09:33:17.121Z","stream":"stdout","message":"Starting FoundryCBAgent server on port * 8088"} - * + * * event: log * data: {"timestamp":"2026-03-10T09:33:17.130Z","stream":"stderr","message":"INFO: Application startup complete."} - * + * * event: log * data: {"timestamp":"2026-03-10T09:34:52.714Z","stream":"status","message":"Successfully connected to container"} - * + * * event: log * data: {"timestamp":"2026-03-10T09:35:52.714Z","stream":"status","message":"No logs since last 60 seconds"} * ``` - * + * * The stream remains open until the client disconnects or the server * terminates the connection. Clients should handle reconnection as needed. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5379,7 +5847,7 @@ public PagedIterable listSessions(String agentName, RequestOptions r
      * }
      * }
      * 
- * + * * @param agentName The name of the hosted agent. * @param agentVersion The version of the agent. * @param sessionId The session ID (maps to an ADC sandbox). @@ -5389,7 +5857,7 @@ public PagedIterable listSessions(String agentName, RequestOptions r * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return a single Server-Sent Event frame emitted by the hosted agent session log stream. - * + * * Each frame contains an `event` field identifying the event type and a `data` * field carrying the payload as plain text along with {@link Response} on successful completion of {@link Mono}. */ @@ -5403,36 +5871,36 @@ public Mono> getSessionLogStreamWithResponseAsync(String ag /** * Stream console logs for a hosted agent session - * + * * Streams console logs (stdout / stderr) for a specific hosted agent session * as a Server-Sent Events (SSE) stream. - * + * * Each SSE frame contains: * - `event`: always `"log"` * - `data`: a plain-text log line (currently JSON-formatted, but the schema * is not contractual and may include additional keys or change format * over time — clients should treat it as an opaque string) - * + * * Example SSE frames: * ``` * event: log * data: {"timestamp":"2026-03-10T09:33:17.121Z","stream":"stdout","message":"Starting FoundryCBAgent server on port * 8088"} - * + * * event: log * data: {"timestamp":"2026-03-10T09:33:17.130Z","stream":"stderr","message":"INFO: Application startup complete."} - * + * * event: log * data: {"timestamp":"2026-03-10T09:34:52.714Z","stream":"status","message":"Successfully connected to container"} - * + * * event: log * data: {"timestamp":"2026-03-10T09:35:52.714Z","stream":"status","message":"No logs since last 60 seconds"} * ``` - * + * * The stream remains open until the client disconnects or the server * terminates the connection. Clients should handle reconnection as needed. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5441,7 +5909,7 @@ public Mono> getSessionLogStreamWithResponseAsync(String ag
      * }
      * }
      * 
- * + * * @param agentName The name of the hosted agent. * @param agentVersion The version of the agent. * @param sessionId The session ID (maps to an ADC sandbox). @@ -5451,7 +5919,7 @@ public Mono> getSessionLogStreamWithResponseAsync(String ag * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return a single Server-Sent Event frame emitted by the hosted agent session log stream. - * + * * Each frame contains an `event` field identifying the event type and a `data` * field carrying the payload as plain text along with {@link Response}. */ @@ -5465,19 +5933,19 @@ public Response getSessionLogStreamWithResponse(String agentName, St /** * Upload a session file - * + * * Uploads binary file content to the specified path in the session sandbox. * The service stores the file relative to the session home directory and rejects payloads larger than 50 MB. *

Request Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5486,7 +5954,7 @@ public Response getSessionLogStreamWithResponse(String agentName, St
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param path The destination file path within the sandbox, relative to the session home directory. @@ -5511,19 +5979,19 @@ public Mono> uploadSessionFileWithResponseAsync(String agen /** * Upload a session file - * + * * Uploads binary file content to the specified path in the session sandbox. * The service stores the file relative to the session home directory and rejects payloads larger than 50 MB. *

Request Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5532,7 +6000,7 @@ public Mono> uploadSessionFileWithResponseAsync(String agen
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param path The destination file path within the sandbox, relative to the session home directory. @@ -5555,17 +6023,17 @@ public Response uploadSessionFileWithResponse(String agentName, Stri /** * Download a session file - * + * * Downloads the file at the specified sandbox path as a binary stream. * The path is resolved relative to the session home directory. *

Response Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param path The file path to download from the sandbox, relative to the session home directory. @@ -5586,17 +6054,17 @@ public Mono> downloadSessionFileWithResponseAsync(String ag /** * Download a session file - * + * * Downloads the file at the specified sandbox path as a binary stream. * The path is resolved relative to the session home directory. *

Response Body Schema

- * + * *
      * {@code
      * BinaryData
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param path The file path to download from the sandbox, relative to the session home directory. @@ -5617,7 +6085,7 @@ public Response downloadSessionFileWithResponse(String agentName, St /** * List session files - * + * * Returns files and directories at the specified path in the session sandbox. * The response includes only the immediate children of the target directory and defaults to the session home * directory when no path is supplied. @@ -5644,7 +6112,7 @@ public Response downloadSessionFileWithResponse(String agentName, St * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5655,7 +6123,7 @@ public Response downloadSessionFileWithResponse(String agentName, St
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5678,7 +6146,7 @@ private Mono> listSessionFilesSinglePageAsync(String a /** * List session files - * + * * Returns files and directories at the specified path in the session sandbox. * The response includes only the immediate children of the target directory and defaults to the session home * directory when no path is supplied. @@ -5705,7 +6173,7 @@ private Mono> listSessionFilesSinglePageAsync(String a * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5716,7 +6184,7 @@ private Mono> listSessionFilesSinglePageAsync(String a
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5734,7 +6202,7 @@ public PagedFlux listSessionFilesAsync(String agentName, String sess /** * List session files - * + * * Returns files and directories at the specified path in the session sandbox. * The response includes only the immediate children of the target directory and defaults to the session home * directory when no path is supplied. @@ -5761,7 +6229,7 @@ public PagedFlux listSessionFilesAsync(String agentName, String sess * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5772,7 +6240,7 @@ public PagedFlux listSessionFilesAsync(String agentName, String sess
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5794,7 +6262,7 @@ private PagedResponse listSessionFilesSinglePage(String agentName, S /** * List session files - * + * * Returns files and directories at the specified path in the session sandbox. * The response includes only the immediate children of the target directory and defaults to the session home * directory when no path is supplied. @@ -5821,7 +6289,7 @@ private PagedResponse listSessionFilesSinglePage(String agentName, S * * You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5832,7 +6300,7 @@ private PagedResponse listSessionFilesSinglePage(String agentName, S
      * }
      * }
      * 
- * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -5850,7 +6318,7 @@ public PagedIterable listSessionFiles(String agentName, String sessi /** * Delete a session file - * + * * Deletes the specified file or directory from the session sandbox. * When `recursive` is false, deleting a non-empty directory returns 409 Conflict. *

Query Parameters

@@ -5861,7 +6329,7 @@ public PagedIterable listSessionFiles(String agentName, String sessi * service defaults to `false` if a value is not specified by the caller. * * You can add these to a request with {@link RequestOptions#addQueryParam} - * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param path The file or directory path to delete, relative to the session home directory. @@ -5881,7 +6349,7 @@ public Mono> deleteSessionFileWithResponseAsync(String agentName, /** * Delete a session file - * + * * Deletes the specified file or directory from the session sandbox. * When `recursive` is false, deleting a non-empty directory returns 409 Conflict. *

Query Parameters

@@ -5892,7 +6360,7 @@ public Mono> deleteSessionFileWithResponseAsync(String agentName, * service defaults to `false` if a value is not specified by the caller. * * You can add these to a request with {@link RequestOptions#addQueryParam} - * + * * @param agentName The name of the agent. * @param sessionId The session ID. * @param path The file or directory path to delete, relative to the session home directory. @@ -5910,9 +6378,392 @@ public Response deleteSessionFileWithResponse(String agentName, String ses this.client.getServiceVersion().getVersion(), requestOptions, Context.NONE); } + /** + * Publish an agent to Microsoft 365 + * + * Publishes a Foundry agent to Microsoft 365 / Microsoft Teams and returns the published title and + * Teams app ids. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to publish. + * @param publishAgentToMicrosoft365Request The publishAgentToMicrosoft365Request parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return response from publishing an agent to Microsoft 365 / Microsoft Teams along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> publishAgentToMicrosoft365WithResponseAsync(String agentName, + BinaryData publishAgentToMicrosoft365Request, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.publishAgentToMicrosoft365(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), contentType, accept, publishAgentToMicrosoft365Request, + requestOptions, context)); + } + + /** + * Publish an agent to Microsoft 365 + * + * Publishes a Foundry agent to Microsoft 365 / Microsoft Teams and returns the published title and + * Teams app ids. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to publish. + * @param publishAgentToMicrosoft365Request The publishAgentToMicrosoft365Request parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return response from publishing an agent to Microsoft 365 / Microsoft Teams along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response publishAgentToMicrosoft365WithResponse(String agentName, + BinaryData publishAgentToMicrosoft365Request, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.publishAgentToMicrosoft365Sync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), contentType, accept, publishAgentToMicrosoft365Request, + requestOptions, Context.NONE); + } + + /** + * Generate a Microsoft 365 app package + * + * Generates the Microsoft Teams app package (zip) for a Foundry agent from the supplied publish + * request, without publishing it. Returns the app package as `application/zip`. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent to generate the app package for. + * @param getMicrosoft365AppPackageRequest The getMicrosoft365AppPackageRequest parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getMicrosoft365AppPackageWithResponseAsync(String agentName, + BinaryData getMicrosoft365AppPackageRequest, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/zip"; + return FluxUtil.withContext(context -> service.getMicrosoft365AppPackage(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), contentType, accept, getMicrosoft365AppPackageRequest, + requestOptions, context)); + } + + /** + * Generate a Microsoft 365 app package + * + * Generates the Microsoft Teams app package (zip) for a Foundry agent from the supplied publish + * request, without publishing it. Returns the app package as `application/zip`. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agentDisplayName: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     publishAsAutopilot: Boolean (Optional)
+     *     accessBoundaries (Optional): [
+     *         String(read.1on1.developers/read.1on1.manager/read.1on1.allowlisted/read.1on1.tenant/write.1on1.developers/write.1on1.manager/write.1on1.allowlisted/write.1on1.tenant/read.group.developers/read.group.allowlisted/read.group.manager-invited/read.group.manager-present/read.group.tenant/write.group.developers/write.group.allowlisted/write.group.manager-invited/write.group.manager-present/write.group.tenant) (Optional)
+     *     ]
+     *     optionalPermissionScopes (Optional): [
+     *          (Optional){
+     *             resourceAppId: String (Required)
+     *             scopes (Required): [
+     *                 String (Required)
+     *             ]
+     *         }
+     *     ]
+     *     publishScope: String(Personal/Shared/Tenant) (Required)
+     *     canRespondWithoutMention: Boolean (Optional)
+     *     appVersion: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     *     colorIconBase64: String (Optional)
+     *     outlineIconBase64: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent to generate the app package for. + * @param getMicrosoft365AppPackageRequest The getMicrosoft365AppPackageRequest parameter. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getMicrosoft365AppPackageWithResponse(String agentName, + BinaryData getMicrosoft365AppPackageRequest, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/zip"; + return service.getMicrosoft365AppPackageSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), contentType, accept, getMicrosoft365AppPackageRequest, + requestOptions, Context.NONE); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
publishAsDigitalWorkerBooleanNoWhen true, returns defaults for publishing the + * agent as an autopilot (digital worker) agent.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     appPublishScope: String(Personal/Shared/Tenant) (Optional)
+     *     agentName: String (Optional)
+     *     agentDisplayName: String (Optional)
+     *     appRegistrationClientId: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     appVersion: String (Optional)
+     *     recommendedNextAppVersion: String (Optional)
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to get publish defaults for. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getMicrosoft365PublishDefaultsWithResponseAsync(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getMicrosoft365PublishDefaults(this.client.getEndpoint(), + agentName, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get Microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
publishAsDigitalWorkerBooleanNoWhen true, returns defaults for publishing the + * agent as an autopilot (digital worker) agent.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     appPublishScope: String(Personal/Shared/Tenant) (Optional)
+     *     agentName: String (Optional)
+     *     agentDisplayName: String (Optional)
+     *     appRegistrationClientId: String (Optional)
+     *     botServiceArmId: String (Optional)
+     *     appVersion: String (Optional)
+     *     recommendedNextAppVersion: String (Optional)
+     *     titleId: String (Optional)
+     *     teamsAppId: String (Optional)
+     *     shortDescription: String (Optional)
+     *     fullDescription: String (Optional)
+     *     developerName: String (Optional)
+     *     developerWebsiteUrl: String (Optional)
+     *     privacyUrl: String (Optional)
+     *     termsOfUseUrl: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent to get publish defaults for. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return microsoft 365 publish defaults + * + * Returns default and previously-published values used to pre-populate a Microsoft 365 publish + * request for a Foundry agent along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getMicrosoft365PublishDefaultsWithResponse(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getMicrosoft365PublishDefaultsSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + /** * List conversations - * + * * Returns the conversations available in the current project. *

Query Parameters

* @@ -5948,7 +6799,7 @@ public Response deleteSessionFileWithResponse(String agentName, String ses *
* You can add these to a request with {@link RequestOptions#addHeader} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -5963,7 +6814,7 @@ public Response deleteSessionFileWithResponse(String agentName, String ses
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -5984,7 +6835,7 @@ private Mono> listAgentConversationsSinglePageAsync(Re /** * List conversations - * + * * Returns the conversations available in the current project. *

Query Parameters

* @@ -6020,7 +6871,7 @@ private Mono> listAgentConversationsSinglePageAsync(Re *
* You can add these to a request with {@link RequestOptions#addHeader} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -6035,7 +6886,7 @@ private Mono> listAgentConversationsSinglePageAsync(Re
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -6050,7 +6901,7 @@ public PagedFlux listAgentConversationsAsync(RequestOptions requestO /** * List conversations - * + * * Returns the conversations available in the current project. *

Query Parameters

* @@ -6086,7 +6937,7 @@ public PagedFlux listAgentConversationsAsync(RequestOptions requestO *
* You can add these to a request with {@link RequestOptions#addHeader} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -6101,7 +6952,7 @@ public PagedFlux listAgentConversationsAsync(RequestOptions requestO
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -6120,7 +6971,7 @@ private PagedResponse listAgentConversationsSinglePage(RequestOption /** * List conversations - * + * * Returns the conversations available in the current project. *

Query Parameters

* @@ -6156,7 +7007,7 @@ private PagedResponse listAgentConversationsSinglePage(RequestOption *
* You can add these to a request with {@link RequestOptions#addHeader} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -6171,7 +7022,7 @@ private PagedResponse listAgentConversationsSinglePage(RequestOption
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java new file mode 100644 index 000000000000..196392b6649d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java @@ -0,0 +1,2440 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.implementation; + +import com.azure.ai.agents.AgentsServiceVersion; +import com.azure.core.annotation.Delete; +import com.azure.core.annotation.ExpectedResponses; +import com.azure.core.annotation.Get; +import com.azure.core.annotation.HeaderParam; +import com.azure.core.annotation.Host; +import com.azure.core.annotation.HostParam; +import com.azure.core.annotation.PathParam; +import com.azure.core.annotation.QueryParam; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceInterface; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.annotation.UnexpectedResponseExceptionType; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.PagedFlux; +import com.azure.core.http.rest.PagedIterable; +import com.azure.core.http.rest.PagedResponse; +import com.azure.core.http.rest.PagedResponseBase; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.http.rest.RestProxy; +import com.azure.core.util.BinaryData; +import com.azure.core.util.Context; +import com.azure.core.util.FluxUtil; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import reactor.core.publisher.Mono; + +/** + * An instance of this class provides access to all the operations defined in BetaAgentEndpointConversations. + */ +public final class BetaAgentEndpointConversationsImpl { + /** + * The proxy service used to perform REST calls. + */ + private final BetaAgentEndpointConversationsService service; + + /** + * The service client containing this operation class. + */ + private final AgentsClientImpl client; + + /** + * Initializes an instance of BetaAgentEndpointConversationsImpl. + * + * @param client the instance of the service client containing this operation class. + */ + BetaAgentEndpointConversationsImpl(AgentsClientImpl client) { + this.service = RestProxy.create(BetaAgentEndpointConversationsService.class, client.getHttpPipeline(), + client.getSerializerAdapter()); + this.client = client; + } + + /** + * Gets Service version. + * + * @return the serviceVersion value. + */ + public AgentsServiceVersion getServiceVersion() { + return client.getServiceVersion(); + } + + /** + * The interface defining all the services for AgentsClientBetaAgentEndpointConversations to be used by the proxy + * service to perform REST calls. + */ + @Host("{endpoint}") + @ServiceInterface(name = "AgentsClientBetaAgentEndpointConversations") + public interface BetaAgentEndpointConversationsService { + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> listAgentConversations(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response listAgentConversationsSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversation(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Delete("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}") + @ExpectedResponses({ 204 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> deleteAgentConversation(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, RequestOptions requestOptions, Context context); + + @Delete("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}") + @ExpectedResponses({ 204 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response deleteAgentConversationSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/responses") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> listAgentConversationResponses(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/responses") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response listAgentConversationResponsesSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/responses/{response_id}") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationResponse(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("response_id") String responseId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/responses/{response_id}") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationResponseSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("response_id") String responseId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/responses/{response_id}/items") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> listAgentConversationResponseItems(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("response_id") String responseId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/responses/{response_id}/items") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response listAgentConversationResponseItemsSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("response_id") String responseId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> listAgentConversationItems(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response listAgentConversationItemsSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationItem(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationItemSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationItemAudio(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationItemAudioSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio/content") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationItemAudioContent(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio/content") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationItemAudioContentSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/audio") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationAudio(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/audio") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationAudioSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/audio/content") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationAudioContent(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/audio/content") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationAudioContentSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listAgentConversationsSinglePageAsync(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentConversations(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationsAsync(String agentName, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listAgentConversationsSinglePageAsync(agentName, requestOptions)); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listAgentConversationsSinglePage(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listAgentConversationsSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List voice agent conversations + * + * Returns the conversations persisted for the specified voice agent endpoint. + * Conversations are present when the session's effective `store` setting is `true`, whether inherited from the + * agent definition or enabled by the WebSocket session override. + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversations(String agentName, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listAgentConversationsSinglePage(agentName, requestOptions)); + } + + /** + * Get a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist along with + * {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationWithResponseAsync(String agentName, String conversationId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getAgentConversation(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String (Required)
+     *     status: String(in_progress/completed/failed) (Required)
+     *     created_at: long (Required)
+     *     completed_at: Long (Optional)
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     last_error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation + * + * Retrieves a single conversation recorded for the specified voice agent endpoint by its id. + * Returns `404` when the conversation was not persisted (`store = false`) or does not exist along with + * {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentConversationSync(this.client.getEndpoint(), agentName, conversationId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Delete a voice agent conversation + * + * Deletes a conversation and all of its stored data — responses, items, and any audio (cascade). This is + * the customer's explicit data-deletion control for voice conversations. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to delete. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> deleteAgentConversationWithResponseAsync(String agentName, String conversationId, + RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.deleteAgentConversation(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), requestOptions, context)); + } + + /** + * Delete a voice agent conversation + * + * Deletes a conversation and all of its stored data — responses, items, and any audio (cascade). This is + * the customer's explicit data-deletion control for voice conversations. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation to delete. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response deleteAgentConversationWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + return service.deleteAgentConversationSync(this.client.getEndpoint(), agentName, conversationId, + this.client.getServiceVersion().getVersion(), requestOptions, Context.NONE); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listAgentConversationResponsesSinglePageAsync(String agentName, + String conversationId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentConversationResponses(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponsesAsync(String agentName, String conversationId, + RequestOptions requestOptions) { + return new PagedFlux<>( + () -> listAgentConversationResponsesSinglePageAsync(agentName, conversationId, requestOptions)); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listAgentConversationResponsesSinglePage(String agentName, String conversationId, + RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listAgentConversationResponsesSync(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List responses in a voice agent conversation + * + * Returns a paged collection of the responses (model inference turns) recorded for the specified + * conversation. The per-response `output` projection may be omitted here; use the response-items route + * for the canonical paged output. Returns `404` when the conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose responses are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponses(String agentName, String conversationId, + RequestOptions requestOptions) { + return new PagedIterable<>( + () -> listAgentConversationResponsesSinglePage(agentName, conversationId, requestOptions)); + } + + /** + * Get a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. Returns `404` when the conversation or response was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationResponseWithResponseAsync(String agentName, + String conversationId, String responseId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext( + context -> service.getAgentConversationResponse(this.client.getEndpoint(), agentName, conversationId, + responseId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status. Returns `404` when the conversation or response was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     object: String(realtime.response) (Optional)
+     *     status: String(completed/cancelled/failed/incomplete/in_progress) (Optional)
+     *     status_details (Optional): {
+     *         type: String(completed/cancelled/failed/incomplete) (Optional)
+     *         reason: String(turn_detected/client_cancelled/max_output_tokens/content_filter) (Optional)
+     *         error (Optional): {
+     *             type: String (Optional)
+     *             code: String (Optional)
+     *         }
+     *     }
+     *     usage (Optional): {
+     *         total_tokens: Long (Optional)
+     *         input_tokens: Long (Optional)
+     *         output_tokens: Long (Optional)
+     *         input_token_details (Optional): {
+     *             cached_tokens: Long (Optional)
+     *             text_tokens: Long (Optional)
+     *             image_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *             cached_tokens_details (Optional): {
+     *                 text_tokens: Long (Optional)
+     *                 image_tokens: Long (Optional)
+     *                 audio_tokens: Long (Optional)
+     *             }
+     *         }
+     *         output_token_details (Optional): {
+     *             text_tokens: Long (Optional)
+     *             audio_tokens: Long (Optional)
+     *         }
+     *     }
+     *     conversation_id: String (Required)
+     *     output_modalities (Optional): [
+     *         String(text/audio) (Optional)
+     *     ]
+     *     max_output_tokens: BinaryData (Optional)
+     *     output (Optional): [
+     *          (Optional){
+     *             type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     *         }
+     *     ]
+     *     audio (Optional): {
+     *         output (Optional): {
+     *             voice: String (Optional)
+     *             voice_type: String(openai/azure-standard/azure-custom/azure-personal/avatar-voice-sync/azure-realtime-native) (Optional)
+     *             voice_locale: String (Optional)
+     *             format (Optional): {
+     *                 type: String(audio/pcm/audio/pcmu/audio/pcma) (Required)
+     *             }
+     *         }
+     *     }
+     *     metadata (Optional): {
+     *         String: String (Required)
+     *     }
+     *     temperature: Double (Optional)
+     *     created_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation response + * + * Retrieves a single response from the specified conversation by its id, including its `output` items, + * `usage`, and status along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationResponseWithResponse(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentConversationResponseSync(this.client.getEndpoint(), agentName, conversationId, + responseId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listAgentConversationResponseItemsSinglePageAsync(String agentName, + String conversationId, String responseId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentConversationResponseItems(this.client.getEndpoint(), agentName, + conversationId, responseId, this.client.getServiceVersion().getVersion(), accept, requestOptions, + context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationResponseItemsAsync(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listAgentConversationResponseItemsSinglePageAsync(agentName, conversationId, + responseId, requestOptions)); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listAgentConversationResponseItemsSinglePage(String agentName, + String conversationId, String responseId, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res + = service.listAgentConversationResponseItemsSync(this.client.getEndpoint(), agentName, conversationId, + responseId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List items produced by a voice agent conversation response + * + * Returns a paged collection of the output items produced by a specific response (the response's output + * projection). For the complete ordered conversation history — including user input and client-created + * tool outputs — use the conversation items route instead. Returns `404` when the conversation or + * response was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the response. + * @param responseId The id of the response whose output items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationResponseItems(String agentName, String conversationId, + String responseId, RequestOptions requestOptions) { + return new PagedIterable<>( + () -> listAgentConversationResponseItemsSinglePage(agentName, conversationId, responseId, requestOptions)); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listAgentConversationItemsSinglePageAsync(String agentName, + String conversationId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentConversationItems(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAgentConversationItemsAsync(String agentName, String conversationId, + RequestOptions requestOptions) { + return new PagedFlux<>( + () -> listAgentConversationItemsSinglePageAsync(agentName, conversationId, requestOptions)); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listAgentConversationItemsSinglePage(String agentName, String conversationId, + RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listAgentConversationItemsSync(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List items in a voice agent conversation + * + * Returns a paged collection of items — the complete ordered conversation history, including user input, + * assistant output, and client-created tool outputs (transcripts + tool events). Returns `404` when the + * conversation was not persisted (`store = false`). + *

Query Parameters

+ * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
limitIntegerNoA limit on the number of objects to be returned. Limit can range + * between 1 and 100, and the + * default is 20.
orderStringNoSort order by the `created_at` timestamp of the objects. `asc` + * for ascending order and`desc` + * for descending order. Allowed values: "asc", "desc".
afterStringNoA cursor for use in pagination. `after` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list.
beforeStringNoA cursor for use in pagination. `before` is an object ID that + * defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose items are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listAgentConversationItems(String agentName, String conversationId, + RequestOptions requestOptions) { + return new PagedIterable<>( + () -> listAgentConversationItemsSinglePage(agentName, conversationId, requestOptions)); + } + + /** + * Get a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. An + * `input_audio`/`output_audio` content part indicates that audio is available for the item; the canonical per-item + * audio metadata is the `/items/{item_id}/audio` resource, and the bytes are streamed by + * `/items/{item_id}/audio/content`. Returns `404` when the conversation or item was not persisted + * (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript along with + * {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemWithResponseAsync(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getAgentConversationItem(this.client.getEndpoint(), agentName, + conversationId, itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript. An + * `input_audio`/`output_audio` content part indicates that audio is available for the item; the canonical per-item + * audio metadata is the `/items/{item_id}/audio` resource, and the bytes are streamed by + * `/items/{item_id}/audio/content`. Returns `404` when the conversation or item was not persisted + * (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     type: String(function_call/function_call_output/mcp_approval_response/mcp_list_tools/mcp_call/mcp_approval_request/message) (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item to retrieve. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item + * + * Retrieves a single item from the specified conversation by its id, including its transcript along with + * {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemWithResponse(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentConversationItemSync(this.client.getEndpoint(), agentName, conversationId, itemId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Get a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemAudioWithResponseAsync(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.getAgentConversationItemAudio(this.client.getEndpoint(), agentName, + conversationId, itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's audio metadata + * + * Returns metadata for a single conversation item's audio segment, including the common playback facts + * (role, format/codec, sample rate, channels, offset, duration) for both Foundry-managed and + * bring-your-own-storage (BYOS) recordings; for BYOS the response additionally includes `blob_uri`, the URI + * of the recording in the customer's own storage (no SAS) that the customer downloads with their own credentials. + * Requires the conversation to have persisted audio (`store = true`); returns `404` when the conversation, + * item, or its audio was not persisted along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemAudioWithResponse(String agentName, String conversationId, + String itemId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentConversationItemAudioSync(this.client.getEndpoint(), agentName, conversationId, itemId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Stream a voice agent conversation item's audio + * + * Streams a single conversation item's audio as a WAV (`audio/wav`) byte stream through the service (no SAS + * URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) recordings the + * bytes are not proxied — the caller must download directly from customer storage using the `blob_uri` + * returned by the item's `/audio` metadata route — so this route returns `409 Conflict` for BYOS recordings. + * Returns `404` when the conversation, item, or its audio was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemAudioContentWithResponseAsync(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "audio/wav"; + return FluxUtil + .withContext(context -> service.getAgentConversationItemAudioContent(this.client.getEndpoint(), agentName, + conversationId, itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Stream a voice agent conversation item's audio + * + * Streams a single conversation item's audio as a WAV (`audio/wav`) byte stream through the service (no SAS + * URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) recordings the + * bytes are not proxied — the caller must download directly from customer storage using the `blob_uri` + * returned by the item's `/audio` metadata route — so this route returns `409 Conflict` for BYOS recordings. + * Returns `404` when the conversation, item, or its audio was not persisted (`store = false`). + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemAudioContentWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "audio/wav"; + return service.getAgentConversationItemAudioContentSync(this.client.getEndpoint(), agentName, conversationId, + itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Get a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). The common metadata (format, sample rate, channels, channel layout, duration) is returned + * for both Foundry-managed and bring-your-own-storage (BYOS) recordings; for BYOS the response additionally + * includes `blob_uri`, the URI of the recording in the customer's own storage (no SAS) that the customer downloads + * with their own credentials. The recording is built once from the per-turn segments after persistence + * finalization succeeds. While the conversation is `in_progress`, this route returns retriable `409 Conflict` + * with `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, metadata is available subject to the existing BYOS behavior. Requires the + * conversation to have persisted audio (`store = true`); otherwise returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     format: String(wav) (Required)
+     *     sample_rate: int (Required)
+     *     channels: int (Required)
+     *     channel_layout (Required): {
+     *         left: String (Required)
+     *         right: String (Required)
+     *     }
+     *     duration_ms: long (Required)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right) along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationAudioWithResponseAsync(String agentName, + String conversationId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getAgentConversationAudio(this.client.getEndpoint(), agentName, + conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right). The common metadata (format, sample rate, channels, channel layout, duration) is returned + * for both Foundry-managed and bring-your-own-storage (BYOS) recordings; for BYOS the response additionally + * includes `blob_uri`, the URI of the recording in the customer's own storage (no SAS) that the customer downloads + * with their own credentials. The recording is built once from the per-turn segments after persistence + * finalization succeeds. While the conversation is `in_progress`, this route returns retriable `409 Conflict` + * with `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, metadata is available subject to the existing BYOS behavior. Requires the + * conversation to have persisted audio (`store = true`); otherwise returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     format: String(wav) (Required)
+     *     sample_rate: int (Required)
+     *     channels: int (Required)
+     *     channel_layout (Required): {
+     *         left: String (Required)
+     *         right: String (Required)
+     *     }
+     *     duration_ms: long (Required)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation's merged recording metadata + * + * Returns metadata for the whole-call merged stereo recording (user audio on the left channel, agent audio + * on the right) along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationAudioWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentConversationAudioSync(this.client.getEndpoint(), agentName, conversationId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Stream a voice agent conversation's merged recording + * + * Streams the whole-call merged stereo recording as a WAV (`audio/wav`) byte stream through the service + * (no SAS URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) + * recordings the bytes are not proxied — the caller must download directly from customer storage using the + * `blob_uri` returned by the metadata route — so this route returns `409 Conflict` for BYOS recordings. + * While the conversation is `in_progress`, this route returns retriable `409 Conflict` with + * `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, content is available subject to the existing BYOS behavior. A conversation + * without persisted audio (`store = false`) returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationAudioContentWithResponseAsync(String agentName, + String conversationId, RequestOptions requestOptions) { + final String accept = "audio/wav"; + return FluxUtil.withContext(context -> service.getAgentConversationAudioContent(this.client.getEndpoint(), + agentName, conversationId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Stream a voice agent conversation's merged recording + * + * Streams the whole-call merged stereo recording as a WAV (`audio/wav`) byte stream through the service + * (no SAS URL). This route serves Foundry-managed storage only. For bring-your-own-storage (BYOS) + * recordings the bytes are not proxied — the caller must download directly from customer storage using the + * `blob_uri` returned by the metadata route — so this route returns `409 Conflict` for BYOS recordings. + * While the conversation is `in_progress`, this route returns retriable `409 Conflict` with + * `error.code = recording_not_ready` and a `Retry-After` header when retry guidance is available. When the + * conversation is `failed`, it returns terminal `409 Conflict` with `error.code = recording_unavailable`. + * For a `completed` conversation, content is available subject to the existing BYOS behavior. A conversation + * without persisted audio (`store = false`) returns `404`. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation whose merged recording is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationAudioContentWithResponse(String agentName, String conversationId, + RequestOptions requestOptions) { + final String accept = "audio/wav"; + return service.getAgentConversationAudioContentSync(this.client.getEndpoint(), agentName, conversationId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + private List getValues(BinaryData binaryData, String... path) { + try { + Object value = binaryData.toObject(Map.class); + for (String segment : path) { + value = ((Map) value).get(segment); + } + List values = (List) value; + return values.stream().map(BinaryData::fromObject).collect(Collectors.toList()); + } catch (RuntimeException e) { + return null; + } + } + + private String getNextLink(BinaryData binaryData, String... path) { + try { + Object value = binaryData.toObject(Map.class); + for (String segment : path) { + value = ((Map) value).get(segment); + } + return (String) value; + } catch (RuntimeException e) { + return null; + } + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java new file mode 100644 index 000000000000..fcb74d1b0773 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java @@ -0,0 +1,206 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.implementation; + +import com.azure.ai.agents.AgentsServiceVersion; +import com.azure.core.annotation.ExpectedResponses; +import com.azure.core.annotation.Get; +import com.azure.core.annotation.Host; +import com.azure.core.annotation.HostParam; +import com.azure.core.annotation.PathParam; +import com.azure.core.annotation.QueryParam; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceInterface; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.annotation.UnexpectedResponseExceptionType; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.http.rest.RestProxy; +import com.azure.core.util.Context; +import com.azure.core.util.FluxUtil; +import reactor.core.publisher.Mono; + +/** + * An instance of this class provides access to all the operations defined in BetaVoiceAgentWebSockets. + */ +public final class BetaVoiceAgentWebSocketsImpl { + /** + * The proxy service used to perform REST calls. + */ + private final BetaVoiceAgentWebSocketsService service; + + /** + * The service client containing this operation class. + */ + private final AgentsClientImpl client; + + /** + * Initializes an instance of BetaVoiceAgentWebSocketsImpl. + * + * @param client the instance of the service client containing this operation class. + */ + BetaVoiceAgentWebSocketsImpl(AgentsClientImpl client) { + this.service = RestProxy.create(BetaVoiceAgentWebSocketsService.class, client.getHttpPipeline(), + client.getSerializerAdapter()); + this.client = client; + } + + /** + * Gets Service version. + * + * @return the serviceVersion value. + */ + public AgentsServiceVersion getServiceVersion() { + return client.getServiceVersion(); + } + + /** + * The interface defining all the services for AgentsClientBetaVoiceAgentWebSockets to be used by the proxy service + * to perform REST calls. + */ + @Host("{endpoint}") + @ServiceInterface(name = "AgentsClientBetaVoiceAgentWebSockets") + public interface BetaVoiceAgentWebSocketsService { + @Get("/agents/{agent_name}/endpoint/protocols/voice") + @ExpectedResponses({ 101 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> connectVoiceAgent(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice") + @ExpectedResponses({ 101 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response connectVoiceAgentSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion, + RequestOptions requestOptions, Context context); + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + *

Query Parameters

+ * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
foundry_featuresStringNoA query alternative to the `Foundry-Features` header + * for clients that cannot set headers during a + * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is + * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", + * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview".
storeBooleanNoWhether to persist the conversation created by this WebSocket + * session. If omitted, the service honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only.
x-agent-version-overrideStringNoSelects a specific version of the voice agent + * for this session.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Sec-WebSocket-ProtocolStringNoThe requested WebSocket subprotocol. Omit this + * header or request exactly `realtime`. Allowed values: "realtime".
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
Sec-WebSocket-ProtocolStringThe negotiated WebSocket subprotocol. Present only when the + * client requests `realtime`.
+ * + * @param agentName The name of the voice agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> connectVoiceAgentWithResponseAsync(String agentName, RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.connectVoiceAgent(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), requestOptions, context)); + } + + /** + * Connect to a voice agent + * + * Connects to a voice agent over WebSocket. The client must send an HTTP GET with `Upgrade: websocket` + * headers. The optional `realtime` subprotocol is the only accepted subprotocol value. Supply the + * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` + * query parameter. + * + * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` + * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with + * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + *

Query Parameters

+ * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
foundry_featuresStringNoA query alternative to the `Foundry-Features` header + * for clients that cannot set headers during a + * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is + * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", + * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview".
storeBooleanNoWhether to persist the conversation created by this WebSocket + * session. If omitted, the service honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only.
x-agent-version-overrideStringNoSelects a specific version of the voice agent + * for this session.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Sec-WebSocket-ProtocolStringNoThe requested WebSocket subprotocol. Omit this + * header or request exactly `realtime`. Allowed values: "realtime".
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
Sec-WebSocket-ProtocolStringThe negotiated WebSocket subprotocol. Present only when the + * client requests `realtime`.
+ * + * @param agentName The name of the voice agent. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response connectVoiceAgentWithResponse(String agentName, RequestOptions requestOptions) { + return service.connectVoiceAgentSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), requestOptions, Context.NONE); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java index 3723777d5170..fdb203393020 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java @@ -55,7 +55,7 @@ public final class ToolboxesImpl { /** * Initializes an instance of ToolboxesImpl. - * + * * @param client the instance of the service client containing this operation class. */ ToolboxesImpl(AgentsClientImpl client) { @@ -66,7 +66,7 @@ public final class ToolboxesImpl { /** * Gets Service version. - * + * * @return the serviceVersion value. */ public AgentsServiceVersion getServiceVersion() { @@ -249,10 +249,10 @@ Response deleteToolboxVersionSync(@HostParam("endpoint") String endpoint, /** * Create a new version of a toolbox - * + * * Creates a new toolbox version, provisioning the toolbox itself if it does not already exist. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -262,7 +262,7 @@ Response deleteToolboxVersionSync(@HostParam("endpoint") String endpoint,
      *     }
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -286,9 +286,9 @@ Response deleteToolboxVersionSync(@HostParam("endpoint") String endpoint,
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -302,7 +302,7 @@ Response deleteToolboxVersionSync(@HostParam("endpoint") String endpoint,
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -326,7 +326,7 @@ Response deleteToolboxVersionSync(@HostParam("endpoint") String endpoint,
      * }
      * }
      * 
- * + * * @param name The name of the toolbox. If the toolbox does not exist, it will be created. * @param createToolboxVersionRequest The createToolboxVersionRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -348,10 +348,10 @@ public Mono> createToolboxVersionWithResponseAsync(String n /** * Create a new version of a toolbox - * + * * Creates a new toolbox version, provisioning the toolbox itself if it does not already exist. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -361,7 +361,7 @@ public Mono> createToolboxVersionWithResponseAsync(String n
      *     }
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -385,9 +385,9 @@ public Mono> createToolboxVersionWithResponseAsync(String n
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -401,7 +401,7 @@ public Mono> createToolboxVersionWithResponseAsync(String n
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -425,7 +425,7 @@ public Mono> createToolboxVersionWithResponseAsync(String n
      * }
      * }
      * 
- * + * * @param name The name of the toolbox. If the toolbox does not exist, it will be created. * @param createToolboxVersionRequest The createToolboxVersionRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -447,10 +447,10 @@ public Response createToolboxVersionWithResponse(String name, Binary /** * Retrieve a toolbox - * + * * Retrieves the specified toolbox and its current configuration. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -460,7 +460,7 @@ public Response createToolboxVersionWithResponse(String name, Binary
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -479,10 +479,10 @@ public Mono> getToolboxWithResponseAsync(String name, Reque /** * Retrieve a toolbox - * + * * Retrieves the specified toolbox and its current configuration. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -492,7 +492,7 @@ public Mono> getToolboxWithResponseAsync(String name, Reque
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -510,7 +510,7 @@ public Response getToolboxWithResponse(String name, RequestOptions r /** * List toolboxes - * + * * Returns the toolboxes available in the current project. *

Query Parameters

* @@ -533,7 +533,7 @@ public Response getToolboxWithResponse(String name, RequestOptions r *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -543,7 +543,7 @@ public Response getToolboxWithResponse(String name, RequestOptions r
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -564,7 +564,7 @@ private Mono> listToolboxesSinglePageAsync(RequestOpti /** * List toolboxes - * + * * Returns the toolboxes available in the current project. *

Query Parameters

* @@ -587,7 +587,7 @@ private Mono> listToolboxesSinglePageAsync(RequestOpti *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -597,7 +597,7 @@ private Mono> listToolboxesSinglePageAsync(RequestOpti
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -612,7 +612,7 @@ public PagedFlux listToolboxesAsync(RequestOptions requestOptions) { /** * List toolboxes - * + * * Returns the toolboxes available in the current project. *

Query Parameters

* @@ -635,7 +635,7 @@ public PagedFlux listToolboxesAsync(RequestOptions requestOptions) { *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -645,7 +645,7 @@ public PagedFlux listToolboxesAsync(RequestOptions requestOptions) {
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -664,7 +664,7 @@ private PagedResponse listToolboxesSinglePage(RequestOptions request /** * List toolboxes - * + * * Returns the toolboxes available in the current project. *

Query Parameters

* @@ -687,7 +687,7 @@ private PagedResponse listToolboxesSinglePage(RequestOptions request *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -697,7 +697,7 @@ private PagedResponse listToolboxesSinglePage(RequestOptions request
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -712,7 +712,7 @@ public PagedIterable listToolboxes(RequestOptions requestOptions) { /** * List toolbox versions - * + * * Returns the available versions for the specified toolbox. *

Query Parameters

* @@ -735,7 +735,7 @@ public PagedIterable listToolboxes(RequestOptions requestOptions) { *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -749,7 +749,7 @@ public PagedIterable listToolboxes(RequestOptions requestOptions) {
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -773,7 +773,7 @@ public PagedIterable listToolboxes(RequestOptions requestOptions) {
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to list versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -796,7 +796,7 @@ private Mono> listToolboxVersionsSinglePageAsync(Strin /** * List toolbox versions - * + * * Returns the available versions for the specified toolbox. *

Query Parameters

* @@ -819,7 +819,7 @@ private Mono> listToolboxVersionsSinglePageAsync(Strin *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -833,7 +833,7 @@ private Mono> listToolboxVersionsSinglePageAsync(Strin
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -857,7 +857,7 @@ private Mono> listToolboxVersionsSinglePageAsync(Strin
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to list versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -873,7 +873,7 @@ public PagedFlux listToolboxVersionsAsync(String name, RequestOption /** * List toolbox versions - * + * * Returns the available versions for the specified toolbox. *

Query Parameters

* @@ -896,7 +896,7 @@ public PagedFlux listToolboxVersionsAsync(String name, RequestOption *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -910,7 +910,7 @@ public PagedFlux listToolboxVersionsAsync(String name, RequestOption
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -934,7 +934,7 @@ public PagedFlux listToolboxVersionsAsync(String name, RequestOption
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to list versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -954,7 +954,7 @@ private PagedResponse listToolboxVersionsSinglePage(String name, Req /** * List toolbox versions - * + * * Returns the available versions for the specified toolbox. *

Query Parameters

* @@ -977,7 +977,7 @@ private PagedResponse listToolboxVersionsSinglePage(String name, Req *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -991,7 +991,7 @@ private PagedResponse listToolboxVersionsSinglePage(String name, Req
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -1015,7 +1015,7 @@ private PagedResponse listToolboxVersionsSinglePage(String name, Req
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to list versions for. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1031,10 +1031,10 @@ public PagedIterable listToolboxVersions(String name, RequestOptions /** * Retrieve a specific version of a toolbox - * + * * Retrieves the specified version of a toolbox by name and version identifier. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1048,7 +1048,7 @@ public PagedIterable listToolboxVersions(String name, RequestOptions
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -1072,7 +1072,7 @@ public PagedIterable listToolboxVersions(String name, RequestOptions
      * }
      * }
      * 
- * + * * @param name The name of the toolbox. * @param version The version identifier to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1092,10 +1092,10 @@ public Mono> getToolboxVersionWithResponseAsync(String name /** * Retrieve a specific version of a toolbox - * + * * Retrieves the specified version of a toolbox by name and version identifier. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1109,7 +1109,7 @@ public Mono> getToolboxVersionWithResponseAsync(String name
      *     created_at: long (Required)
      *     tools (Required): [
      *          (Required){
-     *             type: String(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/toolbox_search_preview/a2a) (Required)
+     *             type: String(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/toolbox_search_preview/a2a/shell/web_iq_preview) (Required)
      *             name: String (Optional)
      *             description: String (Optional)
      *             tool_configs (Optional): {
@@ -1133,7 +1133,7 @@ public Mono> getToolboxVersionWithResponseAsync(String name
      * }
      * }
      * 
- * + * * @param name The name of the toolbox. * @param version The version identifier to retrieve. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1153,10 +1153,10 @@ public Response getToolboxVersionWithResponse(String name, String ve /** * Update a toolbox to point to a specific version - * + * * Updates the toolbox's default version pointer to the specified version. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1164,9 +1164,9 @@ public Response getToolboxVersionWithResponse(String name, String ve
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1176,7 +1176,7 @@ public Response getToolboxVersionWithResponse(String name, String ve
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to update. * @param updateToolboxRequest The updateToolboxRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1199,10 +1199,10 @@ public Mono> updateToolboxWithResponseAsync(String name, Bi /** * Update a toolbox to point to a specific version - * + * * Updates the toolbox's default version pointer to the specified version. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1210,9 +1210,9 @@ public Mono> updateToolboxWithResponseAsync(String name, Bi
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1222,7 +1222,7 @@ public Mono> updateToolboxWithResponseAsync(String name, Bi
      * }
      * }
      * 
- * + * * @param name The name of the toolbox to update. * @param updateToolboxRequest The updateToolboxRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1243,9 +1243,9 @@ public Response updateToolboxWithResponse(String name, BinaryData up /** * Delete a toolbox - * + * * Removes the specified toolbox along with all of its versions. - * + * * @param name The name of the toolbox to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1262,9 +1262,9 @@ public Mono> deleteToolboxWithResponseAsync(String name, RequestO /** * Delete a toolbox - * + * * Removes the specified toolbox along with all of its versions. - * + * * @param name The name of the toolbox to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1281,9 +1281,9 @@ public Response deleteToolboxWithResponse(String name, RequestOptions requ /** * Delete a specific version of a toolbox - * + * * Removes the specified version of a toolbox. - * + * * @param name The name of the toolbox. * @param version The version identifier to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1302,9 +1302,9 @@ public Mono> deleteToolboxVersionWithResponseAsync(String name, S /** * Delete a specific version of a toolbox - * + * * Removes the specified version of a toolbox. - * + * * @param name The name of the toolbox. * @param version The version identifier to delete. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java index 2f8fa483b12d..9cccee4b87ae 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java @@ -26,7 +26,12 @@ public enum AgentDefinitionOptInKeys { /** * Enum value VoiceAgents=V1Preview. */ - VOICE_AGENTS_V1_PREVIEW("VoiceAgents=V1Preview"); + VOICE_AGENTS_V1_PREVIEW("VoiceAgents=V1Preview"), + + /** + * Enum value DigitalWorker=V1Preview. + */ + DIGITAL_WORKER_V1_PREVIEW("DigitalWorker=V1Preview"); /** * The actual serialized value for a AgentDefinitionOptInKeys instance. @@ -39,7 +44,7 @@ public enum AgentDefinitionOptInKeys { /** * Parses a serialized value to a AgentDefinitionOptInKeys instance. - * + * * @param value the serialized value to parse. * @return the parsed AgentDefinitionOptInKeys object, or null if unable to parse. */ diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ApproximateLocation.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java similarity index 78% rename from sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ApproximateLocation.java rename to sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java index d51a477e8df7..601c88946e7c 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ApproximateLocation.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. -package com.azure.ai.agents.models; +package com.azure.ai.agents.implementation.models; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; @@ -10,7 +10,6 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; -import java.util.TimeZone; /** * The ApproximateLocation model. @@ -46,7 +45,7 @@ public final class ApproximateLocation implements JsonSerializable { ApproximateLocation deserializedApproximateLocation = new ApproximateLocation(); @@ -177,8 +190,7 @@ public static ApproximateLocation fromJson(JsonReader jsonReader) throws IOExcep } else if ("city".equals(fieldName)) { deserializedApproximateLocation.city = reader.getString(); } else if ("timezone".equals(fieldName)) { - String timezoneId = reader.getString(); - deserializedApproximateLocation.timezone = parseTimeZone(timezoneId); + deserializedApproximateLocation.timezone = reader.getString(); } else { reader.skipChildren(); } @@ -186,38 +198,4 @@ public static ApproximateLocation fromJson(JsonReader jsonReader) throws IOExcep return deserializedApproximateLocation; }); } - - /** - * Set the timezone property: The timezone property. - * - * @param timezone the timezone value to set. - * @return the ApproximateLocation object itself. - */ - @Generated - public ApproximateLocation setTimezone(TimeZone timezone) { - this.timezone = timezone; - return this; - } - - /** - * Parses a timezone ID string into a {@link TimeZone}, returning {@code null} for unknown IDs. - *

- * {@link TimeZone#getTimeZone(String)} silently falls back to GMT for unrecognized IDs. - * This method detects that fallback and returns {@code null} instead, to avoid silent data corruption. - * - * @param timezoneId the timezone ID to parse, or {@code null}. - * @return the corresponding {@link TimeZone}, or {@code null} if the ID is {@code null} or unrecognized. - */ - private static TimeZone parseTimeZone(String timezoneId) { - if (timezoneId == null) { - return null; - } - TimeZone tz = TimeZone.getTimeZone(timezoneId); - // TimeZone.getTimeZone falls back to GMT for unknown IDs. - // Treat unknown IDs as null to avoid silent data corruption. - if ("GMT".equals(tz.getID()) && !"GMT".equalsIgnoreCase(timezoneId)) { - return null; - } - return tz; - } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java index e9d547335e42..84fb0e9a6dfa 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java @@ -8,6 +8,7 @@ import com.azure.ai.agents.models.AgentDefinition; import com.azure.ai.agents.models.AgentEndpointConfig; import com.azure.ai.agents.models.AgentState; +import com.azure.ai.agents.models.DigitalWorkerType; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import java.util.Map; @@ -31,7 +32,7 @@ public final class CreateAgentOptions { * Set of 16 key-value pairs that can be attached to an object. This can be * useful for storing additional information about the object in a structured * format, and querying for objects via API or the dashboard. - * + * * Keys are strings with a maximum length of 64 characters. Values are strings * with a maximum length of 512 characters. */ @@ -45,7 +46,7 @@ public final class CreateAgentOptions { private String description; /* - * The agent definition. This can be a workflow, hosted agent, or a simple agent definition. + * The agent definition. This can be a prompt, workflow, hosted, external, or voice agent definition. */ @Generated private final AgentDefinition definition; @@ -149,8 +150,8 @@ public CreateAgentOptions setDescription(String description) { } /** - * Get the definition property: The agent definition. This can be a workflow, hosted agent, or a simple agent - * definition. + * Get the definition property: The agent definition. This can be a prompt, workflow, hosted, external, or voice + * agent definition. * * @return the definition value. */ @@ -288,4 +289,34 @@ public CreateAgentOptions setDraft(Boolean draft) { this.draft = draft; return this; } + + /* + * (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. + */ + @Generated + private DigitalWorkerType digitalWorkerType; + + /** + * Get the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @return the digitalWorkerType value. + */ + @Generated + public DigitalWorkerType getDigitalWorkerType() { + return this.digitalWorkerType; + } + + /** + * Set the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @param digitalWorkerType the digitalWorkerType value to set. + * @return the CreateAgentOptions object itself. + */ + @Generated + public CreateAgentOptions setDigitalWorkerType(DigitalWorkerType digitalWorkerType) { + this.digitalWorkerType = digitalWorkerType; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java index fda3dbe2abba..9cbc651c44dd 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java @@ -8,6 +8,7 @@ import com.azure.ai.agents.models.AgentDefinition; import com.azure.ai.agents.models.AgentEndpointConfig; import com.azure.ai.agents.models.AgentState; +import com.azure.ai.agents.models.DigitalWorkerType; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; @@ -36,7 +37,7 @@ public final class CreateAgentRequest implements JsonSerializable writer.writeString(element)); jsonWriter.writeStringField("description", this.description); jsonWriter.writeJsonField("blueprint_reference", this.blueprintReference); + jsonWriter.writeStringField("digital_worker_type", + this.digitalWorkerType == null ? null : this.digitalWorkerType.toString()); jsonWriter.writeBooleanField("draft", this.draft); jsonWriter.writeJsonField("agent_endpoint", this.agentEndpoint); jsonWriter.writeJsonField("agent_card", this.agentCard); @@ -183,6 +186,7 @@ public static CreateAgentRequest fromJson(JsonReader jsonReader) throws IOExcept Map metadata = null; String description = null; AgentBlueprintReference blueprintReference = null; + DigitalWorkerType digitalWorkerType = null; Boolean draft = null; AgentEndpointConfig agentEndpoint = null; AgentCard agentCard = null; @@ -201,6 +205,8 @@ public static CreateAgentRequest fromJson(JsonReader jsonReader) throws IOExcept description = reader.getString(); } else if ("blueprint_reference".equals(fieldName)) { blueprintReference = AgentBlueprintReference.fromJson(reader); + } else if ("digital_worker_type".equals(fieldName)) { + digitalWorkerType = DigitalWorkerType.fromString(reader.getString()); } else if ("draft".equals(fieldName)) { draft = reader.getNullable(JsonReader::getBoolean); } else if ("agent_endpoint".equals(fieldName)) { @@ -216,6 +222,7 @@ public static CreateAgentRequest fromJson(JsonReader jsonReader) throws IOExcept deserializedCreateAgentRequest.metadata = metadata; deserializedCreateAgentRequest.description = description; deserializedCreateAgentRequest.blueprintReference = blueprintReference; + deserializedCreateAgentRequest.digitalWorkerType = digitalWorkerType; deserializedCreateAgentRequest.draft = draft; deserializedCreateAgentRequest.agentEndpoint = agentEndpoint; deserializedCreateAgentRequest.agentCard = agentCard; @@ -370,4 +377,34 @@ public CreateAgentRequest setDraft(Boolean draft) { this.draft = draft; return this; } + + /* + * (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. + */ + @Generated + private DigitalWorkerType digitalWorkerType; + + /** + * Get the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @return the digitalWorkerType value. + */ + @Generated + public DigitalWorkerType getDigitalWorkerType() { + return this.digitalWorkerType; + } + + /** + * Set the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @param digitalWorkerType the digitalWorkerType value to set. + * @return the CreateAgentRequest object itself. + */ + @Generated + public CreateAgentRequest setDigitalWorkerType(DigitalWorkerType digitalWorkerType) { + this.digitalWorkerType = digitalWorkerType; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java index ecbc21d67d32..a9f46d8a5c72 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java @@ -5,6 +5,7 @@ import com.azure.ai.agents.models.AgentBlueprintReference; import com.azure.ai.agents.models.AgentDefinition; +import com.azure.ai.agents.models.DigitalWorkerType; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; @@ -24,7 +25,7 @@ public final class CreateAgentVersionRequest implements JsonSerializable writer.writeString(element)); jsonWriter.writeStringField("description", this.description); jsonWriter.writeJsonField("blueprint_reference", this.blueprintReference); + jsonWriter.writeStringField("digital_worker_type", + this.digitalWorkerType == null ? null : this.digitalWorkerType.toString()); jsonWriter.writeBooleanField("draft", this.draft); return jsonWriter.writeEndObject(); } @@ -149,6 +152,7 @@ public static CreateAgentVersionRequest fromJson(JsonReader jsonReader) throws I Map metadata = null; String description = null; AgentBlueprintReference blueprintReference = null; + DigitalWorkerType digitalWorkerType = null; Boolean draft = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); @@ -161,6 +165,8 @@ public static CreateAgentVersionRequest fromJson(JsonReader jsonReader) throws I description = reader.getString(); } else if ("blueprint_reference".equals(fieldName)) { blueprintReference = AgentBlueprintReference.fromJson(reader); + } else if ("digital_worker_type".equals(fieldName)) { + digitalWorkerType = DigitalWorkerType.fromString(reader.getString()); } else if ("draft".equals(fieldName)) { draft = reader.getNullable(JsonReader::getBoolean); } else { @@ -171,6 +177,7 @@ public static CreateAgentVersionRequest fromJson(JsonReader jsonReader) throws I deserializedCreateAgentVersionRequest.metadata = metadata; deserializedCreateAgentVersionRequest.description = description; deserializedCreateAgentVersionRequest.blueprintReference = blueprintReference; + deserializedCreateAgentVersionRequest.digitalWorkerType = digitalWorkerType; deserializedCreateAgentVersionRequest.draft = draft; return deserializedCreateAgentVersionRequest; }); @@ -237,4 +244,34 @@ public CreateAgentVersionRequest setDraft(Boolean draft) { this.draft = draft; return this; } + + /* + * (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. + */ + @Generated + private DigitalWorkerType digitalWorkerType; + + /** + * Get the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @return the digitalWorkerType value. + */ + @Generated + public DigitalWorkerType getDigitalWorkerType() { + return this.digitalWorkerType; + } + + /** + * Set the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @param digitalWorkerType the digitalWorkerType value to set. + * @return the CreateAgentVersionRequest object itself. + */ + @Generated + public CreateAgentVersionRequest setDigitalWorkerType(DigitalWorkerType digitalWorkerType) { + this.digitalWorkerType = digitalWorkerType; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java index 9282cec894c0..69d7b43da426 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java @@ -28,6 +28,11 @@ public enum FoundryFeaturesOptInKeys { */ INSIGHTS_V1_PREVIEW("Insights=V1Preview"), + /** + * Enum value AgentInsights=V1Preview. + */ + AGENT_INSIGHTS_V1_PREVIEW("AgentInsights=V1Preview"), + /** * Enum value MemoryStores=V1Preview. */ @@ -56,7 +61,12 @@ public enum FoundryFeaturesOptInKeys { /** * Enum value AgentsOptimization=V2Preview. */ - AGENTS_OPTIMIZATION_V2_PREVIEW("AgentsOptimization=V2Preview"); + AGENTS_OPTIMIZATION_V2_PREVIEW("AgentsOptimization=V2Preview"), + + /** + * Enum value ModelRouterControls=V1Preview. + */ + MODEL_ROUTER_CONTROLS_V1_PREVIEW("ModelRouterControls=V1Preview"); /** * The actual serialized value for a FoundryFeaturesOptInKeys instance. @@ -69,7 +79,7 @@ public enum FoundryFeaturesOptInKeys { /** * Parses a serialized value to a FoundryFeaturesOptInKeys instance. - * + * * @param value the serialized value to parse. * @return the parsed FoundryFeaturesOptInKeys object, or null if unable to parse. */ diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java new file mode 100644 index 000000000000..edfebcc4c4c1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java @@ -0,0 +1,656 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.implementation.models; + +import com.azure.ai.agents.models.ActivityProtocolAccessBoundary; +import com.azure.ai.agents.models.Microsoft365PermissionScopes; +import com.azure.ai.agents.models.Microsoft365PublishScope; +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * The GetMicrosoft365AppPackageRequest model. + */ +@Fluent +public final class GetMicrosoft365AppPackageRequest implements JsonSerializable { + + /* + * Display name used as the published Teams app name. When omitted, the agent name from the route is + * used. + */ + @Generated + private String agentDisplayName; + + /* + * ARM resource id of the Azure Bot Service that fronts this agent in Microsoft Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + */ + @Generated + private String botServiceArmId; + + /* + * When true, the agent is published as an autopilot (digital worker) agent: the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + */ + @Generated + private Boolean publishAsAutopilot; + + /* + * Activity-protocol access boundaries to apply to the agent when publishing as an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + */ + @Generated + private List accessBoundaries; + + /* + * Exact selection of delegated permission scopes to grant to the autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + */ + @Generated + private List optionalPermissionScopes; + + /* + * Publish scope for the Teams app. + */ + @Generated + private final Microsoft365PublishScope publishScope; + + /* + * Controls how the published agent responds to Teams messages: when true it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + */ + @Generated + private Boolean canRespondWithoutMention; + + /* + * App version (for example `1.2.3`) written into the Teams manifest. May contain only digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + */ + @Generated + private String appVersion; + + /* + * Short, one-line description shown in the Teams app listing. + */ + @Generated + private String shortDescription; + + /* + * Full description shown on the Teams app details page. + */ + @Generated + private String fullDescription; + + /* + * Display name of the developer / publisher shown in the Teams app listing. + */ + @Generated + private String developerName; + + /* + * Developer / publisher website URL shown in the Teams app listing. Must be an https URL. + */ + @Generated + private String developerWebsiteUrl; + + /* + * Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + */ + @Generated + private String privacyUrl; + + /* + * Terms-of-use URL shown in the Teams app listing. + */ + @Generated + private String termsOfUseUrl; + + /* + * Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + */ + @Generated + private String colorIconBase64; + + /* + * Optional base64-encoded PNG used as the outline icon in the Teams app package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + */ + @Generated + private String outlineIconBase64; + + /** + * Creates an instance of GetMicrosoft365AppPackageRequest class. + * + * @param publishScope the publishScope value to set. + */ + @Generated + public GetMicrosoft365AppPackageRequest(Microsoft365PublishScope publishScope) { + this.publishScope = publishScope; + } + + /** + * Get the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @return the agentDisplayName value. + */ + @Generated + public String getAgentDisplayName() { + return this.agentDisplayName; + } + + /** + * Set the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @param agentDisplayName the agentDisplayName value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setAgentDisplayName(String agentDisplayName) { + this.agentDisplayName = agentDisplayName; + return this; + } + + /** + * Get the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @return the botServiceArmId value. + */ + @Generated + public String getBotServiceArmId() { + return this.botServiceArmId; + } + + /** + * Set the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @param botServiceArmId the botServiceArmId value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setBotServiceArmId(String botServiceArmId) { + this.botServiceArmId = botServiceArmId; + return this; + } + + /** + * Get the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @return the publishAsAutopilot value. + */ + @Generated + public Boolean isPublishAsAutopilot() { + return this.publishAsAutopilot; + } + + /** + * Set the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @param publishAsAutopilot the publishAsAutopilot value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setPublishAsAutopilot(Boolean publishAsAutopilot) { + this.publishAsAutopilot = publishAsAutopilot; + return this; + } + + /** + * Get the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @return the accessBoundaries value. + */ + @Generated + public List getAccessBoundaries() { + return this.accessBoundaries; + } + + /** + * Set the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @param accessBoundaries the accessBoundaries value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setAccessBoundaries(List accessBoundaries) { + this.accessBoundaries = accessBoundaries; + return this; + } + + /** + * Get the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @return the optionalPermissionScopes value. + */ + @Generated + public List getOptionalPermissionScopes() { + return this.optionalPermissionScopes; + } + + /** + * Set the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @param optionalPermissionScopes the optionalPermissionScopes value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest + setOptionalPermissionScopes(List optionalPermissionScopes) { + this.optionalPermissionScopes = optionalPermissionScopes; + return this; + } + + /** + * Get the publishScope property: Publish scope for the Teams app. + * + * @return the publishScope value. + */ + @Generated + public Microsoft365PublishScope getPublishScope() { + return this.publishScope; + } + + /** + * Get the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @return the canRespondWithoutMention value. + */ + @Generated + public Boolean isCanRespondWithoutMention() { + return this.canRespondWithoutMention; + } + + /** + * Set the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @param canRespondWithoutMention the canRespondWithoutMention value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setCanRespondWithoutMention(Boolean canRespondWithoutMention) { + this.canRespondWithoutMention = canRespondWithoutMention; + return this; + } + + /** + * Get the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @return the appVersion value. + */ + @Generated + public String getAppVersion() { + return this.appVersion; + } + + /** + * Set the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @param appVersion the appVersion value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setAppVersion(String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Get the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @return the shortDescription value. + */ + @Generated + public String getShortDescription() { + return this.shortDescription; + } + + /** + * Set the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @param shortDescription the shortDescription value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setShortDescription(String shortDescription) { + this.shortDescription = shortDescription; + return this; + } + + /** + * Get the fullDescription property: Full description shown on the Teams app details page. + * + * @return the fullDescription value. + */ + @Generated + public String getFullDescription() { + return this.fullDescription; + } + + /** + * Set the fullDescription property: Full description shown on the Teams app details page. + * + * @param fullDescription the fullDescription value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setFullDescription(String fullDescription) { + this.fullDescription = fullDescription; + return this; + } + + /** + * Get the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @return the developerName value. + */ + @Generated + public String getDeveloperName() { + return this.developerName; + } + + /** + * Set the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @param developerName the developerName value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setDeveloperName(String developerName) { + this.developerName = developerName; + return this; + } + + /** + * Get the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @return the developerWebsiteUrl value. + */ + @Generated + public String getDeveloperWebsiteUrl() { + return this.developerWebsiteUrl; + } + + /** + * Set the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @param developerWebsiteUrl the developerWebsiteUrl value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setDeveloperWebsiteUrl(String developerWebsiteUrl) { + this.developerWebsiteUrl = developerWebsiteUrl; + return this; + } + + /** + * Get the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @return the privacyUrl value. + */ + @Generated + public String getPrivacyUrl() { + return this.privacyUrl; + } + + /** + * Set the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @param privacyUrl the privacyUrl value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setPrivacyUrl(String privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + /** + * Get the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @return the termsOfUseUrl value. + */ + @Generated + public String getTermsOfUseUrl() { + return this.termsOfUseUrl; + } + + /** + * Set the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @param termsOfUseUrl the termsOfUseUrl value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setTermsOfUseUrl(String termsOfUseUrl) { + this.termsOfUseUrl = termsOfUseUrl; + return this; + } + + /** + * Get the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @return the colorIconBase64 value. + */ + @Generated + public String getColorIconBase64() { + return this.colorIconBase64; + } + + /** + * Set the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @param colorIconBase64 the colorIconBase64 value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setColorIconBase64(String colorIconBase64) { + this.colorIconBase64 = colorIconBase64; + return this; + } + + /** + * Get the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @return the outlineIconBase64 value. + */ + @Generated + public String getOutlineIconBase64() { + return this.outlineIconBase64; + } + + /** + * Set the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @param outlineIconBase64 the outlineIconBase64 value to set. + * @return the GetMicrosoft365AppPackageRequest object itself. + */ + @Generated + public GetMicrosoft365AppPackageRequest setOutlineIconBase64(String outlineIconBase64) { + this.outlineIconBase64 = outlineIconBase64; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("publishScope", this.publishScope == null ? null : this.publishScope.toString()); + jsonWriter.writeStringField("agentDisplayName", this.agentDisplayName); + jsonWriter.writeStringField("botServiceArmId", this.botServiceArmId); + jsonWriter.writeBooleanField("publishAsAutopilot", this.publishAsAutopilot); + jsonWriter.writeArrayField("accessBoundaries", this.accessBoundaries, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + jsonWriter.writeArrayField("optionalPermissionScopes", this.optionalPermissionScopes, + (writer, element) -> writer.writeJson(element)); + jsonWriter.writeBooleanField("canRespondWithoutMention", this.canRespondWithoutMention); + jsonWriter.writeStringField("appVersion", this.appVersion); + jsonWriter.writeStringField("shortDescription", this.shortDescription); + jsonWriter.writeStringField("fullDescription", this.fullDescription); + jsonWriter.writeStringField("developerName", this.developerName); + jsonWriter.writeStringField("developerWebsiteUrl", this.developerWebsiteUrl); + jsonWriter.writeStringField("privacyUrl", this.privacyUrl); + jsonWriter.writeStringField("termsOfUseUrl", this.termsOfUseUrl); + jsonWriter.writeStringField("colorIconBase64", this.colorIconBase64); + jsonWriter.writeStringField("outlineIconBase64", this.outlineIconBase64); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of GetMicrosoft365AppPackageRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of GetMicrosoft365AppPackageRequest if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the GetMicrosoft365AppPackageRequest. + */ + @Generated + public static GetMicrosoft365AppPackageRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Microsoft365PublishScope publishScope = null; + String agentDisplayName = null; + String botServiceArmId = null; + Boolean publishAsAutopilot = null; + List accessBoundaries = null; + List optionalPermissionScopes = null; + Boolean canRespondWithoutMention = null; + String appVersion = null; + String shortDescription = null; + String fullDescription = null; + String developerName = null; + String developerWebsiteUrl = null; + String privacyUrl = null; + String termsOfUseUrl = null; + String colorIconBase64 = null; + String outlineIconBase64 = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("publishScope".equals(fieldName)) { + publishScope = Microsoft365PublishScope.fromString(reader.getString()); + } else if ("agentDisplayName".equals(fieldName)) { + agentDisplayName = reader.getString(); + } else if ("botServiceArmId".equals(fieldName)) { + botServiceArmId = reader.getString(); + } else if ("publishAsAutopilot".equals(fieldName)) { + publishAsAutopilot = reader.getNullable(JsonReader::getBoolean); + } else if ("accessBoundaries".equals(fieldName)) { + accessBoundaries + = reader.readArray(reader1 -> ActivityProtocolAccessBoundary.fromString(reader1.getString())); + } else if ("optionalPermissionScopes".equals(fieldName)) { + optionalPermissionScopes + = reader.readArray(reader1 -> Microsoft365PermissionScopes.fromJson(reader1)); + } else if ("canRespondWithoutMention".equals(fieldName)) { + canRespondWithoutMention = reader.getNullable(JsonReader::getBoolean); + } else if ("appVersion".equals(fieldName)) { + appVersion = reader.getString(); + } else if ("shortDescription".equals(fieldName)) { + shortDescription = reader.getString(); + } else if ("fullDescription".equals(fieldName)) { + fullDescription = reader.getString(); + } else if ("developerName".equals(fieldName)) { + developerName = reader.getString(); + } else if ("developerWebsiteUrl".equals(fieldName)) { + developerWebsiteUrl = reader.getString(); + } else if ("privacyUrl".equals(fieldName)) { + privacyUrl = reader.getString(); + } else if ("termsOfUseUrl".equals(fieldName)) { + termsOfUseUrl = reader.getString(); + } else if ("colorIconBase64".equals(fieldName)) { + colorIconBase64 = reader.getString(); + } else if ("outlineIconBase64".equals(fieldName)) { + outlineIconBase64 = reader.getString(); + } else { + reader.skipChildren(); + } + } + GetMicrosoft365AppPackageRequest deserializedGetMicrosoft365AppPackageRequest + = new GetMicrosoft365AppPackageRequest(publishScope); + deserializedGetMicrosoft365AppPackageRequest.agentDisplayName = agentDisplayName; + deserializedGetMicrosoft365AppPackageRequest.botServiceArmId = botServiceArmId; + deserializedGetMicrosoft365AppPackageRequest.publishAsAutopilot = publishAsAutopilot; + deserializedGetMicrosoft365AppPackageRequest.accessBoundaries = accessBoundaries; + deserializedGetMicrosoft365AppPackageRequest.optionalPermissionScopes = optionalPermissionScopes; + deserializedGetMicrosoft365AppPackageRequest.canRespondWithoutMention = canRespondWithoutMention; + deserializedGetMicrosoft365AppPackageRequest.appVersion = appVersion; + deserializedGetMicrosoft365AppPackageRequest.shortDescription = shortDescription; + deserializedGetMicrosoft365AppPackageRequest.fullDescription = fullDescription; + deserializedGetMicrosoft365AppPackageRequest.developerName = developerName; + deserializedGetMicrosoft365AppPackageRequest.developerWebsiteUrl = developerWebsiteUrl; + deserializedGetMicrosoft365AppPackageRequest.privacyUrl = privacyUrl; + deserializedGetMicrosoft365AppPackageRequest.termsOfUseUrl = termsOfUseUrl; + deserializedGetMicrosoft365AppPackageRequest.colorIconBase64 = colorIconBase64; + deserializedGetMicrosoft365AppPackageRequest.outlineIconBase64 = outlineIconBase64; + return deserializedGetMicrosoft365AppPackageRequest; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java new file mode 100644 index 000000000000..a825af3063aa --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java @@ -0,0 +1,657 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.implementation.models; + +import com.azure.ai.agents.models.ActivityProtocolAccessBoundary; +import com.azure.ai.agents.models.Microsoft365PermissionScopes; +import com.azure.ai.agents.models.Microsoft365PublishScope; +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * The PublishAgentToMicrosoft365Request model. + */ +@Fluent +public final class PublishAgentToMicrosoft365Request implements JsonSerializable { + + /* + * Display name used as the published Teams app name. When omitted, the agent name from the route is + * used. + */ + @Generated + private String agentDisplayName; + + /* + * ARM resource id of the Azure Bot Service that fronts this agent in Microsoft Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + */ + @Generated + private String botServiceArmId; + + /* + * When true, the agent is published as an autopilot (digital worker) agent: the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + */ + @Generated + private Boolean publishAsAutopilot; + + /* + * Activity-protocol access boundaries to apply to the agent when publishing as an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + */ + @Generated + private List accessBoundaries; + + /* + * Exact selection of delegated permission scopes to grant to the autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + */ + @Generated + private List optionalPermissionScopes; + + /* + * Publish scope for the Teams app. + */ + @Generated + private final Microsoft365PublishScope publishScope; + + /* + * Controls how the published agent responds to Teams messages: when true it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + */ + @Generated + private Boolean canRespondWithoutMention; + + /* + * App version (for example `1.2.3`) written into the Teams manifest. May contain only digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + */ + @Generated + private String appVersion; + + /* + * Short, one-line description shown in the Teams app listing. + */ + @Generated + private String shortDescription; + + /* + * Full description shown on the Teams app details page. + */ + @Generated + private String fullDescription; + + /* + * Display name of the developer / publisher shown in the Teams app listing. + */ + @Generated + private String developerName; + + /* + * Developer / publisher website URL shown in the Teams app listing. Must be an https URL. + */ + @Generated + private String developerWebsiteUrl; + + /* + * Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + */ + @Generated + private String privacyUrl; + + /* + * Terms-of-use URL shown in the Teams app listing. + */ + @Generated + private String termsOfUseUrl; + + /* + * Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + */ + @Generated + private String colorIconBase64; + + /* + * Optional base64-encoded PNG used as the outline icon in the Teams app package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + */ + @Generated + private String outlineIconBase64; + + /** + * Creates an instance of PublishAgentToMicrosoft365Request class. + * + * @param publishScope the publishScope value to set. + */ + @Generated + public PublishAgentToMicrosoft365Request(Microsoft365PublishScope publishScope) { + this.publishScope = publishScope; + } + + /** + * Get the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @return the agentDisplayName value. + */ + @Generated + public String getAgentDisplayName() { + return this.agentDisplayName; + } + + /** + * Set the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @param agentDisplayName the agentDisplayName value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setAgentDisplayName(String agentDisplayName) { + this.agentDisplayName = agentDisplayName; + return this; + } + + /** + * Get the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @return the botServiceArmId value. + */ + @Generated + public String getBotServiceArmId() { + return this.botServiceArmId; + } + + /** + * Set the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @param botServiceArmId the botServiceArmId value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setBotServiceArmId(String botServiceArmId) { + this.botServiceArmId = botServiceArmId; + return this; + } + + /** + * Get the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @return the publishAsAutopilot value. + */ + @Generated + public Boolean isPublishAsAutopilot() { + return this.publishAsAutopilot; + } + + /** + * Set the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @param publishAsAutopilot the publishAsAutopilot value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setPublishAsAutopilot(Boolean publishAsAutopilot) { + this.publishAsAutopilot = publishAsAutopilot; + return this; + } + + /** + * Get the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @return the accessBoundaries value. + */ + @Generated + public List getAccessBoundaries() { + return this.accessBoundaries; + } + + /** + * Set the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @param accessBoundaries the accessBoundaries value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request + setAccessBoundaries(List accessBoundaries) { + this.accessBoundaries = accessBoundaries; + return this; + } + + /** + * Get the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @return the optionalPermissionScopes value. + */ + @Generated + public List getOptionalPermissionScopes() { + return this.optionalPermissionScopes; + } + + /** + * Set the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @param optionalPermissionScopes the optionalPermissionScopes value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request + setOptionalPermissionScopes(List optionalPermissionScopes) { + this.optionalPermissionScopes = optionalPermissionScopes; + return this; + } + + /** + * Get the publishScope property: Publish scope for the Teams app. + * + * @return the publishScope value. + */ + @Generated + public Microsoft365PublishScope getPublishScope() { + return this.publishScope; + } + + /** + * Get the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @return the canRespondWithoutMention value. + */ + @Generated + public Boolean isCanRespondWithoutMention() { + return this.canRespondWithoutMention; + } + + /** + * Set the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @param canRespondWithoutMention the canRespondWithoutMention value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setCanRespondWithoutMention(Boolean canRespondWithoutMention) { + this.canRespondWithoutMention = canRespondWithoutMention; + return this; + } + + /** + * Get the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @return the appVersion value. + */ + @Generated + public String getAppVersion() { + return this.appVersion; + } + + /** + * Set the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @param appVersion the appVersion value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setAppVersion(String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Get the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @return the shortDescription value. + */ + @Generated + public String getShortDescription() { + return this.shortDescription; + } + + /** + * Set the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @param shortDescription the shortDescription value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setShortDescription(String shortDescription) { + this.shortDescription = shortDescription; + return this; + } + + /** + * Get the fullDescription property: Full description shown on the Teams app details page. + * + * @return the fullDescription value. + */ + @Generated + public String getFullDescription() { + return this.fullDescription; + } + + /** + * Set the fullDescription property: Full description shown on the Teams app details page. + * + * @param fullDescription the fullDescription value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setFullDescription(String fullDescription) { + this.fullDescription = fullDescription; + return this; + } + + /** + * Get the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @return the developerName value. + */ + @Generated + public String getDeveloperName() { + return this.developerName; + } + + /** + * Set the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @param developerName the developerName value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setDeveloperName(String developerName) { + this.developerName = developerName; + return this; + } + + /** + * Get the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @return the developerWebsiteUrl value. + */ + @Generated + public String getDeveloperWebsiteUrl() { + return this.developerWebsiteUrl; + } + + /** + * Set the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @param developerWebsiteUrl the developerWebsiteUrl value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setDeveloperWebsiteUrl(String developerWebsiteUrl) { + this.developerWebsiteUrl = developerWebsiteUrl; + return this; + } + + /** + * Get the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @return the privacyUrl value. + */ + @Generated + public String getPrivacyUrl() { + return this.privacyUrl; + } + + /** + * Set the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @param privacyUrl the privacyUrl value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setPrivacyUrl(String privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + /** + * Get the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @return the termsOfUseUrl value. + */ + @Generated + public String getTermsOfUseUrl() { + return this.termsOfUseUrl; + } + + /** + * Set the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @param termsOfUseUrl the termsOfUseUrl value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setTermsOfUseUrl(String termsOfUseUrl) { + this.termsOfUseUrl = termsOfUseUrl; + return this; + } + + /** + * Get the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @return the colorIconBase64 value. + */ + @Generated + public String getColorIconBase64() { + return this.colorIconBase64; + } + + /** + * Set the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @param colorIconBase64 the colorIconBase64 value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setColorIconBase64(String colorIconBase64) { + this.colorIconBase64 = colorIconBase64; + return this; + } + + /** + * Get the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @return the outlineIconBase64 value. + */ + @Generated + public String getOutlineIconBase64() { + return this.outlineIconBase64; + } + + /** + * Set the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @param outlineIconBase64 the outlineIconBase64 value to set. + * @return the PublishAgentToMicrosoft365Request object itself. + */ + @Generated + public PublishAgentToMicrosoft365Request setOutlineIconBase64(String outlineIconBase64) { + this.outlineIconBase64 = outlineIconBase64; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("publishScope", this.publishScope == null ? null : this.publishScope.toString()); + jsonWriter.writeStringField("agentDisplayName", this.agentDisplayName); + jsonWriter.writeStringField("botServiceArmId", this.botServiceArmId); + jsonWriter.writeBooleanField("publishAsAutopilot", this.publishAsAutopilot); + jsonWriter.writeArrayField("accessBoundaries", this.accessBoundaries, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + jsonWriter.writeArrayField("optionalPermissionScopes", this.optionalPermissionScopes, + (writer, element) -> writer.writeJson(element)); + jsonWriter.writeBooleanField("canRespondWithoutMention", this.canRespondWithoutMention); + jsonWriter.writeStringField("appVersion", this.appVersion); + jsonWriter.writeStringField("shortDescription", this.shortDescription); + jsonWriter.writeStringField("fullDescription", this.fullDescription); + jsonWriter.writeStringField("developerName", this.developerName); + jsonWriter.writeStringField("developerWebsiteUrl", this.developerWebsiteUrl); + jsonWriter.writeStringField("privacyUrl", this.privacyUrl); + jsonWriter.writeStringField("termsOfUseUrl", this.termsOfUseUrl); + jsonWriter.writeStringField("colorIconBase64", this.colorIconBase64); + jsonWriter.writeStringField("outlineIconBase64", this.outlineIconBase64); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of PublishAgentToMicrosoft365Request from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of PublishAgentToMicrosoft365Request if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the PublishAgentToMicrosoft365Request. + */ + @Generated + public static PublishAgentToMicrosoft365Request fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Microsoft365PublishScope publishScope = null; + String agentDisplayName = null; + String botServiceArmId = null; + Boolean publishAsAutopilot = null; + List accessBoundaries = null; + List optionalPermissionScopes = null; + Boolean canRespondWithoutMention = null; + String appVersion = null; + String shortDescription = null; + String fullDescription = null; + String developerName = null; + String developerWebsiteUrl = null; + String privacyUrl = null; + String termsOfUseUrl = null; + String colorIconBase64 = null; + String outlineIconBase64 = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("publishScope".equals(fieldName)) { + publishScope = Microsoft365PublishScope.fromString(reader.getString()); + } else if ("agentDisplayName".equals(fieldName)) { + agentDisplayName = reader.getString(); + } else if ("botServiceArmId".equals(fieldName)) { + botServiceArmId = reader.getString(); + } else if ("publishAsAutopilot".equals(fieldName)) { + publishAsAutopilot = reader.getNullable(JsonReader::getBoolean); + } else if ("accessBoundaries".equals(fieldName)) { + accessBoundaries + = reader.readArray(reader1 -> ActivityProtocolAccessBoundary.fromString(reader1.getString())); + } else if ("optionalPermissionScopes".equals(fieldName)) { + optionalPermissionScopes + = reader.readArray(reader1 -> Microsoft365PermissionScopes.fromJson(reader1)); + } else if ("canRespondWithoutMention".equals(fieldName)) { + canRespondWithoutMention = reader.getNullable(JsonReader::getBoolean); + } else if ("appVersion".equals(fieldName)) { + appVersion = reader.getString(); + } else if ("shortDescription".equals(fieldName)) { + shortDescription = reader.getString(); + } else if ("fullDescription".equals(fieldName)) { + fullDescription = reader.getString(); + } else if ("developerName".equals(fieldName)) { + developerName = reader.getString(); + } else if ("developerWebsiteUrl".equals(fieldName)) { + developerWebsiteUrl = reader.getString(); + } else if ("privacyUrl".equals(fieldName)) { + privacyUrl = reader.getString(); + } else if ("termsOfUseUrl".equals(fieldName)) { + termsOfUseUrl = reader.getString(); + } else if ("colorIconBase64".equals(fieldName)) { + colorIconBase64 = reader.getString(); + } else if ("outlineIconBase64".equals(fieldName)) { + outlineIconBase64 = reader.getString(); + } else { + reader.skipChildren(); + } + } + PublishAgentToMicrosoft365Request deserializedPublishAgentToMicrosoft365Request + = new PublishAgentToMicrosoft365Request(publishScope); + deserializedPublishAgentToMicrosoft365Request.agentDisplayName = agentDisplayName; + deserializedPublishAgentToMicrosoft365Request.botServiceArmId = botServiceArmId; + deserializedPublishAgentToMicrosoft365Request.publishAsAutopilot = publishAsAutopilot; + deserializedPublishAgentToMicrosoft365Request.accessBoundaries = accessBoundaries; + deserializedPublishAgentToMicrosoft365Request.optionalPermissionScopes = optionalPermissionScopes; + deserializedPublishAgentToMicrosoft365Request.canRespondWithoutMention = canRespondWithoutMention; + deserializedPublishAgentToMicrosoft365Request.appVersion = appVersion; + deserializedPublishAgentToMicrosoft365Request.shortDescription = shortDescription; + deserializedPublishAgentToMicrosoft365Request.fullDescription = fullDescription; + deserializedPublishAgentToMicrosoft365Request.developerName = developerName; + deserializedPublishAgentToMicrosoft365Request.developerWebsiteUrl = developerWebsiteUrl; + deserializedPublishAgentToMicrosoft365Request.privacyUrl = privacyUrl; + deserializedPublishAgentToMicrosoft365Request.termsOfUseUrl = termsOfUseUrl; + deserializedPublishAgentToMicrosoft365Request.colorIconBase64 = colorIconBase64; + deserializedPublishAgentToMicrosoft365Request.outlineIconBase64 = outlineIconBase64; + return deserializedPublishAgentToMicrosoft365Request; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java index 1c8428911f01..c3e806886f67 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java @@ -24,7 +24,7 @@ public final class UpdateAgentRequest implements JsonSerializable { WebSearchApproximateLocation deserializedWebSearchApproximateLocation = new WebSearchApproximateLocation(); @@ -179,8 +192,7 @@ public static WebSearchApproximateLocation fromJson(JsonReader jsonReader) throw } else if ("city".equals(fieldName)) { deserializedWebSearchApproximateLocation.city = reader.getString(); } else if ("timezone".equals(fieldName)) { - String timezoneId = reader.getString(); - deserializedWebSearchApproximateLocation.timezone = parseTimeZone(timezoneId); + deserializedWebSearchApproximateLocation.timezone = reader.getString(); } else { reader.skipChildren(); } @@ -188,36 +200,4 @@ public static WebSearchApproximateLocation fromJson(JsonReader jsonReader) throw return deserializedWebSearchApproximateLocation; }); } - - /** - * Set the timezone property: The timezone property. - * - * @param timezone the timezone value to set. - * @return the WebSearchApproximateLocation object itself. - */ - @Generated - public WebSearchApproximateLocation setTimezone(TimeZone timezone) { - this.timezone = timezone; - return this; - } - - /** - * Parses a timezone ID string into a {@link TimeZone}, returning {@code null} for unknown IDs. - *

- * {@link TimeZone#getTimeZone(String)} silently falls back to GMT for unrecognized IDs. - * This method detects that fallback and returns {@code null} instead, to avoid silent data corruption. - * - * @param timezoneId the timezone ID to parse, or {@code null}. - * @return the corresponding {@link TimeZone}, or {@code null} if the ID is {@code null} or unrecognized. - */ - private static TimeZone parseTimeZone(String timezoneId) { - if (timezoneId == null) { - return null; - } - TimeZone tz = TimeZone.getTimeZone(timezoneId); - if ("GMT".equals(tz.getID()) && !"GMT".equalsIgnoreCase(timezoneId)) { - return null; - } - return tz; - } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java new file mode 100644 index 000000000000..18bffdad792b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * An access boundary for the activity protocol. + */ +public final class ActivityProtocolAccessBoundary extends ExpandableStringEnum { + + /** + * Allows read access to one-on-one developer conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_1ON1_DEVELOPERS = fromString("read.1on1.developers"); + + /** + * Allows read access to one-on-one manager conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_1ON1_MANAGER = fromString("read.1on1.manager"); + + /** + * Allows read access to allowlisted one-on-one conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_1ON1_ALLOWLISTED = fromString("read.1on1.allowlisted"); + + /** + * Allows read access to tenant-wide one-on-one conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_1ON1_TENANT = fromString("read.1on1.tenant"); + + /** + * Allows write access to one-on-one developer conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_1ON1_DEVELOPERS = fromString("write.1on1.developers"); + + /** + * Allows write access to one-on-one manager conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_1ON1_MANAGER = fromString("write.1on1.manager"); + + /** + * Allows write access to allowlisted one-on-one conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_1ON1_ALLOWLISTED = fromString("write.1on1.allowlisted"); + + /** + * Allows write access to tenant-wide one-on-one conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_1ON1_TENANT = fromString("write.1on1.tenant"); + + /** + * Allows read access to developer group conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_GROUP_DEVELOPERS = fromString("read.group.developers"); + + /** + * Allows read access to allowlisted group conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_GROUP_ALLOWLISTED = fromString("read.group.allowlisted"); + + /** + * Allows read access to group conversations where a manager is invited. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_GROUP_MANAGER_INVITED + = fromString("read.group.manager-invited"); + + /** + * Allows read access to group conversations where a manager is present. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_GROUP_MANAGER_PRESENT + = fromString("read.group.manager-present"); + + /** + * Allows read access to tenant-wide group conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary READ_GROUP_TENANT = fromString("read.group.tenant"); + + /** + * Allows write access to developer group conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_GROUP_DEVELOPERS = fromString("write.group.developers"); + + /** + * Allows write access to allowlisted group conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_GROUP_ALLOWLISTED = fromString("write.group.allowlisted"); + + /** + * Allows write access to group conversations where a manager is invited. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_GROUP_MANAGER_INVITED + = fromString("write.group.manager-invited"); + + /** + * Allows write access to group conversations where a manager is present. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_GROUP_MANAGER_PRESENT + = fromString("write.group.manager-present"); + + /** + * Allows write access to tenant-wide group conversations. + */ + @Generated + public static final ActivityProtocolAccessBoundary WRITE_GROUP_TENANT = fromString("write.group.tenant"); + + /** + * Creates a new instance of ActivityProtocolAccessBoundary value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public ActivityProtocolAccessBoundary() { + } + + /** + * Creates or finds a ActivityProtocolAccessBoundary from its string representation. + * + * @param name a name to look for. + * @return the corresponding ActivityProtocolAccessBoundary. + */ + @Generated + public static ActivityProtocolAccessBoundary fromString(String name) { + return fromString(name, ActivityProtocolAccessBoundary.class); + } + + /** + * Gets known ActivityProtocolAccessBoundary values. + * + * @return known ActivityProtocolAccessBoundary values. + */ + @Generated + public static Collection values() { + return values(ActivityProtocolAccessBoundary.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java index 985c6bc9d460..893808bec292 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java @@ -12,6 +12,7 @@ import com.azure.json.JsonWriter; import java.io.IOException; import java.util.HashSet; +import java.util.List; import java.util.Set; /** @@ -135,6 +136,10 @@ public static ActivityProtocolConfiguration fromJson(JsonReader jsonReader) thro if ("enable_m365_public_endpoint".equals(fieldName)) { deserializedActivityProtocolConfiguration.enableM365PublicEndpoint = reader.getNullable(JsonReader::getBoolean); + } else if ("access_boundaries".equals(fieldName)) { + List accessBoundaries + = reader.readArray(reader1 -> ActivityProtocolAccessBoundary.fromString(reader1.getString())); + deserializedActivityProtocolConfiguration.accessBoundaries = accessBoundaries; } else { reader.skipChildren(); } @@ -142,4 +147,20 @@ public static ActivityProtocolConfiguration fromJson(JsonReader jsonReader) thro return deserializedActivityProtocolConfiguration; }); } + + /* + * The access boundaries for the activity protocol. + */ + @Generated + private List accessBoundaries; + + /** + * Get the accessBoundaries property: The access boundaries for the activity protocol. + * + * @return the accessBoundaries value. + */ + @Generated + public List getAccessBoundaries() { + return this.accessBoundaries; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDefinition.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDefinition.java index bd2b34456daa..e592e6390961 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDefinition.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDefinition.java @@ -114,6 +114,8 @@ public static AgentDefinition fromJson(JsonReader jsonReader) throws IOException return WorkflowAgentDefinition.fromJson(readerToUse.reset()); } else if ("external".equals(discriminatorValue)) { return ExternalAgentDefinition.fromJson(readerToUse.reset()); + } else if ("voice".equals(discriminatorValue)) { + return VoiceAgentDefinition.fromJson(readerToUse.reset()); } else { return fromJsonKnownDiscriminator(readerToUse.reset()); } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDetails.java index 313f74052e0f..1e8a5622aef8 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDetails.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDetails.java @@ -77,6 +77,8 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStringField("name", this.name); jsonWriter.writeJsonField("versions", this.versions); jsonWriter.writeJsonField("agent_endpoint", this.agentEndpoint); + jsonWriter.writeStringField("digital_worker_type", + this.digitalWorkerType == null ? null : this.digitalWorkerType.toString()); jsonWriter.writeJsonField("agent_card", this.agentCard); return jsonWriter.writeEndObject(); } @@ -99,6 +101,7 @@ public static AgentDetails fromJson(JsonReader jsonReader) throws IOException { AgentDetailsVersions versions = null; AgentStateSource stateSource = null; AgentEndpointConfig agentEndpoint = null; + DigitalWorkerType digitalWorkerType = null; AgentIdentity instanceIdentity = null; AgentIdentity blueprintIdentity = null; AgentBlueprintReference blueprintReference = null; @@ -118,6 +121,8 @@ public static AgentDetails fromJson(JsonReader jsonReader) throws IOException { stateSource = AgentStateSource.fromString(reader.getString()); } else if ("agent_endpoint".equals(fieldName)) { agentEndpoint = AgentEndpointConfig.fromJson(reader); + } else if ("digital_worker_type".equals(fieldName)) { + digitalWorkerType = DigitalWorkerType.fromString(reader.getString()); } else if ("instance_identity".equals(fieldName)) { instanceIdentity = AgentIdentity.fromJson(reader); } else if ("blueprint".equals(fieldName)) { @@ -134,6 +139,7 @@ public static AgentDetails fromJson(JsonReader jsonReader) throws IOException { deserializedAgentDetails.state = state; deserializedAgentDetails.stateSource = stateSource; deserializedAgentDetails.agentEndpoint = agentEndpoint; + deserializedAgentDetails.digitalWorkerType = digitalWorkerType; deserializedAgentDetails.instanceIdentity = instanceIdentity; deserializedAgentDetails.blueprintIdentity = blueprintIdentity; deserializedAgentDetails.blueprintReference = blueprintReference; @@ -286,4 +292,21 @@ public AgentState getState() { public AgentStateSource getStateSource() { return this.stateSource; } + + /* + * (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. + */ + @Generated + private DigitalWorkerType digitalWorkerType; + + /** + * Get the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @return the digitalWorkerType value. + */ + @Generated + public DigitalWorkerType getDigitalWorkerType() { + return this.digitalWorkerType; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java index 8546055e82cc..5c7740b8a011 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java @@ -196,6 +196,9 @@ public static AgentEndpointConfig fromJson(JsonReader jsonReader) throws IOExcep List authorizationSchemes = reader.readArray(reader1 -> AgentEndpointAuthorizationScheme.fromJson(reader1)); deserializedAgentEndpointConfig.authorizationSchemes = authorizationSchemes; + } else if ("publish_approval_status".equals(fieldName)) { + deserializedAgentEndpointConfig.publishApprovalStatus + = PublishApprovalStatus.fromString(reader.getString()); } else { reader.skipChildren(); } @@ -232,4 +235,26 @@ public AgentEndpointConfig setProtocolConfiguration(ProtocolConfiguration protoc this.updatedProperties.add("protocolConfiguration"); return this; } + + /* + * 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. + */ + @Generated + private PublishApprovalStatus publishApprovalStatus; + + /** + * Get the publishApprovalStatus property: 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. + * + * @return the publishApprovalStatus value. + */ + @Generated + public PublishApprovalStatus getPublishApprovalStatus() { + return this.publishApprovalStatus; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java index 2d3bd91d0e3a..74fa101efe21 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java @@ -78,4 +78,10 @@ public static Collection values() { */ @Generated public static final AgentEndpointProtocol INVOCATIONS_WS = fromString("invocations_ws"); + + /** + * Static value voice for AgentEndpointProtocol. + */ + @Generated + public static final AgentEndpointProtocol VOICE = fromString("voice"); } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentKind.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentKind.java index 4e0afa59b582..69d463910e66 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentKind.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentKind.java @@ -66,4 +66,10 @@ public static Collection values() { */ @Generated public static final AgentKind EXTERNAL = fromString("external"); + + /** + * Static value voice for AgentKind. + */ + @Generated + public static final AgentKind VOICE = fromString("voice"); } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java index 30a507bd3980..2c467ad7521e 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java @@ -51,6 +51,7 @@ public AgentReference getAgentReference() { public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); jsonWriter.writeJsonField("agent_reference", this.agentReference); + jsonWriter.writeJsonField("model_selection_details", this.modelSelectionDetails); return jsonWriter.writeEndObject(); } @@ -67,16 +68,40 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { public static AzureCreateResponseDetails fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { AgentReference agentReference = null; + ModelSelectionDetails modelSelectionDetails = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("agent_reference".equals(fieldName)) { agentReference = AgentReference.fromJson(reader); + } else if ("model_selection_details".equals(fieldName)) { + modelSelectionDetails = ModelSelectionDetails.fromJson(reader); } else { reader.skipChildren(); } } - return new AzureCreateResponseDetails(agentReference); + AzureCreateResponseDetails deserializedAzureCreateResponseDetails + = new AzureCreateResponseDetails(agentReference); + deserializedAzureCreateResponseDetails.modelSelectionDetails = modelSelectionDetails; + return deserializedAzureCreateResponseDetails; }); } + + /* + * Model selection metadata providing visibility into routing decisions. Present when the request was handled by + * Model Router. + */ + @Generated + private ModelSelectionDetails modelSelectionDetails; + + /** + * Get the modelSelectionDetails property: Model selection metadata providing visibility into routing decisions. + * Present when the request was handled by Model Router. + * + * @return the modelSelectionDetails value. + */ + @Generated + public ModelSelectionDetails getModelSelectionDetails() { + return this.modelSelectionDetails; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ConversationResource.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ConversationResource.java new file mode 100644 index 000000000000..fe564d19d6b6 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ConversationResource.java @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * The ConversationResource model. + */ +@Immutable +public final class ConversationResource implements JsonSerializable { + + /* + * The unique ID of the conversation. + */ + @Generated + private final String id; + + /* + * The object type, which is always `conversation`. + */ + @Generated + private final String object = "conversation"; + + /* + * Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional + * information about the object in a structured format, and querying for objects via API or the dashboard. + * Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 + * characters. + */ + @Generated + private final Metadata metadata; + + /* + * The time at which the conversation was created, measured in seconds since the Unix epoch. + */ + @Generated + private final long createdAt; + + /** + * Creates an instance of ConversationResource class. + * + * @param id the id value to set. + * @param metadata the metadata value to set. + * @param createdAt the createdAt value to set. + */ + @Generated + private ConversationResource(String id, Metadata metadata, OffsetDateTime createdAt) { + this.id = id; + this.metadata = metadata; + if (createdAt == null) { + this.createdAt = 0L; + } else { + this.createdAt = createdAt.toEpochSecond(); + } + } + + /** + * Get the id property: The unique ID of the conversation. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the object property: The object type, which is always `conversation`. + * + * @return the object value. + */ + @Generated + public String getObject() { + return this.object; + } + + /** + * Get the metadata property: Set of 16 key-value pairs that can be attached to an object. This can be useful for + * storing additional information about the object in a structured format, and querying for objects via API or the + * dashboard. + * Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 + * characters. + * + * @return the metadata value. + */ + @Generated + public Metadata getMetadata() { + return this.metadata; + } + + /** + * Get the createdAt property: The time at which the conversation was created, measured in seconds since the Unix + * epoch. + * + * @return the createdAt value. + */ + @Generated + public OffsetDateTime getCreatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.createdAt), ZoneOffset.UTC); + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("object", this.object); + jsonWriter.writeJsonField("metadata", this.metadata); + jsonWriter.writeLongField("created_at", this.createdAt); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ConversationResource from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ConversationResource if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ConversationResource. + */ + @Generated + public static ConversationResource fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + Metadata metadata = null; + OffsetDateTime createdAt = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("metadata".equals(fieldName)) { + metadata = Metadata.fromJson(reader); + } else if ("created_at".equals(fieldName)) { + createdAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else { + reader.skipChildren(); + } + } + return new ConversationResource(id, metadata, createdAt); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java index 8bc5ee275f4b..dd7dacc4c964 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java @@ -23,7 +23,7 @@ public final class CreateAgentVersionInput implements JsonSerializable writer.writeString(element)); jsonWriter.writeStringField("description", this.description); jsonWriter.writeJsonField("blueprint_reference", this.blueprintReference); + jsonWriter.writeStringField("digital_worker_type", + this.digitalWorkerType == null ? null : this.digitalWorkerType.toString()); jsonWriter.writeBooleanField("draft", this.draft); return jsonWriter.writeEndObject(); } @@ -178,6 +180,7 @@ public static CreateAgentVersionInput fromJson(JsonReader jsonReader) throws IOE Map metadata = null; String description = null; AgentBlueprintReference blueprintReference = null; + DigitalWorkerType digitalWorkerType = null; Boolean draft = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); @@ -190,6 +193,8 @@ public static CreateAgentVersionInput fromJson(JsonReader jsonReader) throws IOE description = reader.getString(); } else if ("blueprint_reference".equals(fieldName)) { blueprintReference = AgentBlueprintReference.fromJson(reader); + } else if ("digital_worker_type".equals(fieldName)) { + digitalWorkerType = DigitalWorkerType.fromString(reader.getString()); } else if ("draft".equals(fieldName)) { draft = reader.getNullable(JsonReader::getBoolean); } else { @@ -200,6 +205,7 @@ public static CreateAgentVersionInput fromJson(JsonReader jsonReader) throws IOE deserializedCreateAgentVersionInput.metadata = metadata; deserializedCreateAgentVersionInput.description = description; deserializedCreateAgentVersionInput.blueprintReference = blueprintReference; + deserializedCreateAgentVersionInput.digitalWorkerType = digitalWorkerType; deserializedCreateAgentVersionInput.draft = draft; return deserializedCreateAgentVersionInput; }); @@ -241,4 +247,34 @@ public CreateAgentVersionInput setDraft(Boolean draft) { this.draft = draft; return this; } + + /* + * (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. + */ + @Generated + private DigitalWorkerType digitalWorkerType; + + /** + * Get the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @return the digitalWorkerType value. + */ + @Generated + public DigitalWorkerType getDigitalWorkerType() { + return this.digitalWorkerType; + } + + /** + * Set the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @param digitalWorkerType the digitalWorkerType value to set. + * @return the CreateAgentVersionInput object itself. + */ + @Generated + public CreateAgentVersionInput setDigitalWorkerType(DigitalWorkerType digitalWorkerType) { + this.digitalWorkerType = digitalWorkerType; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java new file mode 100644 index 000000000000..8bcfd2b22d7e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import java.util.Map; + +/** + * Options for createAgentVersion API. + */ +@Fluent +public final class CreateAgentVersionOptions { + + /* + * The unique name that identifies the agent. Name can be used to retrieve/update/delete the agent. + * - Must start and end with alphanumeric characters, + * - Can contain hyphens in the middle + * - Must not exceed 63 characters. + */ + @Generated + private final String agentName; + + /* + * Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + */ + @Generated + private Map metadata; + + /* + * A human-readable description of the agent. + */ + @Generated + private String description; + + /* + * The agent definition. This can be a prompt, workflow, hosted, external, or voice agent definition. + */ + @Generated + private final AgentDefinition definition; + + /* + * The blueprint reference for the agent. + */ + @Generated + private AgentBlueprintReference blueprintReference; + + /* + * (Preview) The type of digital worker (previously known as `autopilot`). If omitted, it is not a digital worker. + */ + @Generated + private DigitalWorkerType digitalWorkerType; + + /* + * (Preview) Whether this agent version is a draft (candidate) rather than a release. The service defaults to + * `false` if a value is not specified by the caller. Draft versions are recorded but excluded from default 'latest' + * resolution and are not auto-promoted. + */ + @Generated + private Boolean draft; + + /** + * Creates an instance of CreateAgentVersionOptions class. + * + * @param agentName the agentName value to set. + * @param definition the definition value to set. + */ + @Generated + public CreateAgentVersionOptions(String agentName, AgentDefinition definition) { + this.agentName = agentName; + this.definition = definition; + } + + /** + * Get the agentName property: The unique name that identifies the agent. Name can be used to retrieve/update/delete + * the agent. + * - Must start and end with alphanumeric characters, + * - Can contain hyphens in the middle + * - Must not exceed 63 characters. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the metadata property: Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + * + * @return the metadata value. + */ + @Generated + public Map getMetadata() { + return this.metadata; + } + + /** + * Set the metadata property: Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + * + * @param metadata the metadata value to set. + * @return the CreateAgentVersionOptions object itself. + */ + @Generated + public CreateAgentVersionOptions setMetadata(Map metadata) { + this.metadata = metadata; + return this; + } + + /** + * Get the description property: A human-readable description of the agent. + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Set the description property: A human-readable description of the agent. + * + * @param description the description value to set. + * @return the CreateAgentVersionOptions object itself. + */ + @Generated + public CreateAgentVersionOptions setDescription(String description) { + this.description = description; + return this; + } + + /** + * Get the definition property: The agent definition. This can be a prompt, workflow, hosted, external, or voice + * agent definition. + * + * @return the definition value. + */ + @Generated + public AgentDefinition getDefinition() { + return this.definition; + } + + /** + * Get the blueprintReference property: The blueprint reference for the agent. + * + * @return the blueprintReference value. + */ + @Generated + public AgentBlueprintReference getBlueprintReference() { + return this.blueprintReference; + } + + /** + * Set the blueprintReference property: The blueprint reference for the agent. + * + * @param blueprintReference the blueprintReference value to set. + * @return the CreateAgentVersionOptions object itself. + */ + @Generated + public CreateAgentVersionOptions setBlueprintReference(AgentBlueprintReference blueprintReference) { + this.blueprintReference = blueprintReference; + return this; + } + + /** + * Get the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @return the digitalWorkerType value. + */ + @Generated + public DigitalWorkerType getDigitalWorkerType() { + return this.digitalWorkerType; + } + + /** + * Set the digitalWorkerType property: (Preview) The type of digital worker (previously known as `autopilot`). If + * omitted, it is not a digital worker. + * + * @param digitalWorkerType the digitalWorkerType value to set. + * @return the CreateAgentVersionOptions object itself. + */ + @Generated + public CreateAgentVersionOptions setDigitalWorkerType(DigitalWorkerType digitalWorkerType) { + this.digitalWorkerType = digitalWorkerType; + return this; + } + + /** + * Get the draft property: (Preview) Whether this agent version is a draft (candidate) rather than a release. The + * service defaults to `false` if a value is not specified by the caller. Draft versions are recorded but excluded + * from default 'latest' resolution and are not auto-promoted. + * + * @return the draft value. + */ + @Generated + public Boolean isDraft() { + return this.draft; + } + + /** + * Set the draft property: (Preview) Whether this agent version is a draft (candidate) rather than a release. The + * service defaults to `false` if a value is not specified by the caller. Draft versions are recorded but excluded + * from default 'latest' resolution and are not auto-promoted. + * + * @param draft the draft value to set. + * @return the CreateAgentVersionOptions object itself. + */ + @Generated + public CreateAgentVersionOptions setDraft(Boolean draft) { + this.draft = draft; + return this; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java new file mode 100644 index 000000000000..24ab8fa1fe76 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The type of digital worker. + */ +public final class DigitalWorkerType extends ExpandableStringEnum { + + /** + * A Microsoft 365 digital worker. + */ + @Generated + public static final DigitalWorkerType M365 = fromString("m365"); + + /** + * Creates a new instance of DigitalWorkerType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public DigitalWorkerType() { + } + + /** + * Creates or finds a DigitalWorkerType from its string representation. + * + * @param name a name to look for. + * @return the corresponding DigitalWorkerType. + */ + @Generated + public static DigitalWorkerType fromString(String name) { + return fromString(name, DigitalWorkerType.class); + } + + /** + * Gets known DigitalWorkerType values. + * + * @return known DigitalWorkerType values. + */ + @Generated + public static Collection values() { + return values(DigitalWorkerType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java new file mode 100644 index 000000000000..68b1c3571f09 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java @@ -0,0 +1,548 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import java.util.List; + +/** + * Options for getMicrosoft365AppPackage API. + */ +@Fluent +public final class GetMicrosoft365AppPackageOptions { + + /* + * The name of the agent to generate the app package for. + */ + @Generated + private final String agentName; + + /* + * Display name used as the published Teams app name. When omitted, the agent name from the route is + * used. + */ + @Generated + private String agentDisplayName; + + /* + * ARM resource id of the Azure Bot Service that fronts this agent in Microsoft Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + */ + @Generated + private String botServiceArmId; + + /* + * When true, the agent is published as an autopilot (digital worker) agent: the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + */ + @Generated + private Boolean publishAsAutopilot; + + /* + * Activity-protocol access boundaries to apply to the agent when publishing as an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + */ + @Generated + private List accessBoundaries; + + /* + * Exact selection of delegated permission scopes to grant to the autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + */ + @Generated + private List optionalPermissionScopes; + + /* + * Publish scope for the Teams app. + */ + @Generated + private final Microsoft365PublishScope publishScope; + + /* + * Controls how the published agent responds to Teams messages: when true it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + */ + @Generated + private Boolean canRespondWithoutMention; + + /* + * App version (for example `1.2.3`) written into the Teams manifest. May contain only digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + */ + @Generated + private String appVersion; + + /* + * Short, one-line description shown in the Teams app listing. + */ + @Generated + private String shortDescription; + + /* + * Full description shown on the Teams app details page. + */ + @Generated + private String fullDescription; + + /* + * Display name of the developer / publisher shown in the Teams app listing. + */ + @Generated + private String developerName; + + /* + * Developer / publisher website URL shown in the Teams app listing. Must be an https URL. + */ + @Generated + private String developerWebsiteUrl; + + /* + * Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + */ + @Generated + private String privacyUrl; + + /* + * Terms-of-use URL shown in the Teams app listing. + */ + @Generated + private String termsOfUseUrl; + + /* + * Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + */ + @Generated + private String colorIconBase64; + + /* + * Optional base64-encoded PNG used as the outline icon in the Teams app package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + */ + @Generated + private String outlineIconBase64; + + /** + * Creates an instance of GetMicrosoft365AppPackageOptions class. + * + * @param agentName the agentName value to set. + * @param publishScope the publishScope value to set. + */ + @Generated + public GetMicrosoft365AppPackageOptions(String agentName, Microsoft365PublishScope publishScope) { + this.agentName = agentName; + this.publishScope = publishScope; + } + + /** + * Get the agentName property: The name of the agent to generate the app package for. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @return the agentDisplayName value. + */ + @Generated + public String getAgentDisplayName() { + return this.agentDisplayName; + } + + /** + * Set the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @param agentDisplayName the agentDisplayName value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setAgentDisplayName(String agentDisplayName) { + this.agentDisplayName = agentDisplayName; + return this; + } + + /** + * Get the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @return the botServiceArmId value. + */ + @Generated + public String getBotServiceArmId() { + return this.botServiceArmId; + } + + /** + * Set the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @param botServiceArmId the botServiceArmId value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setBotServiceArmId(String botServiceArmId) { + this.botServiceArmId = botServiceArmId; + return this; + } + + /** + * Get the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @return the publishAsAutopilot value. + */ + @Generated + public Boolean isPublishAsAutopilot() { + return this.publishAsAutopilot; + } + + /** + * Set the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @param publishAsAutopilot the publishAsAutopilot value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setPublishAsAutopilot(Boolean publishAsAutopilot) { + this.publishAsAutopilot = publishAsAutopilot; + return this; + } + + /** + * Get the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @return the accessBoundaries value. + */ + @Generated + public List getAccessBoundaries() { + return this.accessBoundaries; + } + + /** + * Set the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @param accessBoundaries the accessBoundaries value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setAccessBoundaries(List accessBoundaries) { + this.accessBoundaries = accessBoundaries; + return this; + } + + /** + * Get the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @return the optionalPermissionScopes value. + */ + @Generated + public List getOptionalPermissionScopes() { + return this.optionalPermissionScopes; + } + + /** + * Set the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @param optionalPermissionScopes the optionalPermissionScopes value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions + setOptionalPermissionScopes(List optionalPermissionScopes) { + this.optionalPermissionScopes = optionalPermissionScopes; + return this; + } + + /** + * Get the publishScope property: Publish scope for the Teams app. + * + * @return the publishScope value. + */ + @Generated + public Microsoft365PublishScope getPublishScope() { + return this.publishScope; + } + + /** + * Get the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @return the canRespondWithoutMention value. + */ + @Generated + public Boolean isCanRespondWithoutMention() { + return this.canRespondWithoutMention; + } + + /** + * Set the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @param canRespondWithoutMention the canRespondWithoutMention value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setCanRespondWithoutMention(Boolean canRespondWithoutMention) { + this.canRespondWithoutMention = canRespondWithoutMention; + return this; + } + + /** + * Get the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @return the appVersion value. + */ + @Generated + public String getAppVersion() { + return this.appVersion; + } + + /** + * Set the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @param appVersion the appVersion value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setAppVersion(String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Get the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @return the shortDescription value. + */ + @Generated + public String getShortDescription() { + return this.shortDescription; + } + + /** + * Set the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @param shortDescription the shortDescription value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setShortDescription(String shortDescription) { + this.shortDescription = shortDescription; + return this; + } + + /** + * Get the fullDescription property: Full description shown on the Teams app details page. + * + * @return the fullDescription value. + */ + @Generated + public String getFullDescription() { + return this.fullDescription; + } + + /** + * Set the fullDescription property: Full description shown on the Teams app details page. + * + * @param fullDescription the fullDescription value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setFullDescription(String fullDescription) { + this.fullDescription = fullDescription; + return this; + } + + /** + * Get the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @return the developerName value. + */ + @Generated + public String getDeveloperName() { + return this.developerName; + } + + /** + * Set the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @param developerName the developerName value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setDeveloperName(String developerName) { + this.developerName = developerName; + return this; + } + + /** + * Get the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @return the developerWebsiteUrl value. + */ + @Generated + public String getDeveloperWebsiteUrl() { + return this.developerWebsiteUrl; + } + + /** + * Set the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @param developerWebsiteUrl the developerWebsiteUrl value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setDeveloperWebsiteUrl(String developerWebsiteUrl) { + this.developerWebsiteUrl = developerWebsiteUrl; + return this; + } + + /** + * Get the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @return the privacyUrl value. + */ + @Generated + public String getPrivacyUrl() { + return this.privacyUrl; + } + + /** + * Set the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @param privacyUrl the privacyUrl value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setPrivacyUrl(String privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + /** + * Get the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @return the termsOfUseUrl value. + */ + @Generated + public String getTermsOfUseUrl() { + return this.termsOfUseUrl; + } + + /** + * Set the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @param termsOfUseUrl the termsOfUseUrl value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setTermsOfUseUrl(String termsOfUseUrl) { + this.termsOfUseUrl = termsOfUseUrl; + return this; + } + + /** + * Get the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @return the colorIconBase64 value. + */ + @Generated + public String getColorIconBase64() { + return this.colorIconBase64; + } + + /** + * Set the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @param colorIconBase64 the colorIconBase64 value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setColorIconBase64(String colorIconBase64) { + this.colorIconBase64 = colorIconBase64; + return this; + } + + /** + * Get the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @return the outlineIconBase64 value. + */ + @Generated + public String getOutlineIconBase64() { + return this.outlineIconBase64; + } + + /** + * Set the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @param outlineIconBase64 the outlineIconBase64 value to set. + * @return the GetMicrosoft365AppPackageOptions object itself. + */ + @Generated + public GetMicrosoft365AppPackageOptions setOutlineIconBase64(String outlineIconBase64) { + this.outlineIconBase64 = outlineIconBase64; + return this; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java index 4257eea7a167..bd8467c1ba4a 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java @@ -123,6 +123,7 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { (writer, element) -> writer.writeJson(element)); jsonWriter.writeJsonField("code_configuration", this.codeConfiguration); jsonWriter.writeJsonField("telemetry_config", this.telemetryConfig); + jsonWriter.writeJsonField("session_configuration", this.sessionConfiguration); return jsonWriter.writeEndObject(); } @@ -147,6 +148,7 @@ public static HostedAgentDefinition fromJson(JsonReader jsonReader) throws IOExc List protocolVersions = null; CodeConfiguration codeConfiguration = null; TelemetryConfig telemetryConfig = null; + SessionConfiguration sessionConfiguration = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); @@ -168,6 +170,8 @@ public static HostedAgentDefinition fromJson(JsonReader jsonReader) throws IOExc codeConfiguration = CodeConfiguration.fromJson(reader); } else if ("telemetry_config".equals(fieldName)) { telemetryConfig = TelemetryConfig.fromJson(reader); + } else if ("session_configuration".equals(fieldName)) { + sessionConfiguration = SessionConfiguration.fromJson(reader); } else { reader.skipChildren(); } @@ -180,6 +184,7 @@ public static HostedAgentDefinition fromJson(JsonReader jsonReader) throws IOExc deserializedHostedAgentDefinition.protocolVersions = protocolVersions; deserializedHostedAgentDefinition.codeConfiguration = codeConfiguration; deserializedHostedAgentDefinition.telemetryConfig = telemetryConfig; + deserializedHostedAgentDefinition.sessionConfiguration = sessionConfiguration; return deserializedHostedAgentDefinition; }); } @@ -315,4 +320,34 @@ public HostedAgentDefinition setTelemetryConfig(TelemetryConfig telemetryConfig) this.telemetryConfig = telemetryConfig; return this; } + + /* + * Optional session defaults (for example, the idle timeout) applied to sessions created for this agent version. + */ + @Generated + private SessionConfiguration sessionConfiguration; + + /** + * Get the sessionConfiguration property: Optional session defaults (for example, the idle timeout) applied to + * sessions created for this agent version. + * + * @return the sessionConfiguration value. + */ + @Generated + public SessionConfiguration getSessionConfiguration() { + return this.sessionConfiguration; + } + + /** + * Set the sessionConfiguration property: Optional session defaults (for example, the idle timeout) applied to + * sessions created for this agent version. + * + * @param sessionConfiguration the sessionConfiguration value to set. + * @return the HostedAgentDefinition object itself. + */ + @Generated + public HostedAgentDefinition setSessionConfiguration(SessionConfiguration sessionConfiguration) { + this.sessionConfiguration = sessionConfiguration; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsTool.java new file mode 100644 index 000000000000..99aaab565fbe --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsTool.java @@ -0,0 +1,173 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * MCP list tools tool + * + * A tool available on an MCP server. + */ +@Fluent +public final class McpListToolsTool implements JsonSerializable { + + /* + * The name of the tool. + */ + @Generated + private final String name; + + /* + * The description property. + */ + @Generated + private String description; + + /* + * The JSON schema describing the tool's input. + */ + @Generated + private final McpListToolsToolInputSchema inputSchema; + + /* + * The annotations property. + */ + @Generated + private McpListToolsToolAnnotations annotations; + + /** + * Creates an instance of McpListToolsTool class. + * + * @param name the name value to set. + * @param inputSchema the inputSchema value to set. + */ + @Generated + public McpListToolsTool(String name, McpListToolsToolInputSchema inputSchema) { + this.name = name; + this.inputSchema = inputSchema; + } + + /** + * Get the name property: The name of the tool. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Get the description property: The description property. + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Set the description property: The description property. + * + * @param description the description value to set. + * @return the McpListToolsTool object itself. + */ + @Generated + public McpListToolsTool setDescription(String description) { + this.description = description; + return this; + } + + /** + * Get the inputSchema property: The JSON schema describing the tool's input. + * + * @return the inputSchema value. + */ + @Generated + public McpListToolsToolInputSchema getInputSchema() { + return this.inputSchema; + } + + /** + * Get the annotations property: The annotations property. + * + * @return the annotations value. + */ + @Generated + public McpListToolsToolAnnotations getAnnotations() { + return this.annotations; + } + + /** + * Set the annotations property: The annotations property. + * + * @param annotations the annotations value to set. + * @return the McpListToolsTool object itself. + */ + @Generated + public McpListToolsTool setAnnotations(McpListToolsToolAnnotations annotations) { + this.annotations = annotations; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeJsonField("input_schema", this.inputSchema); + jsonWriter.writeStringField("description", this.description); + jsonWriter.writeJsonField("annotations", this.annotations); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of McpListToolsTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of McpListToolsTool if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the McpListToolsTool. + */ + @Generated + public static McpListToolsTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + McpListToolsToolInputSchema inputSchema = null; + String description = null; + McpListToolsToolAnnotations annotations = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("input_schema".equals(fieldName)) { + inputSchema = McpListToolsToolInputSchema.fromJson(reader); + } else if ("description".equals(fieldName)) { + description = reader.getString(); + } else if ("annotations".equals(fieldName)) { + annotations = McpListToolsToolAnnotations.fromJson(reader); + } else { + reader.skipChildren(); + } + } + McpListToolsTool deserializedMcpListToolsTool = new McpListToolsTool(name, inputSchema); + deserializedMcpListToolsTool.description = description; + deserializedMcpListToolsTool.annotations = annotations; + return deserializedMcpListToolsTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java new file mode 100644 index 000000000000..d2cd31f5bf36 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The McpListToolsToolAnnotations model. + */ +@Immutable +public final class McpListToolsToolAnnotations implements JsonSerializable { + + /** + * Creates an instance of McpListToolsToolAnnotations class. + */ + @Generated + public McpListToolsToolAnnotations() { + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of McpListToolsToolAnnotations from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of McpListToolsToolAnnotations if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the McpListToolsToolAnnotations. + */ + @Generated + public static McpListToolsToolAnnotations fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + McpListToolsToolAnnotations deserializedMcpListToolsToolAnnotations = new McpListToolsToolAnnotations(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + reader.skipChildren(); + } + return deserializedMcpListToolsToolAnnotations; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java new file mode 100644 index 000000000000..e2c3dee813ad --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The McpListToolsToolInputSchema model. + */ +@Immutable +public final class McpListToolsToolInputSchema implements JsonSerializable { + + /** + * Creates an instance of McpListToolsToolInputSchema class. + */ + @Generated + public McpListToolsToolInputSchema() { + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of McpListToolsToolInputSchema from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of McpListToolsToolInputSchema if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the McpListToolsToolInputSchema. + */ + @Generated + public static McpListToolsToolInputSchema fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + McpListToolsToolInputSchema deserializedMcpListToolsToolInputSchema = new McpListToolsToolInputSchema(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + reader.skipChildren(); + } + return deserializedMcpListToolsToolInputSchema; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java new file mode 100644 index 000000000000..cf3cab842075 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + */ +@Fluent +public final class Metadata implements JsonSerializable { + + /* + * Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + */ + @Generated + private Map additionalProperties; + + /** + * Creates an instance of Metadata class. + */ + @Generated + public Metadata() { + } + + /** + * Get the additionalProperties property: Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + * + * @return the additionalProperties value. + */ + @Generated + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + /** + * Set the additionalProperties property: Set of 16 key-value pairs that can be attached to an object. This can be + * useful for storing additional information about the object in a structured + * format, and querying for objects via API or the dashboard. + * Keys are strings with a maximum length of 64 characters. Values are strings + * with a maximum length of 512 characters. + * + * @param additionalProperties the additionalProperties value to set. + * @return the Metadata object itself. + */ + @Generated + public Metadata setAdditionalProperties(Map additionalProperties) { + this.additionalProperties = additionalProperties; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + if (additionalProperties != null) { + for (Map.Entry additionalProperty : additionalProperties.entrySet()) { + jsonWriter.writeUntypedField(additionalProperty.getKey(), additionalProperty.getValue()); + } + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of Metadata from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of Metadata if the JsonReader was pointing to an instance of it, or null if it was pointing + * to JSON null. + * @throws IOException If an error occurs while reading the Metadata. + */ + @Generated + public static Metadata fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Metadata deserializedMetadata = new Metadata(); + Map additionalProperties = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if (additionalProperties == null) { + additionalProperties = new LinkedHashMap<>(); + } + additionalProperties.put(fieldName, reader.getString()); + } + deserializedMetadata.additionalProperties = additionalProperties; + return deserializedMetadata; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java new file mode 100644 index 000000000000..a9eaf77e0793 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * A set of delegated permission scopes requested from a single resource application. + */ +@Immutable +public final class Microsoft365PermissionScopes implements JsonSerializable { + + /* + * Application id of the resource that exposes the requested delegated scopes. + */ + @Generated + private final String resourceAppId; + + /* + * Delegated scope names requested from the resource application. Must not be empty. + */ + @Generated + private final List scopes; + + /** + * Creates an instance of Microsoft365PermissionScopes class. + * + * @param resourceAppId the resourceAppId value to set. + * @param scopes the scopes value to set. + */ + @Generated + public Microsoft365PermissionScopes(String resourceAppId, List scopes) { + this.resourceAppId = resourceAppId; + this.scopes = scopes; + } + + /** + * Get the resourceAppId property: Application id of the resource that exposes the requested delegated scopes. + * + * @return the resourceAppId value. + */ + @Generated + public String getResourceAppId() { + return this.resourceAppId; + } + + /** + * Get the scopes property: Delegated scope names requested from the resource application. Must not be empty. + * + * @return the scopes value. + */ + @Generated + public List getScopes() { + return this.scopes; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("resourceAppId", this.resourceAppId); + jsonWriter.writeArrayField("scopes", this.scopes, (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of Microsoft365PermissionScopes from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of Microsoft365PermissionScopes if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the Microsoft365PermissionScopes. + */ + @Generated + public static Microsoft365PermissionScopes fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String resourceAppId = null; + List scopes = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("resourceAppId".equals(fieldName)) { + resourceAppId = reader.getString(); + } else if ("scopes".equals(fieldName)) { + scopes = reader.readArray(reader1 -> reader1.getString()); + } else { + reader.skipChildren(); + } + } + return new Microsoft365PermissionScopes(resourceAppId, scopes); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java new file mode 100644 index 000000000000..9b92306607c8 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java @@ -0,0 +1,352 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Default and previously-published values used to pre-populate a Microsoft 365 publish request for a + * Foundry agent. + */ +@Immutable +public final class Microsoft365PublishDefaults implements JsonSerializable { + + /* + * The publish scope. + */ + @Generated + private Microsoft365PublishScope appPublishScope; + + /* + * The agent name. + */ + @Generated + private String agentName; + + /* + * The user-facing display name for the agent. Defaults to the agent name if not previously + * overridden. + */ + @Generated + private String agentDisplayName; + + /* + * The app-registration client id associated with the agent. + */ + @Generated + private String appRegistrationClientId; + + /* + * ARM resource id of the Azure Bot Service associated with the previously-published app, if any. + */ + @Generated + private String botServiceArmId; + + /* + * The most recently published app version. + */ + @Generated + private String appVersion; + + /* + * The recommended next app version (the most recent app version, incremented). + */ + @Generated + private String recommendedNextAppVersion; + + /* + * The Microsoft 365 title id of the previously-published app, if any. + */ + @Generated + private String titleId; + + /* + * The Microsoft Teams app id of the previously-published app, if any. + */ + @Generated + private String teamsAppId; + + /* + * Short, one-line description shown in the Teams app listing. + */ + @Generated + private String shortDescription; + + /* + * Full description shown on the Teams app details page. + */ + @Generated + private String fullDescription; + + /* + * Display name of the developer / publisher. + */ + @Generated + private String developerName; + + /* + * Developer / publisher website URL. + */ + @Generated + private String developerWebsiteUrl; + + /* + * Privacy policy URL. + */ + @Generated + private String privacyUrl; + + /* + * Terms-of-use URL. + */ + @Generated + private String termsOfUseUrl; + + /** + * Creates an instance of Microsoft365PublishDefaults class. + */ + @Generated + private Microsoft365PublishDefaults() { + } + + /** + * Get the appPublishScope property: The publish scope. + * + * @return the appPublishScope value. + */ + @Generated + public Microsoft365PublishScope getAppPublishScope() { + return this.appPublishScope; + } + + /** + * Get the agentName property: The agent name. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the agentDisplayName property: The user-facing display name for the agent. Defaults to the agent name if not + * previously + * overridden. + * + * @return the agentDisplayName value. + */ + @Generated + public String getAgentDisplayName() { + return this.agentDisplayName; + } + + /** + * Get the appRegistrationClientId property: The app-registration client id associated with the agent. + * + * @return the appRegistrationClientId value. + */ + @Generated + public String getAppRegistrationClientId() { + return this.appRegistrationClientId; + } + + /** + * Get the botServiceArmId property: ARM resource id of the Azure Bot Service associated with the + * previously-published app, if any. + * + * @return the botServiceArmId value. + */ + @Generated + public String getBotServiceArmId() { + return this.botServiceArmId; + } + + /** + * Get the appVersion property: The most recently published app version. + * + * @return the appVersion value. + */ + @Generated + public String getAppVersion() { + return this.appVersion; + } + + /** + * Get the recommendedNextAppVersion property: The recommended next app version (the most recent app version, + * incremented). + * + * @return the recommendedNextAppVersion value. + */ + @Generated + public String getRecommendedNextAppVersion() { + return this.recommendedNextAppVersion; + } + + /** + * Get the titleId property: The Microsoft 365 title id of the previously-published app, if any. + * + * @return the titleId value. + */ + @Generated + public String getTitleId() { + return this.titleId; + } + + /** + * Get the teamsAppId property: The Microsoft Teams app id of the previously-published app, if any. + * + * @return the teamsAppId value. + */ + @Generated + public String getTeamsAppId() { + return this.teamsAppId; + } + + /** + * Get the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @return the shortDescription value. + */ + @Generated + public String getShortDescription() { + return this.shortDescription; + } + + /** + * Get the fullDescription property: Full description shown on the Teams app details page. + * + * @return the fullDescription value. + */ + @Generated + public String getFullDescription() { + return this.fullDescription; + } + + /** + * Get the developerName property: Display name of the developer / publisher. + * + * @return the developerName value. + */ + @Generated + public String getDeveloperName() { + return this.developerName; + } + + /** + * Get the developerWebsiteUrl property: Developer / publisher website URL. + * + * @return the developerWebsiteUrl value. + */ + @Generated + public String getDeveloperWebsiteUrl() { + return this.developerWebsiteUrl; + } + + /** + * Get the privacyUrl property: Privacy policy URL. + * + * @return the privacyUrl value. + */ + @Generated + public String getPrivacyUrl() { + return this.privacyUrl; + } + + /** + * Get the termsOfUseUrl property: Terms-of-use URL. + * + * @return the termsOfUseUrl value. + */ + @Generated + public String getTermsOfUseUrl() { + return this.termsOfUseUrl; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("appPublishScope", + this.appPublishScope == null ? null : this.appPublishScope.toString()); + jsonWriter.writeStringField("agentName", this.agentName); + jsonWriter.writeStringField("agentDisplayName", this.agentDisplayName); + jsonWriter.writeStringField("appRegistrationClientId", this.appRegistrationClientId); + jsonWriter.writeStringField("botServiceArmId", this.botServiceArmId); + jsonWriter.writeStringField("appVersion", this.appVersion); + jsonWriter.writeStringField("recommendedNextAppVersion", this.recommendedNextAppVersion); + jsonWriter.writeStringField("titleId", this.titleId); + jsonWriter.writeStringField("teamsAppId", this.teamsAppId); + jsonWriter.writeStringField("shortDescription", this.shortDescription); + jsonWriter.writeStringField("fullDescription", this.fullDescription); + jsonWriter.writeStringField("developerName", this.developerName); + jsonWriter.writeStringField("developerWebsiteUrl", this.developerWebsiteUrl); + jsonWriter.writeStringField("privacyUrl", this.privacyUrl); + jsonWriter.writeStringField("termsOfUseUrl", this.termsOfUseUrl); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of Microsoft365PublishDefaults from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of Microsoft365PublishDefaults if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the Microsoft365PublishDefaults. + */ + @Generated + public static Microsoft365PublishDefaults fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Microsoft365PublishDefaults deserializedMicrosoft365PublishDefaults = new Microsoft365PublishDefaults(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("appPublishScope".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.appPublishScope + = Microsoft365PublishScope.fromString(reader.getString()); + } else if ("agentName".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.agentName = reader.getString(); + } else if ("agentDisplayName".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.agentDisplayName = reader.getString(); + } else if ("appRegistrationClientId".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.appRegistrationClientId = reader.getString(); + } else if ("botServiceArmId".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.botServiceArmId = reader.getString(); + } else if ("appVersion".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.appVersion = reader.getString(); + } else if ("recommendedNextAppVersion".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.recommendedNextAppVersion = reader.getString(); + } else if ("titleId".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.titleId = reader.getString(); + } else if ("teamsAppId".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.teamsAppId = reader.getString(); + } else if ("shortDescription".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.shortDescription = reader.getString(); + } else if ("fullDescription".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.fullDescription = reader.getString(); + } else if ("developerName".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.developerName = reader.getString(); + } else if ("developerWebsiteUrl".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.developerWebsiteUrl = reader.getString(); + } else if ("privacyUrl".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.privacyUrl = reader.getString(); + } else if ("termsOfUseUrl".equals(fieldName)) { + deserializedMicrosoft365PublishDefaults.termsOfUseUrl = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedMicrosoft365PublishDefaults; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java new file mode 100644 index 000000000000..1e467e8a65eb --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Response from publishing an agent to Microsoft 365 / Microsoft Teams. + */ +@Immutable +public final class Microsoft365PublishResponse implements JsonSerializable { + + /* + * The Microsoft 365 title id of the published app. + */ + @Generated + private String titleId; + + /* + * The Microsoft Teams app id of the published app. + */ + @Generated + private String teamsAppId; + + /** + * Creates an instance of Microsoft365PublishResponse class. + */ + @Generated + private Microsoft365PublishResponse() { + } + + /** + * Get the titleId property: The Microsoft 365 title id of the published app. + * + * @return the titleId value. + */ + @Generated + public String getTitleId() { + return this.titleId; + } + + /** + * Get the teamsAppId property: The Microsoft Teams app id of the published app. + * + * @return the teamsAppId value. + */ + @Generated + public String getTeamsAppId() { + return this.teamsAppId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("titleId", this.titleId); + jsonWriter.writeStringField("teamsAppId", this.teamsAppId); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of Microsoft365PublishResponse from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of Microsoft365PublishResponse if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the Microsoft365PublishResponse. + */ + @Generated + public static Microsoft365PublishResponse fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Microsoft365PublishResponse deserializedMicrosoft365PublishResponse = new Microsoft365PublishResponse(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("titleId".equals(fieldName)) { + deserializedMicrosoft365PublishResponse.titleId = reader.getString(); + } else if ("teamsAppId".equals(fieldName)) { + deserializedMicrosoft365PublishResponse.teamsAppId = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedMicrosoft365PublishResponse; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java new file mode 100644 index 000000000000..9cc363ccfde0 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The publish scope for the generated Microsoft Teams app. + */ +public final class Microsoft365PublishScope extends ExpandableStringEnum { + + /** + * Publish the app for the acting user only. + */ + @Generated + public static final Microsoft365PublishScope PERSONAL = fromString("Personal"); + + /** + * Publish the app to a shared scope within the organization. + */ + @Generated + public static final Microsoft365PublishScope SHARED = fromString("Shared"); + + /** + * Publish the app tenant-wide. + */ + @Generated + public static final Microsoft365PublishScope TENANT = fromString("Tenant"); + + /** + * Creates a new instance of Microsoft365PublishScope value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public Microsoft365PublishScope() { + } + + /** + * Creates or finds a Microsoft365PublishScope from its string representation. + * + * @param name a name to look for. + * @return the corresponding Microsoft365PublishScope. + */ + @Generated + public static Microsoft365PublishScope fromString(String name) { + return fromString(name, Microsoft365PublishScope.class); + } + + /** + * Gets known Microsoft365PublishScope values. + * + * @return known Microsoft365PublishScope values. + */ + @Generated + public static Collection values() { + return values(Microsoft365PublishScope.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java new file mode 100644 index 000000000000..d1c68b835e3d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A single routing attempt targeting a specific model. + */ +@Immutable +public final class ModelRouterAttempt implements JsonSerializable { + + /* + * The model targeted in this attempt. + */ + @Generated + private final String model; + + /* + * How this attempt concluded — whether the model served the request successfully or encountered an error. + */ + @Generated + private final ModelRouterAttemptResult result; + + /** + * Creates an instance of ModelRouterAttempt class. + * + * @param model the model value to set. + * @param result the result value to set. + */ + @Generated + private ModelRouterAttempt(String model, ModelRouterAttemptResult result) { + this.model = model; + this.result = result; + } + + /** + * Get the model property: The model targeted in this attempt. + * + * @return the model value. + */ + @Generated + public String getModel() { + return this.model; + } + + /** + * Get the result property: How this attempt concluded — whether the model served the request successfully or + * encountered an error. + * + * @return the result value. + */ + @Generated + public ModelRouterAttemptResult getResult() { + return this.result; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("model", this.model); + jsonWriter.writeJsonField("result", this.result); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ModelRouterAttempt from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ModelRouterAttempt if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ModelRouterAttempt. + */ + @Generated + public static ModelRouterAttempt fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String model = null; + ModelRouterAttemptResult result = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("model".equals(fieldName)) { + model = reader.getString(); + } else if ("result".equals(fieldName)) { + result = ModelRouterAttemptResult.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return new ModelRouterAttempt(model, result); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java new file mode 100644 index 000000000000..5ea6ffb5b8ce --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Error details returned by a model routing attempt. + */ +@Immutable +public final class ModelRouterAttemptError implements JsonSerializable { + + /* + * A service-defined error code. + */ + @Generated + private String code; + + /* + * A human-readable description of the error. + */ + @Generated + private final String message; + + /** + * Creates an instance of ModelRouterAttemptError class. + * + * @param message the message value to set. + */ + @Generated + private ModelRouterAttemptError(String message) { + this.message = message; + } + + /** + * Get the code property: A service-defined error code. + * + * @return the code value. + */ + @Generated + public String getCode() { + return this.code; + } + + /** + * Get the message property: A human-readable description of the error. + * + * @return the message value. + */ + @Generated + public String getMessage() { + return this.message; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("message", this.message); + jsonWriter.writeStringField("code", this.code); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ModelRouterAttemptError from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ModelRouterAttemptError if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ModelRouterAttemptError. + */ + @Generated + public static ModelRouterAttemptError fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String message = null; + String code = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("message".equals(fieldName)) { + message = reader.getString(); + } else if ("code".equals(fieldName)) { + code = reader.getString(); + } else { + reader.skipChildren(); + } + } + ModelRouterAttemptError deserializedModelRouterAttemptError = new ModelRouterAttemptError(message); + deserializedModelRouterAttemptError.code = code; + return deserializedModelRouterAttemptError; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java new file mode 100644 index 000000000000..b4bb727a1344 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.Map; + +/** + * The HTTP-style result returned by a model routing attempt. + */ +@Immutable +public final class ModelRouterAttemptResult implements JsonSerializable { + + /* + * The HTTP status code returned by the model. + */ + @Generated + private final int status; + + /* + * Response headers returned by the model. + */ + @Generated + private Map headers; + + /* + * Error details returned when the attempt did not succeed. + */ + @Generated + private ModelRouterAttemptError error; + + /** + * Creates an instance of ModelRouterAttemptResult class. + * + * @param status the status value to set. + */ + @Generated + private ModelRouterAttemptResult(int status) { + this.status = status; + } + + /** + * Get the status property: The HTTP status code returned by the model. + * + * @return the status value. + */ + @Generated + public int getStatus() { + return this.status; + } + + /** + * Get the headers property: Response headers returned by the model. + * + * @return the headers value. + */ + @Generated + public Map getHeaders() { + return this.headers; + } + + /** + * Get the error property: Error details returned when the attempt did not succeed. + * + * @return the error value. + */ + @Generated + public ModelRouterAttemptError getError() { + return this.error; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeIntField("status", this.status); + jsonWriter.writeMapField("headers", this.headers, (writer, element) -> { + if (element == null) { + writer.writeNull(); + } else { + element.writeTo(writer); + } + }); + jsonWriter.writeJsonField("error", this.error); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ModelRouterAttemptResult from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ModelRouterAttemptResult if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ModelRouterAttemptResult. + */ + @Generated + public static ModelRouterAttemptResult fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + int status = 0; + Map headers = null; + ModelRouterAttemptError error = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("status".equals(fieldName)) { + status = reader.getInt(); + } else if ("headers".equals(fieldName)) { + headers = reader.readMap(reader1 -> reader1 + .getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped()))); + } else if ("error".equals(fieldName)) { + error = ModelRouterAttemptError.fromJson(reader); + } else { + reader.skipChildren(); + } + } + ModelRouterAttemptResult deserializedModelRouterAttemptResult = new ModelRouterAttemptResult(status); + deserializedModelRouterAttemptResult.headers = headers; + deserializedModelRouterAttemptResult.error = error; + return deserializedModelRouterAttemptResult; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java new file mode 100644 index 000000000000..33609ae6c064 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Routing decision metadata from Model Router. + */ +@Immutable +public final class ModelRouterDetails implements JsonSerializable { + + /* + * The routing mode for the request. + */ + @Generated + private final ModelRouterMode mode; + + /* + * Ordered trace of routing decisions. Contains one entry for Chat Completions, and may contain multiple entries for + * Responses API or agent scenarios where multiple inference turns occur. + */ + @Generated + private final List routingTrace; + + /** + * Creates an instance of ModelRouterDetails class. + * + * @param mode the mode value to set. + * @param routingTrace the routingTrace value to set. + */ + @Generated + private ModelRouterDetails(ModelRouterMode mode, List routingTrace) { + this.mode = mode; + this.routingTrace = routingTrace; + } + + /** + * Get the mode property: The routing mode for the request. + * + * @return the mode value. + */ + @Generated + public ModelRouterMode getMode() { + return this.mode; + } + + /** + * Get the routingTrace property: Ordered trace of routing decisions. Contains one entry for Chat Completions, and + * may contain multiple entries for Responses API or agent scenarios where multiple inference turns occur. + * + * @return the routingTrace value. + */ + @Generated + public List getRoutingTrace() { + return this.routingTrace; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("mode", this.mode == null ? null : this.mode.toString()); + jsonWriter.writeArrayField("routing_trace", this.routingTrace, (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ModelRouterDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ModelRouterDetails if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ModelRouterDetails. + */ + @Generated + public static ModelRouterDetails fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ModelRouterMode mode = null; + List routingTrace = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("mode".equals(fieldName)) { + mode = ModelRouterMode.fromString(reader.getString()); + } else if ("routing_trace".equals(fieldName)) { + routingTrace = reader.readArray(reader1 -> RoutingTraceEntry.fromJson(reader1)); + } else { + reader.skipChildren(); + } + } + return new ModelRouterDetails(mode, routingTrace); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterMode.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterMode.java new file mode 100644 index 000000000000..a52f0763b5e2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterMode.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The routing mode used by Model Router for the request. + */ +public final class ModelRouterMode extends ExpandableStringEnum { + + /** + * Default routing strategy balancing cost and accuracy across eligible models. + */ + @Generated + public static final ModelRouterMode BALANCED = fromString("balanced"); + + /** + * Prioritizes cost. + */ + @Generated + public static final ModelRouterMode COST = fromString("cost"); + + /** + * Prioritizes accuracy. + */ + @Generated + public static final ModelRouterMode QUALITY = fromString("quality"); + + /** + * Creates a new instance of ModelRouterMode value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public ModelRouterMode() { + } + + /** + * Creates or finds a ModelRouterMode from its string representation. + * + * @param name a name to look for. + * @return the corresponding ModelRouterMode. + */ + @Generated + public static ModelRouterMode fromString(String name) { + return fromString(name, ModelRouterMode.class); + } + + /** + * Gets known ModelRouterMode values. + * + * @return known ModelRouterMode values. + */ + @Generated + public static Collection values() { + return values(ModelRouterMode.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java new file mode 100644 index 000000000000..7b232e770edb --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Model selection metadata providing visibility into routing decisions. + */ +@Immutable +public final class ModelSelectionDetails implements JsonSerializable { + + /* + * Routing decision metadata from Model Router. Present when the request was handled by Model Router. + */ + @Generated + private final ModelRouterDetails modelRouterDetails; + + /** + * Creates an instance of ModelSelectionDetails class. + * + * @param modelRouterDetails the modelRouterDetails value to set. + */ + @Generated + private ModelSelectionDetails(ModelRouterDetails modelRouterDetails) { + this.modelRouterDetails = modelRouterDetails; + } + + /** + * Get the modelRouterDetails property: Routing decision metadata from Model Router. Present when the request was + * handled by Model Router. + * + * @return the modelRouterDetails value. + */ + @Generated + public ModelRouterDetails getModelRouterDetails() { + return this.modelRouterDetails; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("model_router_details", this.modelRouterDetails); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ModelSelectionDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ModelSelectionDetails if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ModelSelectionDetails. + */ + @Generated + public static ModelSelectionDetails fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ModelRouterDetails modelRouterDetails = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("model_router_details".equals(fieldName)) { + modelRouterDetails = ModelRouterDetails.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return new ModelSelectionDetails(modelRouterDetails); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java new file mode 100644 index 000000000000..8986dc4109b0 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for PromptAgentDefinitionReasoningContext. + */ +public enum PromptAgentDefinitionReasoningContext { + /** + * Enum value auto. + */ + AUTO("auto"), + + /** + * Enum value current_turn. + */ + CURRENT_TURN("current_turn"), + + /** + * Enum value all_turns. + */ + ALL_TURNS("all_turns"); + + /** + * The actual serialized value for a PromptAgentDefinitionReasoningContext instance. + */ + private final String value; + + PromptAgentDefinitionReasoningContext(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a PromptAgentDefinitionReasoningContext instance. + * + * @param value the serialized value to parse. + * @return the parsed PromptAgentDefinitionReasoningContext object, or null if unable to parse. + */ + public static PromptAgentDefinitionReasoningContext fromString(String value) { + if (value == null) { + return null; + } + PromptAgentDefinitionReasoningContext[] items = PromptAgentDefinitionReasoningContext.values(); + for (PromptAgentDefinitionReasoningContext item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java new file mode 100644 index 000000000000..c604f1905c9a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for PromptAgentDefinitionReasoningGenerateSummary. + */ +public enum PromptAgentDefinitionReasoningGenerateSummary { + /** + * Enum value auto. + */ + AUTO("auto"), + + /** + * Enum value concise. + */ + CONCISE("concise"), + + /** + * Enum value detailed. + */ + DETAILED("detailed"); + + /** + * The actual serialized value for a PromptAgentDefinitionReasoningGenerateSummary instance. + */ + private final String value; + + PromptAgentDefinitionReasoningGenerateSummary(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a PromptAgentDefinitionReasoningGenerateSummary instance. + * + * @param value the serialized value to parse. + * @return the parsed PromptAgentDefinitionReasoningGenerateSummary object, or null if unable to parse. + */ + public static PromptAgentDefinitionReasoningGenerateSummary fromString(String value) { + if (value == null) { + return null; + } + PromptAgentDefinitionReasoningGenerateSummary[] items = PromptAgentDefinitionReasoningGenerateSummary.values(); + for (PromptAgentDefinitionReasoningGenerateSummary item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java new file mode 100644 index 000000000000..556cb653de25 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for PromptAgentDefinitionReasoningSummary. + */ +public enum PromptAgentDefinitionReasoningSummary { + /** + * Enum value auto. + */ + AUTO("auto"), + + /** + * Enum value concise. + */ + CONCISE("concise"), + + /** + * Enum value detailed. + */ + DETAILED("detailed"); + + /** + * The actual serialized value for a PromptAgentDefinitionReasoningSummary instance. + */ + private final String value; + + PromptAgentDefinitionReasoningSummary(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a PromptAgentDefinitionReasoningSummary instance. + * + * @param value the serialized value to parse. + * @return the parsed PromptAgentDefinitionReasoningSummary object, or null if unable to parse. + */ + public static PromptAgentDefinitionReasoningSummary fromString(String value) { + if (value == null) { + return null; + } + PromptAgentDefinitionReasoningSummary[] items = PromptAgentDefinitionReasoningSummary.values(); + for (PromptAgentDefinitionReasoningSummary item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java new file mode 100644 index 000000000000..fc1f0a612804 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java @@ -0,0 +1,549 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import java.util.List; + +/** + * Options for publishAgentToMicrosoft365 API. + */ +@Fluent +public final class PublishAgentToMicrosoft365Options { + + /* + * The name of the agent to publish. + */ + @Generated + private final String agentName; + + /* + * Display name used as the published Teams app name. When omitted, the agent name from the route is + * used. + */ + @Generated + private String agentDisplayName; + + /* + * ARM resource id of the Azure Bot Service that fronts this agent in Microsoft Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + */ + @Generated + private String botServiceArmId; + + /* + * When true, the agent is published as an autopilot (digital worker) agent: the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + */ + @Generated + private Boolean publishAsAutopilot; + + /* + * Activity-protocol access boundaries to apply to the agent when publishing as an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + */ + @Generated + private List accessBoundaries; + + /* + * Exact selection of delegated permission scopes to grant to the autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + */ + @Generated + private List optionalPermissionScopes; + + /* + * Publish scope for the Teams app. + */ + @Generated + private final Microsoft365PublishScope publishScope; + + /* + * Controls how the published agent responds to Teams messages: when true it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + */ + @Generated + private Boolean canRespondWithoutMention; + + /* + * App version (for example `1.2.3`) written into the Teams manifest. May contain only digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + */ + @Generated + private String appVersion; + + /* + * Short, one-line description shown in the Teams app listing. + */ + @Generated + private String shortDescription; + + /* + * Full description shown on the Teams app details page. + */ + @Generated + private String fullDescription; + + /* + * Display name of the developer / publisher shown in the Teams app listing. + */ + @Generated + private String developerName; + + /* + * Developer / publisher website URL shown in the Teams app listing. Must be an https URL. + */ + @Generated + private String developerWebsiteUrl; + + /* + * Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + */ + @Generated + private String privacyUrl; + + /* + * Terms-of-use URL shown in the Teams app listing. + */ + @Generated + private String termsOfUseUrl; + + /* + * Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + */ + @Generated + private String colorIconBase64; + + /* + * Optional base64-encoded PNG used as the outline icon in the Teams app package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + */ + @Generated + private String outlineIconBase64; + + /** + * Creates an instance of PublishAgentToMicrosoft365Options class. + * + * @param agentName the agentName value to set. + * @param publishScope the publishScope value to set. + */ + @Generated + public PublishAgentToMicrosoft365Options(String agentName, Microsoft365PublishScope publishScope) { + this.agentName = agentName; + this.publishScope = publishScope; + } + + /** + * Get the agentName property: The name of the agent to publish. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @return the agentDisplayName value. + */ + @Generated + public String getAgentDisplayName() { + return this.agentDisplayName; + } + + /** + * Set the agentDisplayName property: Display name used as the published Teams app name. When omitted, the agent + * name from the route is + * used. + * + * @param agentDisplayName the agentDisplayName value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setAgentDisplayName(String agentDisplayName) { + this.agentDisplayName = agentDisplayName; + return this; + } + + /** + * Get the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @return the botServiceArmId value. + */ + @Generated + public String getBotServiceArmId() { + return this.botServiceArmId; + } + + /** + * Set the botServiceArmId property: ARM resource id of the Azure Bot Service that fronts this agent in Microsoft + * Teams. Required for + * workspaces on the default bot-based Teams backend; optional for workspaces on the API-based backend. + * Must not be supplied when `publishAsAutopilot` is true. + * + * @param botServiceArmId the botServiceArmId value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setBotServiceArmId(String botServiceArmId) { + this.botServiceArmId = botServiceArmId; + return this; + } + + /** + * Get the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @return the publishAsAutopilot value. + */ + @Generated + public Boolean isPublishAsAutopilot() { + return this.publishAsAutopilot; + } + + /** + * Set the publishAsAutopilot property: When true, the agent is published as an autopilot (digital worker) agent: + * the bot id is taken from + * the agent's blueprint identity and the generated Teams manifest is marked as a digital worker. + * + * @param publishAsAutopilot the publishAsAutopilot value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setPublishAsAutopilot(Boolean publishAsAutopilot) { + this.publishAsAutopilot = publishAsAutopilot; + return this; + } + + /** + * Get the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @return the accessBoundaries value. + */ + @Generated + public List getAccessBoundaries() { + return this.accessBoundaries; + } + + /** + * Set the accessBoundaries property: Activity-protocol access boundaries to apply to the agent when publishing as + * an autopilot agent. + * An empty list clears the existing boundaries. When omitted, the existing boundaries are left + * unchanged. + * + * @param accessBoundaries the accessBoundaries value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options + setAccessBoundaries(List accessBoundaries) { + this.accessBoundaries = accessBoundaries; + return this; + } + + /** + * Get the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @return the optionalPermissionScopes value. + */ + @Generated + public List getOptionalPermissionScopes() { + return this.optionalPermissionScopes; + } + + /** + * Set the optionalPermissionScopes property: Exact selection of delegated permission scopes to grant to the + * autopilot blueprint. May only be + * supplied when `publishAsAutopilot` is true. When omitted or empty, the platform's default + * permission set is used. Mandatory platform permissions are always granted and are not affected by + * this value. + * + * @param optionalPermissionScopes the optionalPermissionScopes value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options + setOptionalPermissionScopes(List optionalPermissionScopes) { + this.optionalPermissionScopes = optionalPermissionScopes; + return this; + } + + /** + * Get the publishScope property: Publish scope for the Teams app. + * + * @return the publishScope value. + */ + @Generated + public Microsoft365PublishScope getPublishScope() { + return this.publishScope; + } + + /** + * Get the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @return the canRespondWithoutMention value. + */ + @Generated + public Boolean isCanRespondWithoutMention() { + return this.canRespondWithoutMention; + } + + /** + * Set the canRespondWithoutMention property: Controls how the published agent responds to Teams messages: when true + * it responds to all messages + * on its surfaces, when false only when it is at-mentioned. When omitted, the agent's existing Teams + * message-notification setting is left unchanged. + * + * @param canRespondWithoutMention the canRespondWithoutMention value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setCanRespondWithoutMention(Boolean canRespondWithoutMention) { + this.canRespondWithoutMention = canRespondWithoutMention; + return this; + } + + /** + * Get the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @return the appVersion value. + */ + @Generated + public String getAppVersion() { + return this.appVersion; + } + + /** + * Set the appVersion property: App version (for example `1.2.3`) written into the Teams manifest. May contain only + * digits and + * periods, must not start with `0`, and must end with a digit. When omitted, a platform default is + * used. + * + * @param appVersion the appVersion value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setAppVersion(String appVersion) { + this.appVersion = appVersion; + return this; + } + + /** + * Get the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @return the shortDescription value. + */ + @Generated + public String getShortDescription() { + return this.shortDescription; + } + + /** + * Set the shortDescription property: Short, one-line description shown in the Teams app listing. + * + * @param shortDescription the shortDescription value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setShortDescription(String shortDescription) { + this.shortDescription = shortDescription; + return this; + } + + /** + * Get the fullDescription property: Full description shown on the Teams app details page. + * + * @return the fullDescription value. + */ + @Generated + public String getFullDescription() { + return this.fullDescription; + } + + /** + * Set the fullDescription property: Full description shown on the Teams app details page. + * + * @param fullDescription the fullDescription value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setFullDescription(String fullDescription) { + this.fullDescription = fullDescription; + return this; + } + + /** + * Get the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @return the developerName value. + */ + @Generated + public String getDeveloperName() { + return this.developerName; + } + + /** + * Set the developerName property: Display name of the developer / publisher shown in the Teams app listing. + * + * @param developerName the developerName value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setDeveloperName(String developerName) { + this.developerName = developerName; + return this; + } + + /** + * Get the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @return the developerWebsiteUrl value. + */ + @Generated + public String getDeveloperWebsiteUrl() { + return this.developerWebsiteUrl; + } + + /** + * Set the developerWebsiteUrl property: Developer / publisher website URL shown in the Teams app listing. Must be + * an https URL. + * + * @param developerWebsiteUrl the developerWebsiteUrl value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setDeveloperWebsiteUrl(String developerWebsiteUrl) { + this.developerWebsiteUrl = developerWebsiteUrl; + return this; + } + + /** + * Get the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @return the privacyUrl value. + */ + @Generated + public String getPrivacyUrl() { + return this.privacyUrl; + } + + /** + * Set the privacyUrl property: Privacy policy URL shown in the Teams app listing. Must be an http or https URL. + * + * @param privacyUrl the privacyUrl value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setPrivacyUrl(String privacyUrl) { + this.privacyUrl = privacyUrl; + return this; + } + + /** + * Get the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @return the termsOfUseUrl value. + */ + @Generated + public String getTermsOfUseUrl() { + return this.termsOfUseUrl; + } + + /** + * Set the termsOfUseUrl property: Terms-of-use URL shown in the Teams app listing. + * + * @param termsOfUseUrl the termsOfUseUrl value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setTermsOfUseUrl(String termsOfUseUrl) { + this.termsOfUseUrl = termsOfUseUrl; + return this; + } + + /** + * Get the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @return the colorIconBase64 value. + */ + @Generated + public String getColorIconBase64() { + return this.colorIconBase64; + } + + /** + * Set the colorIconBase64 property: Optional base64-encoded PNG used as the color (full-bleed) icon in the Teams + * app package. Must be a + * 192x192 PNG (perfect square, no border or rounded corners). Max 1 MB after decode. When omitted, the + * platform default color icon is used. + * + * @param colorIconBase64 the colorIconBase64 value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setColorIconBase64(String colorIconBase64) { + this.colorIconBase64 = colorIconBase64; + return this; + } + + /** + * Get the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @return the outlineIconBase64 value. + */ + @Generated + public String getOutlineIconBase64() { + return this.outlineIconBase64; + } + + /** + * Set the outlineIconBase64 property: Optional base64-encoded PNG used as the outline icon in the Teams app + * package. Must be a 32x32 PNG. + * Max 1 MB after decode. When omitted, the platform default outline icon is used. + * + * @param outlineIconBase64 the outlineIconBase64 value to set. + * @return the PublishAgentToMicrosoft365Options object itself. + */ + @Generated + public PublishAgentToMicrosoft365Options setOutlineIconBase64(String outlineIconBase64) { + this.outlineIconBase64 = outlineIconBase64; + return this; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java new file mode 100644 index 000000000000..a196e22c572e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The Microsoft Agent Certification review status of the Microsoft 365 store title published for an agent. + */ +public final class PublishApprovalStatus extends ExpandableStringEnum { + + /** + * The agent has never been published to the Microsoft 365 store, so there is nothing to review. + */ + @Generated + public static final PublishApprovalStatus NOT_PUBLISHED = fromString("not_published"); + + /** + * The published title is awaiting a review decision. + */ + @Generated + public static final PublishApprovalStatus PENDING = fromString("pending"); + + /** + * The title passed review, as of this read. + */ + @Generated + public static final PublishApprovalStatus APPROVED = fromString("approved"); + + /** + * The title was rejected in review, as of this read. + */ + @Generated + public static final PublishApprovalStatus REJECTED = fromString("rejected"); + + /** + * The agent is published at a scope that does not go through Microsoft Agent Certification. Only tenant-scoped + * titles are reviewed. + */ + @Generated + public static final PublishApprovalStatus NO_APPROVAL_NEEDED = fromString("no_approval_needed"); + + /** + * Creates a new instance of PublishApprovalStatus value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public PublishApprovalStatus() { + } + + /** + * Creates or finds a PublishApprovalStatus from its string representation. + * + * @param name a name to look for. + * @return the corresponding PublishApprovalStatus. + */ + @Generated + public static PublishApprovalStatus fromString(String name) { + return fromString(name, PublishApprovalStatus.class); + } + + /** + * Gets known PublishApprovalStatus values. + * + * @return known PublishApprovalStatus values. + */ + @Generated + public static Collection values() { + return values(PublishApprovalStatus.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java new file mode 100644 index 000000000000..f5139706546b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeAudioFormats model. + */ +@Immutable +public class RealtimeAudioFormats implements JsonSerializable { + + /* + * The type property. + */ + @Generated + private RealtimeAudioFormatsType type = RealtimeAudioFormatsType.fromString("RealtimeAudioFormats"); + + /** + * Creates an instance of RealtimeAudioFormats class. + */ + @Generated + public RealtimeAudioFormats() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + public RealtimeAudioFormatsType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeAudioFormats from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeAudioFormats if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeAudioFormats. + */ + @Generated + public static RealtimeAudioFormats fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("audio/pcm".equals(discriminatorValue)) { + return RealtimeAudioFormatsAudioPcm.fromJson(readerToUse.reset()); + } else if ("audio/pcmu".equals(discriminatorValue)) { + return RealtimeAudioFormatsAudioPcmu.fromJson(readerToUse.reset()); + } else if ("audio/pcma".equals(discriminatorValue)) { + return RealtimeAudioFormatsAudioPcma.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static RealtimeAudioFormats fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeAudioFormats deserializedRealtimeAudioFormats = new RealtimeAudioFormats(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeAudioFormats.type = RealtimeAudioFormatsType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeAudioFormats; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java new file mode 100644 index 000000000000..2b696fae47e1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeAudioFormatsAudioPcm model. + */ +@Fluent +public final class RealtimeAudioFormatsAudioPcm extends RealtimeAudioFormats { + + /* + * The type property. + */ + @Generated + private RealtimeAudioFormatsType type = RealtimeAudioFormatsType.AUDIO_PCM; + + /* + * The rate property. + */ + @Generated + private RealtimeAudioFormatsAudioPcmRate rate; + + /** + * Creates an instance of RealtimeAudioFormatsAudioPcm class. + */ + @Generated + public RealtimeAudioFormatsAudioPcm() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeAudioFormatsType getType() { + return this.type; + } + + /** + * Get the rate property: The rate property. + * + * @return the rate value. + */ + @Generated + public RealtimeAudioFormatsAudioPcmRate getRate() { + return this.rate; + } + + /** + * Set the rate property: The rate property. + * + * @param rate the rate value to set. + * @return the RealtimeAudioFormatsAudioPcm object itself. + */ + @Generated + public RealtimeAudioFormatsAudioPcm setRate(RealtimeAudioFormatsAudioPcmRate rate) { + this.rate = rate; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeNumberField("rate", this.rate == null ? null : this.rate.toInt()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeAudioFormatsAudioPcm from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeAudioFormatsAudioPcm if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeAudioFormatsAudioPcm. + */ + @Generated + public static RealtimeAudioFormatsAudioPcm fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeAudioFormatsAudioPcm deserializedRealtimeAudioFormatsAudioPcm = new RealtimeAudioFormatsAudioPcm(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeAudioFormatsAudioPcm.type + = RealtimeAudioFormatsType.fromString(reader.getString()); + } else if ("rate".equals(fieldName)) { + deserializedRealtimeAudioFormatsAudioPcm.rate + = RealtimeAudioFormatsAudioPcmRate.fromInt(reader.getInt()); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeAudioFormatsAudioPcm; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java new file mode 100644 index 000000000000..7ffb70552ebc --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeAudioFormatsAudioPcmRate. + */ +public enum RealtimeAudioFormatsAudioPcmRate { + /** + * Enum value 24000. + */ + TWO_FOUR_ZERO_ZERO_ZERO(24000); + + /** + * The actual serialized value for a RealtimeAudioFormatsAudioPcmRate instance. + */ + private final int value; + + RealtimeAudioFormatsAudioPcmRate(int value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeAudioFormatsAudioPcmRate instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeAudioFormatsAudioPcmRate object, or null if unable to parse. + */ + public static RealtimeAudioFormatsAudioPcmRate fromInt(int value) { + RealtimeAudioFormatsAudioPcmRate[] items = RealtimeAudioFormatsAudioPcmRate.values(); + for (RealtimeAudioFormatsAudioPcmRate item : items) { + if (item.toInt() == value) { + return item; + } + } + return null; + } + + /** + * De-serializes the instance to int value. + * + * @return the int value. + */ + public int toInt() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java new file mode 100644 index 000000000000..2897951925cb --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeAudioFormatsAudioPcma model. + */ +@Immutable +public final class RealtimeAudioFormatsAudioPcma extends RealtimeAudioFormats { + + /* + * The type property. + */ + @Generated + private RealtimeAudioFormatsType type = RealtimeAudioFormatsType.AUDIO_PCMA; + + /** + * Creates an instance of RealtimeAudioFormatsAudioPcma class. + */ + @Generated + public RealtimeAudioFormatsAudioPcma() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeAudioFormatsType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeAudioFormatsAudioPcma from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeAudioFormatsAudioPcma if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeAudioFormatsAudioPcma. + */ + @Generated + public static RealtimeAudioFormatsAudioPcma fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeAudioFormatsAudioPcma deserializedRealtimeAudioFormatsAudioPcma + = new RealtimeAudioFormatsAudioPcma(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeAudioFormatsAudioPcma.type + = RealtimeAudioFormatsType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeAudioFormatsAudioPcma; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java new file mode 100644 index 000000000000..f89c5ec39928 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeAudioFormatsAudioPcmu model. + */ +@Immutable +public final class RealtimeAudioFormatsAudioPcmu extends RealtimeAudioFormats { + + /* + * The type property. + */ + @Generated + private RealtimeAudioFormatsType type = RealtimeAudioFormatsType.AUDIO_PCMU; + + /** + * Creates an instance of RealtimeAudioFormatsAudioPcmu class. + */ + @Generated + public RealtimeAudioFormatsAudioPcmu() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeAudioFormatsType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeAudioFormatsAudioPcmu from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeAudioFormatsAudioPcmu if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeAudioFormatsAudioPcmu. + */ + @Generated + public static RealtimeAudioFormatsAudioPcmu fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeAudioFormatsAudioPcmu deserializedRealtimeAudioFormatsAudioPcmu + = new RealtimeAudioFormatsAudioPcmu(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeAudioFormatsAudioPcmu.type + = RealtimeAudioFormatsType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeAudioFormatsAudioPcmu; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java new file mode 100644 index 000000000000..b38df842a432 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Defines values for RealtimeAudioFormatsType. + */ +public final class RealtimeAudioFormatsType extends ExpandableStringEnum { + + /** + * Static value audio/pcm for RealtimeAudioFormatsType. + */ + @Generated + public static final RealtimeAudioFormatsType AUDIO_PCM = fromString("audio/pcm"); + + /** + * Static value audio/pcmu for RealtimeAudioFormatsType. + */ + @Generated + public static final RealtimeAudioFormatsType AUDIO_PCMU = fromString("audio/pcmu"); + + /** + * Static value audio/pcma for RealtimeAudioFormatsType. + */ + @Generated + public static final RealtimeAudioFormatsType AUDIO_PCMA = fromString("audio/pcma"); + + /** + * Creates a new instance of RealtimeAudioFormatsType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public RealtimeAudioFormatsType() { + } + + /** + * Creates or finds a RealtimeAudioFormatsType from its string representation. + * + * @param name a name to look for. + * @return the corresponding RealtimeAudioFormatsType. + */ + @Generated + public static RealtimeAudioFormatsType fromString(String name) { + return fromString(name, RealtimeAudioFormatsType.class); + } + + /** + * Gets known RealtimeAudioFormatsType values. + * + * @return known RealtimeAudioFormatsType values. + */ + @Generated + public static Collection values() { + return values(RealtimeAudioFormatsType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java new file mode 100644 index 000000000000..cc6a6f5f7823 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A single item within a Realtime conversation. + */ +@Immutable +public class RealtimeConversationItem implements JsonSerializable { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.fromString("RealtimeConversationItem"); + + /** + * Creates an instance of RealtimeConversationItem class. + */ + @Generated + public RealtimeConversationItem() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeConversationItem from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeConversationItem if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeConversationItem. + */ + @Generated + public static RealtimeConversationItem fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("function_call".equals(discriminatorValue)) { + return RealtimeConversationItemFunctionCall.fromJson(readerToUse.reset()); + } else if ("function_call_output".equals(discriminatorValue)) { + return RealtimeConversationItemFunctionCallOutput.fromJson(readerToUse.reset()); + } else if ("mcp_approval_response".equals(discriminatorValue)) { + return RealtimeMCPApprovalResponse.fromJson(readerToUse.reset()); + } else if ("mcp_list_tools".equals(discriminatorValue)) { + return RealtimeMCPListTools.fromJson(readerToUse.reset()); + } else if ("mcp_call".equals(discriminatorValue)) { + return RealtimeMCPToolCall.fromJson(readerToUse.reset()); + } else if ("mcp_approval_request".equals(discriminatorValue)) { + return RealtimeMCPApprovalRequest.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static RealtimeConversationItem fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeConversationItem deserializedRealtimeConversationItem = new RealtimeConversationItem(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeConversationItem.type + = RealtimeConversationItemType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeConversationItem; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java new file mode 100644 index 000000000000..5719f2a84d36 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java @@ -0,0 +1,305 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime function call item + * + * A function call item in a Realtime conversation. + */ +@Fluent +public final class RealtimeConversationItemFunctionCall extends RealtimeConversationItem { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.FUNCTION_CALL; + + /* + * The unique ID of the item. This may be provided by the client or generated by the server. + */ + @Generated + private String id; + + /* + * Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. + */ + @Generated + private RealtimeConversationItemMessageSystemObject object; + + /* + * The status of the item. Has no effect on the conversation. + */ + @Generated + private RealtimeConversationItemFunctionCallStatus status; + + /* + * The ID of the function call. + */ + @Generated + private String callId; + + /* + * The name of the function being called. + */ + @Generated + private final String name; + + /* + * 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}`. + */ + @Generated + private final String arguments; + + /* + * The Unix timestamp (in seconds) for when the item was persisted. + */ + @Generated + private Long createdAt; + + /* + * The id of the response that produced this item, when applicable. + */ + @Generated + private String responseId; + + /** + * Creates an instance of RealtimeConversationItemFunctionCall class. + * + * @param name the name value to set. + * @param arguments the arguments value to set. + */ + @Generated + public RealtimeConversationItemFunctionCall(String name, String arguments) { + this.name = name; + this.arguments = arguments; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * Get the id property: The unique ID of the item. This may be provided by the client or generated by the server. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Set the id property: The unique ID of the item. This may be provided by the client or generated by the server. + * + * @param id the id value to set. + * @return the RealtimeConversationItemFunctionCall object itself. + */ + @Generated + public RealtimeConversationItemFunctionCall setId(String id) { + this.id = id; + return this; + } + + /** + * Get the object property: Identifier for the API object being returned - always `realtime.item`. Optional when + * creating a new item. + * + * @return the object value. + */ + @Generated + public RealtimeConversationItemMessageSystemObject getObject() { + return this.object; + } + + /** + * Get the status property: The status of the item. Has no effect on the conversation. + * + * @return the status value. + */ + @Generated + public RealtimeConversationItemFunctionCallStatus getStatus() { + return this.status; + } + + /** + * Set the status property: The status of the item. Has no effect on the conversation. + * + * @param status the status value to set. + * @return the RealtimeConversationItemFunctionCall object itself. + */ + @Generated + public RealtimeConversationItemFunctionCall setStatus(RealtimeConversationItemFunctionCallStatus status) { + this.status = status; + return this; + } + + /** + * Get the callId property: The ID of the function call. + * + * @return the callId value. + */ + @Generated + public String getCallId() { + return this.callId; + } + + /** + * Set the callId property: The ID of the function call. + * + * @param callId the callId value to set. + * @return the RealtimeConversationItemFunctionCall object itself. + */ + @Generated + public RealtimeConversationItemFunctionCall setCallId(String callId) { + this.callId = callId; + return this; + } + + /** + * Get the name property: The name of the function being called. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Get the arguments property: 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}`. + * + * @return the arguments value. + */ + @Generated + public String getArguments() { + return this.arguments; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the item was persisted. + * + * @return the createdAt value. + */ + @Generated + public Long getCreatedAt() { + return this.createdAt; + } + + /** + * Get the responseId property: The id of the response that produced this item, when applicable. + * + * @return the responseId value. + */ + @Generated + public String getResponseId() { + return this.responseId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("arguments", this.arguments); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("object", this.object == null ? null : this.object.toString()); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("call_id", this.callId); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeConversationItemFunctionCall from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeConversationItemFunctionCall if the JsonReader was pointing to an instance of it, + * or null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeConversationItemFunctionCall. + */ + @Generated + public static RealtimeConversationItemFunctionCall fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + String arguments = null; + RealtimeConversationItemType type = RealtimeConversationItemType.FUNCTION_CALL; + String id = null; + RealtimeConversationItemMessageSystemObject object = null; + RealtimeConversationItemFunctionCallStatus status = null; + String callId = null; + Long createdAt = null; + String responseId = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("arguments".equals(fieldName)) { + arguments = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeConversationItemType.fromString(reader.getString()); + } else if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("object".equals(fieldName)) { + object = RealtimeConversationItemMessageSystemObject.fromString(reader.getString()); + } else if ("status".equals(fieldName)) { + status = RealtimeConversationItemFunctionCallStatus.fromString(reader.getString()); + } else if ("call_id".equals(fieldName)) { + callId = reader.getString(); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("response_id".equals(fieldName)) { + responseId = reader.getString(); + } else { + reader.skipChildren(); + } + } + RealtimeConversationItemFunctionCall deserializedRealtimeConversationItemFunctionCall + = new RealtimeConversationItemFunctionCall(name, arguments); + deserializedRealtimeConversationItemFunctionCall.type = type; + deserializedRealtimeConversationItemFunctionCall.id = id; + deserializedRealtimeConversationItemFunctionCall.object = object; + deserializedRealtimeConversationItemFunctionCall.status = status; + deserializedRealtimeConversationItemFunctionCall.callId = callId; + deserializedRealtimeConversationItemFunctionCall.createdAt = createdAt; + deserializedRealtimeConversationItemFunctionCall.responseId = responseId; + return deserializedRealtimeConversationItemFunctionCall; + }); + } + + /** + * Set the object property: Identifier for the API object being returned - always `realtime.item`. Optional when + * creating a new item. + * + * @param object the object value to set. + * @return the RealtimeConversationItemFunctionCall object itself. + */ + @Generated + public RealtimeConversationItemFunctionCall setObject(RealtimeConversationItemMessageSystemObject object) { + this.object = object; + return this; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java new file mode 100644 index 000000000000..db2aabe559d8 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java @@ -0,0 +1,308 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime function call output item + * + * A function call output item in a Realtime conversation. + */ +@Fluent +public final class RealtimeConversationItemFunctionCallOutput extends RealtimeConversationItem { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.FUNCTION_CALL_OUTPUT; + + /* + * The unique ID of the item. This may be provided by the client or generated by the server. + */ + @Generated + private String id; + + /* + * Identifier for the API object being returned - always `realtime.item`. Optional when creating a new item. + */ + @Generated + private RealtimeConversationItemMessageSystemObject1 object; + + /* + * The status of the item. Has no effect on the conversation. + */ + @Generated + private RealtimeConversationItemFunctionCallOutputStatus status; + + /* + * The ID of the function call this output is for. + */ + @Generated + private final String callId; + + /* + * The output of the function call, this is free text and can contain any information or simply be empty. + */ + @Generated + private final String output; + + /* + * The Unix timestamp (in seconds) for when the item was persisted. + */ + @Generated + private Long createdAt; + + /* + * The id of the response that produced this item, when applicable. + */ + @Generated + private String responseId; + + /* + * 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`. + */ + @Generated + private String name; + + /** + * Creates an instance of RealtimeConversationItemFunctionCallOutput class. + * + * @param callId the callId value to set. + * @param output the output value to set. + */ + @Generated + public RealtimeConversationItemFunctionCallOutput(String callId, String output) { + this.callId = callId; + this.output = output; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * Get the id property: The unique ID of the item. This may be provided by the client or generated by the server. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Set the id property: The unique ID of the item. This may be provided by the client or generated by the server. + * + * @param id the id value to set. + * @return the RealtimeConversationItemFunctionCallOutput object itself. + */ + @Generated + public RealtimeConversationItemFunctionCallOutput setId(String id) { + this.id = id; + return this; + } + + /** + * Get the object property: Identifier for the API object being returned - always `realtime.item`. Optional when + * creating a new item. + * + * @return the object value. + */ + @Generated + public RealtimeConversationItemMessageSystemObject1 getObject() { + return this.object; + } + + /** + * Get the status property: The status of the item. Has no effect on the conversation. + * + * @return the status value. + */ + @Generated + public RealtimeConversationItemFunctionCallOutputStatus getStatus() { + return this.status; + } + + /** + * Set the status property: The status of the item. Has no effect on the conversation. + * + * @param status the status value to set. + * @return the RealtimeConversationItemFunctionCallOutput object itself. + */ + @Generated + public RealtimeConversationItemFunctionCallOutput + setStatus(RealtimeConversationItemFunctionCallOutputStatus status) { + this.status = status; + return this; + } + + /** + * Get the callId property: The ID of the function call this output is for. + * + * @return the callId value. + */ + @Generated + public String getCallId() { + return this.callId; + } + + /** + * Get the output property: The output of the function call, this is free text and can contain any information or + * simply be empty. + * + * @return the output value. + */ + @Generated + public String getOutput() { + return this.output; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the item was persisted. + * + * @return the createdAt value. + */ + @Generated + public Long getCreatedAt() { + return this.createdAt; + } + + /** + * Get the responseId property: The id of the response that produced this item, when applicable. + * + * @return the responseId value. + */ + @Generated + public String getResponseId() { + return this.responseId; + } + + /** + * Get the name property: 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`. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Set the name property: 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`. + * + * @param name the name value to set. + * @return the RealtimeConversationItemFunctionCallOutput object itself. + */ + @Generated + public RealtimeConversationItemFunctionCallOutput setName(String name) { + this.name = name; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("call_id", this.callId); + jsonWriter.writeStringField("output", this.output); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("object", this.object == null ? null : this.object.toString()); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("name", this.name); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeConversationItemFunctionCallOutput from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeConversationItemFunctionCallOutput if the JsonReader was pointing to an instance + * of it, or null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeConversationItemFunctionCallOutput. + */ + @Generated + public static RealtimeConversationItemFunctionCallOutput fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String callId = null; + String output = null; + RealtimeConversationItemType type = RealtimeConversationItemType.FUNCTION_CALL_OUTPUT; + String id = null; + RealtimeConversationItemMessageSystemObject1 object = null; + RealtimeConversationItemFunctionCallOutputStatus status = null; + Long createdAt = null; + String responseId = null; + String name = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("call_id".equals(fieldName)) { + callId = reader.getString(); + } else if ("output".equals(fieldName)) { + output = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeConversationItemType.fromString(reader.getString()); + } else if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("object".equals(fieldName)) { + object = RealtimeConversationItemMessageSystemObject1.fromString(reader.getString()); + } else if ("status".equals(fieldName)) { + status = RealtimeConversationItemFunctionCallOutputStatus.fromString(reader.getString()); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("response_id".equals(fieldName)) { + responseId = reader.getString(); + } else if ("name".equals(fieldName)) { + name = reader.getString(); + } else { + reader.skipChildren(); + } + } + RealtimeConversationItemFunctionCallOutput deserializedRealtimeConversationItemFunctionCallOutput + = new RealtimeConversationItemFunctionCallOutput(callId, output); + deserializedRealtimeConversationItemFunctionCallOutput.type = type; + deserializedRealtimeConversationItemFunctionCallOutput.id = id; + deserializedRealtimeConversationItemFunctionCallOutput.object = object; + deserializedRealtimeConversationItemFunctionCallOutput.status = status; + deserializedRealtimeConversationItemFunctionCallOutput.createdAt = createdAt; + deserializedRealtimeConversationItemFunctionCallOutput.responseId = responseId; + deserializedRealtimeConversationItemFunctionCallOutput.name = name; + return deserializedRealtimeConversationItemFunctionCallOutput; + }); + } + + /** + * Set the object property: Identifier for the API object being returned - always `realtime.item`. Optional when + * creating a new item. + * + * @param object the object value to set. + * @return the RealtimeConversationItemFunctionCallOutput object itself. + */ + @Generated + public RealtimeConversationItemFunctionCallOutput setObject(RealtimeConversationItemMessageSystemObject1 object) { + this.object = object; + return this; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java new file mode 100644 index 000000000000..e7edf17f466e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeConversationItemFunctionCallOutputStatus. + */ +public enum RealtimeConversationItemFunctionCallOutputStatus { + /** + * Enum value completed. + */ + COMPLETED("completed"), + + /** + * Enum value incomplete. + */ + INCOMPLETE("incomplete"), + + /** + * Enum value in_progress. + */ + IN_PROGRESS("in_progress"); + + /** + * The actual serialized value for a RealtimeConversationItemFunctionCallOutputStatus instance. + */ + private final String value; + + RealtimeConversationItemFunctionCallOutputStatus(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeConversationItemFunctionCallOutputStatus instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeConversationItemFunctionCallOutputStatus object, or null if unable to parse. + */ + public static RealtimeConversationItemFunctionCallOutputStatus fromString(String value) { + if (value == null) { + return null; + } + RealtimeConversationItemFunctionCallOutputStatus[] items + = RealtimeConversationItemFunctionCallOutputStatus.values(); + for (RealtimeConversationItemFunctionCallOutputStatus item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java new file mode 100644 index 000000000000..8c6fe1adc9fa --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeConversationItemFunctionCallStatus. + */ +public enum RealtimeConversationItemFunctionCallStatus { + /** + * Enum value completed. + */ + COMPLETED("completed"), + + /** + * Enum value incomplete. + */ + INCOMPLETE("incomplete"), + + /** + * Enum value in_progress. + */ + IN_PROGRESS("in_progress"); + + /** + * The actual serialized value for a RealtimeConversationItemFunctionCallStatus instance. + */ + private final String value; + + RealtimeConversationItemFunctionCallStatus(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeConversationItemFunctionCallStatus instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeConversationItemFunctionCallStatus object, or null if unable to parse. + */ + public static RealtimeConversationItemFunctionCallStatus fromString(String value) { + if (value == null) { + return null; + } + RealtimeConversationItemFunctionCallStatus[] items = RealtimeConversationItemFunctionCallStatus.values(); + for (RealtimeConversationItemFunctionCallStatus item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java new file mode 100644 index 000000000000..885647fdb45d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeConversationItemMessageSystemObject. + */ +public enum RealtimeConversationItemMessageSystemObject { + /** + * Enum value realtime.item. + */ + REALTIME_ITEM("realtime.item"); + + /** + * The actual serialized value for a RealtimeConversationItemMessageSystemObject instance. + */ + private final String value; + + RealtimeConversationItemMessageSystemObject(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeConversationItemMessageSystemObject instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeConversationItemMessageSystemObject object, or null if unable to parse. + */ + public static RealtimeConversationItemMessageSystemObject fromString(String value) { + if (value == null) { + return null; + } + RealtimeConversationItemMessageSystemObject[] items = RealtimeConversationItemMessageSystemObject.values(); + for (RealtimeConversationItemMessageSystemObject item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java new file mode 100644 index 000000000000..00fbdb37decc --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeConversationItemMessageSystemObject1. + */ +public enum RealtimeConversationItemMessageSystemObject1 { + /** + * Enum value realtime.item. + */ + REALTIME_ITEM("realtime.item"); + + /** + * The actual serialized value for a RealtimeConversationItemMessageSystemObject1 instance. + */ + private final String value; + + RealtimeConversationItemMessageSystemObject1(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeConversationItemMessageSystemObject1 instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeConversationItemMessageSystemObject1 object, or null if unable to parse. + */ + public static RealtimeConversationItemMessageSystemObject1 fromString(String value) { + if (value == null) { + return null; + } + RealtimeConversationItemMessageSystemObject1[] items = RealtimeConversationItemMessageSystemObject1.values(); + for (RealtimeConversationItemMessageSystemObject1 item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java new file mode 100644 index 000000000000..c202715a14f7 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Defines values for RealtimeConversationItemType. + */ +public final class RealtimeConversationItemType extends ExpandableStringEnum { + + /** + * Static value function_call for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType FUNCTION_CALL = fromString("function_call"); + + /** + * Static value function_call_output for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType FUNCTION_CALL_OUTPUT = fromString("function_call_output"); + + /** + * Static value mcp_approval_response for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType MCP_APPROVAL_RESPONSE = fromString("mcp_approval_response"); + + /** + * Static value mcp_list_tools for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType MCP_LIST_TOOLS = fromString("mcp_list_tools"); + + /** + * Static value mcp_call for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType MCP_CALL = fromString("mcp_call"); + + /** + * Static value mcp_approval_request for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType MCP_APPROVAL_REQUEST = fromString("mcp_approval_request"); + + /** + * Static value message for RealtimeConversationItemType. + */ + @Generated + public static final RealtimeConversationItemType MESSAGE = fromString("message"); + + /** + * Creates a new instance of RealtimeConversationItemType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public RealtimeConversationItemType() { + } + + /** + * Creates or finds a RealtimeConversationItemType from its string representation. + * + * @param name a name to look for. + * @return the corresponding RealtimeConversationItemType. + */ + @Generated + public static RealtimeConversationItemType fromString(String name) { + return fromString(name, RealtimeConversationItemType.class); + } + + /** + * Gets known RealtimeConversationItemType values. + * + * @return known RealtimeConversationItemType values. + */ + @Generated + public static Collection values() { + return values(RealtimeConversationItemType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java new file mode 100644 index 000000000000..de9a10fe8d61 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeFunctionToolParameters model. + */ +@Immutable +public final class RealtimeFunctionToolParameters implements JsonSerializable { + + /** + * Creates an instance of RealtimeFunctionToolParameters class. + */ + @Generated + public RealtimeFunctionToolParameters() { + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeFunctionToolParameters from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeFunctionToolParameters if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeFunctionToolParameters. + */ + @Generated + public static RealtimeFunctionToolParameters fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeFunctionToolParameters deserializedRealtimeFunctionToolParameters + = new RealtimeFunctionToolParameters(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + reader.skipChildren(); + } + return deserializedRealtimeFunctionToolParameters; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java new file mode 100644 index 000000000000..8c11762cb2ca --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java @@ -0,0 +1,213 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime MCP approval request + * + * A Realtime item requesting human approval of a tool invocation. + */ +@Immutable +public final class RealtimeMCPApprovalRequest extends RealtimeConversationItem { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.MCP_APPROVAL_REQUEST; + + /* + * The unique ID of the approval request. + */ + @Generated + private final String id; + + /* + * The label of the MCP server making the request. + */ + @Generated + private final String serverLabel; + + /* + * The name of the tool to run. + */ + @Generated + private final String name; + + /* + * A JSON string of arguments for the tool. + */ + @Generated + private final String arguments; + + /* + * The Unix timestamp (in seconds) for when the item was persisted. + */ + @Generated + private Long createdAt; + + /* + * The id of the response that produced this item, when applicable. + */ + @Generated + private String responseId; + + /** + * Creates an instance of RealtimeMCPApprovalRequest class. + * + * @param id the id value to set. + * @param serverLabel the serverLabel value to set. + * @param name the name value to set. + * @param arguments the arguments value to set. + */ + @Generated + public RealtimeMCPApprovalRequest(String id, String serverLabel, String name, String arguments) { + this.id = id; + this.serverLabel = serverLabel; + this.name = name; + this.arguments = arguments; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * Get the id property: The unique ID of the approval request. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the serverLabel property: The label of the MCP server making the request. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Get the name property: The name of the tool to run. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Get the arguments property: A JSON string of arguments for the tool. + * + * @return the arguments value. + */ + @Generated + public String getArguments() { + return this.arguments; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the item was persisted. + * + * @return the createdAt value. + */ + @Generated + public Long getCreatedAt() { + return this.createdAt; + } + + /** + * Get the responseId property: The id of the response that produced this item, when applicable. + * + * @return the responseId value. + */ + @Generated + public String getResponseId() { + return this.responseId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("server_label", this.serverLabel); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("arguments", this.arguments); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPApprovalRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPApprovalRequest if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPApprovalRequest. + */ + @Generated + public static RealtimeMCPApprovalRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + String serverLabel = null; + String name = null; + String arguments = null; + RealtimeConversationItemType type = RealtimeConversationItemType.MCP_APPROVAL_REQUEST; + Long createdAt = null; + String responseId = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("arguments".equals(fieldName)) { + arguments = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeConversationItemType.fromString(reader.getString()); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("response_id".equals(fieldName)) { + responseId = reader.getString(); + } else { + reader.skipChildren(); + } + } + RealtimeMCPApprovalRequest deserializedRealtimeMCPApprovalRequest + = new RealtimeMCPApprovalRequest(id, serverLabel, name, arguments); + deserializedRealtimeMCPApprovalRequest.type = type; + deserializedRealtimeMCPApprovalRequest.createdAt = createdAt; + deserializedRealtimeMCPApprovalRequest.responseId = responseId; + return deserializedRealtimeMCPApprovalRequest; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java new file mode 100644 index 000000000000..bf719984e0a1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime MCP approval response + * + * A Realtime item responding to an MCP approval request. + */ +@Fluent +public final class RealtimeMCPApprovalResponse extends RealtimeConversationItem { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.MCP_APPROVAL_RESPONSE; + + /* + * The unique ID of the approval response. + */ + @Generated + private final String id; + + /* + * The ID of the approval request being answered. + */ + @Generated + private final String approvalRequestId; + + /* + * Whether the request was approved. + */ + @Generated + private final boolean approve; + + /* + * The reason property. + */ + @Generated + private String reason; + + /* + * The Unix timestamp (in seconds) for when the item was persisted. + */ + @Generated + private Long createdAt; + + /* + * The id of the response that produced this item, when applicable. + */ + @Generated + private String responseId; + + /** + * Creates an instance of RealtimeMCPApprovalResponse class. + * + * @param id the id value to set. + * @param approvalRequestId the approvalRequestId value to set. + * @param approve the approve value to set. + */ + @Generated + public RealtimeMCPApprovalResponse(String id, String approvalRequestId, boolean approve) { + this.id = id; + this.approvalRequestId = approvalRequestId; + this.approve = approve; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * Get the id property: The unique ID of the approval response. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the approvalRequestId property: The ID of the approval request being answered. + * + * @return the approvalRequestId value. + */ + @Generated + public String getApprovalRequestId() { + return this.approvalRequestId; + } + + /** + * Get the approve property: Whether the request was approved. + * + * @return the approve value. + */ + @Generated + public boolean isApprove() { + return this.approve; + } + + /** + * Get the reason property: The reason property. + * + * @return the reason value. + */ + @Generated + public String getReason() { + return this.reason; + } + + /** + * Set the reason property: The reason property. + * + * @param reason the reason value to set. + * @return the RealtimeMCPApprovalResponse object itself. + */ + @Generated + public RealtimeMCPApprovalResponse setReason(String reason) { + this.reason = reason; + return this; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the item was persisted. + * + * @return the createdAt value. + */ + @Generated + public Long getCreatedAt() { + return this.createdAt; + } + + /** + * Get the responseId property: The id of the response that produced this item, when applicable. + * + * @return the responseId value. + */ + @Generated + public String getResponseId() { + return this.responseId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("approval_request_id", this.approvalRequestId); + jsonWriter.writeBooleanField("approve", this.approve); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("reason", this.reason); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPApprovalResponse from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPApprovalResponse if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPApprovalResponse. + */ + @Generated + public static RealtimeMCPApprovalResponse fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + String approvalRequestId = null; + boolean approve = false; + RealtimeConversationItemType type = RealtimeConversationItemType.MCP_APPROVAL_RESPONSE; + String reason = null; + Long createdAt = null; + String responseId = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("approval_request_id".equals(fieldName)) { + approvalRequestId = reader.getString(); + } else if ("approve".equals(fieldName)) { + approve = reader.getBoolean(); + } else if ("type".equals(fieldName)) { + type = RealtimeConversationItemType.fromString(reader.getString()); + } else if ("reason".equals(fieldName)) { + reason = reader.getString(); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("response_id".equals(fieldName)) { + responseId = reader.getString(); + } else { + reader.skipChildren(); + } + } + RealtimeMCPApprovalResponse deserializedRealtimeMCPApprovalResponse + = new RealtimeMCPApprovalResponse(id, approvalRequestId, approve); + deserializedRealtimeMCPApprovalResponse.type = type; + deserializedRealtimeMCPApprovalResponse.reason = reason; + deserializedRealtimeMCPApprovalResponse.createdAt = createdAt; + deserializedRealtimeMCPApprovalResponse.responseId = responseId; + return deserializedRealtimeMCPApprovalResponse; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java new file mode 100644 index 000000000000..3603d00a167f --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeMCPError model. + */ +@Immutable +public class RealtimeMCPError implements JsonSerializable { + + /* + * The type property. + */ + @Generated + private RealtimeMcpErrorType type = RealtimeMcpErrorType.fromString("RealtimeMCPError"); + + /** + * Creates an instance of RealtimeMCPError class. + */ + @Generated + public RealtimeMCPError() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + public RealtimeMcpErrorType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPError from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPError if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeMCPError. + */ + @Generated + public static RealtimeMCPError fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("protocol_error".equals(discriminatorValue)) { + return RealtimeMCPProtocolError.fromJson(readerToUse.reset()); + } else if ("tool_execution_error".equals(discriminatorValue)) { + return RealtimeMCPToolExecutionError.fromJson(readerToUse.reset()); + } else if ("http_error".equals(discriminatorValue)) { + return RealtimeMCPHTTPError.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static RealtimeMCPError fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeMCPError deserializedRealtimeMCPError = new RealtimeMCPError(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeMCPError.type = RealtimeMcpErrorType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeMCPError; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java new file mode 100644 index 000000000000..c0fec1edd07e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime MCP HTTP error. + */ +@Immutable +public final class RealtimeMCPHTTPError extends RealtimeMCPError { + + /* + * The type property. + */ + @Generated + private RealtimeMcpErrorType type = RealtimeMcpErrorType.HTTP_ERROR; + + /* + * The code property. + */ + @Generated + private final long code; + + /* + * The message property. + */ + @Generated + private final String message; + + /** + * Creates an instance of RealtimeMCPHTTPError class. + * + * @param code the code value to set. + * @param message the message value to set. + */ + @Generated + public RealtimeMCPHTTPError(long code, String message) { + this.code = code; + this.message = message; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeMcpErrorType getType() { + return this.type; + } + + /** + * Get the code property: The code property. + * + * @return the code value. + */ + @Generated + public long getCode() { + return this.code; + } + + /** + * Get the message property: The message property. + * + * @return the message value. + */ + @Generated + public String getMessage() { + return this.message; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeLongField("code", this.code); + jsonWriter.writeStringField("message", this.message); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPHTTPError from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPHTTPError if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPHTTPError. + */ + @Generated + public static RealtimeMCPHTTPError fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + long code = 0L; + String message = null; + RealtimeMcpErrorType type = RealtimeMcpErrorType.HTTP_ERROR; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("code".equals(fieldName)) { + code = reader.getLong(); + } else if ("message".equals(fieldName)) { + message = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeMcpErrorType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + RealtimeMCPHTTPError deserializedRealtimeMCPHTTPError = new RealtimeMCPHTTPError(code, message); + deserializedRealtimeMCPHTTPError.type = type; + return deserializedRealtimeMCPHTTPError; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java new file mode 100644 index 000000000000..e62d59402448 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Realtime MCP list tools + * + * A Realtime item listing tools available on an MCP server. + */ +@Fluent +public final class RealtimeMCPListTools extends RealtimeConversationItem { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.MCP_LIST_TOOLS; + + /* + * The unique ID of the list. + */ + @Generated + private String id; + + /* + * The label of the MCP server. + */ + @Generated + private final String serverLabel; + + /* + * The tools available on the server. + */ + @Generated + private final List tools; + + /* + * The Unix timestamp (in seconds) for when the item was persisted. + */ + @Generated + private Long createdAt; + + /* + * The id of the response that produced this item, when applicable. + */ + @Generated + private String responseId; + + /** + * Creates an instance of RealtimeMCPListTools class. + * + * @param serverLabel the serverLabel value to set. + * @param tools the tools value to set. + */ + @Generated + public RealtimeMCPListTools(String serverLabel, List tools) { + this.serverLabel = serverLabel; + this.tools = tools; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * Get the id property: The unique ID of the list. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Set the id property: The unique ID of the list. + * + * @param id the id value to set. + * @return the RealtimeMCPListTools object itself. + */ + @Generated + public RealtimeMCPListTools setId(String id) { + this.id = id; + return this; + } + + /** + * Get the serverLabel property: The label of the MCP server. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Get the tools property: The tools available on the server. + * + * @return the tools value. + */ + @Generated + public List getTools() { + return this.tools; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the item was persisted. + * + * @return the createdAt value. + */ + @Generated + public Long getCreatedAt() { + return this.createdAt; + } + + /** + * Get the responseId property: The id of the response that produced this item, when applicable. + * + * @return the responseId value. + */ + @Generated + public String getResponseId() { + return this.responseId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("server_label", this.serverLabel); + jsonWriter.writeArrayField("tools", this.tools, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("id", this.id); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPListTools from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPListTools if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPListTools. + */ + @Generated + public static RealtimeMCPListTools fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String serverLabel = null; + List tools = null; + RealtimeConversationItemType type = RealtimeConversationItemType.MCP_LIST_TOOLS; + String id = null; + Long createdAt = null; + String responseId = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("tools".equals(fieldName)) { + tools = reader.readArray(reader1 -> McpListToolsTool.fromJson(reader1)); + } else if ("type".equals(fieldName)) { + type = RealtimeConversationItemType.fromString(reader.getString()); + } else if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("response_id".equals(fieldName)) { + responseId = reader.getString(); + } else { + reader.skipChildren(); + } + } + RealtimeMCPListTools deserializedRealtimeMCPListTools = new RealtimeMCPListTools(serverLabel, tools); + deserializedRealtimeMCPListTools.type = type; + deserializedRealtimeMCPListTools.id = id; + deserializedRealtimeMCPListTools.createdAt = createdAt; + deserializedRealtimeMCPListTools.responseId = responseId; + return deserializedRealtimeMCPListTools; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java new file mode 100644 index 000000000000..d8076fa4e40b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java @@ -0,0 +1,126 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime MCP protocol error. + */ +@Immutable +public final class RealtimeMCPProtocolError extends RealtimeMCPError { + + /* + * The type property. + */ + @Generated + private RealtimeMcpErrorType type = RealtimeMcpErrorType.PROTOCOL_ERROR; + + /* + * The code property. + */ + @Generated + private final long code; + + /* + * The message property. + */ + @Generated + private final String message; + + /** + * Creates an instance of RealtimeMCPProtocolError class. + * + * @param code the code value to set. + * @param message the message value to set. + */ + @Generated + public RealtimeMCPProtocolError(long code, String message) { + this.code = code; + this.message = message; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeMcpErrorType getType() { + return this.type; + } + + /** + * Get the code property: The code property. + * + * @return the code value. + */ + @Generated + public long getCode() { + return this.code; + } + + /** + * Get the message property: The message property. + * + * @return the message value. + */ + @Generated + public String getMessage() { + return this.message; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeLongField("code", this.code); + jsonWriter.writeStringField("message", this.message); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPProtocolError from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPProtocolError if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPProtocolError. + */ + @Generated + public static RealtimeMCPProtocolError fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + long code = 0L; + String message = null; + RealtimeMcpErrorType type = RealtimeMcpErrorType.PROTOCOL_ERROR; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("code".equals(fieldName)) { + code = reader.getLong(); + } else if ("message".equals(fieldName)) { + message = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeMcpErrorType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + RealtimeMCPProtocolError deserializedRealtimeMCPProtocolError = new RealtimeMCPProtocolError(code, message); + deserializedRealtimeMCPProtocolError.type = type; + return deserializedRealtimeMCPProtocolError; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java new file mode 100644 index 000000000000..52f9963010dd --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java @@ -0,0 +1,312 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime MCP tool call + * + * A Realtime item representing an invocation of a tool on an MCP server. + */ +@Fluent +public final class RealtimeMCPToolCall extends RealtimeConversationItem { + + /* + * The type property. + */ + @Generated + private RealtimeConversationItemType type = RealtimeConversationItemType.MCP_CALL; + + /* + * The unique ID of the tool call. + */ + @Generated + private final String id; + + /* + * The label of the MCP server running the tool. + */ + @Generated + private final String serverLabel; + + /* + * The name of the tool that was run. + */ + @Generated + private final String name; + + /* + * A JSON string of the arguments passed to the tool. + */ + @Generated + private final String arguments; + + /* + * The approval_request_id property. + */ + @Generated + private String approvalRequestId; + + /* + * The output property. + */ + @Generated + private String output; + + /* + * The error property. + */ + @Generated + private RealtimeMCPError error; + + /* + * The Unix timestamp (in seconds) for when the item was persisted. + */ + @Generated + private Long createdAt; + + /* + * The id of the response that produced this item, when applicable. + */ + @Generated + private String responseId; + + /** + * Creates an instance of RealtimeMCPToolCall class. + * + * @param id the id value to set. + * @param serverLabel the serverLabel value to set. + * @param name the name value to set. + * @param arguments the arguments value to set. + */ + @Generated + public RealtimeMCPToolCall(String id, String serverLabel, String name, String arguments) { + this.id = id; + this.serverLabel = serverLabel; + this.name = name; + this.arguments = arguments; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeConversationItemType getType() { + return this.type; + } + + /** + * Get the id property: The unique ID of the tool call. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the serverLabel property: The label of the MCP server running the tool. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Get the name property: The name of the tool that was run. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Get the arguments property: A JSON string of the arguments passed to the tool. + * + * @return the arguments value. + */ + @Generated + public String getArguments() { + return this.arguments; + } + + /** + * Get the approvalRequestId property: The approval_request_id property. + * + * @return the approvalRequestId value. + */ + @Generated + public String getApprovalRequestId() { + return this.approvalRequestId; + } + + /** + * Set the approvalRequestId property: The approval_request_id property. + * + * @param approvalRequestId the approvalRequestId value to set. + * @return the RealtimeMCPToolCall object itself. + */ + @Generated + public RealtimeMCPToolCall setApprovalRequestId(String approvalRequestId) { + this.approvalRequestId = approvalRequestId; + return this; + } + + /** + * Get the output property: The output property. + * + * @return the output value. + */ + @Generated + public String getOutput() { + return this.output; + } + + /** + * Set the output property: The output property. + * + * @param output the output value to set. + * @return the RealtimeMCPToolCall object itself. + */ + @Generated + public RealtimeMCPToolCall setOutput(String output) { + this.output = output; + return this; + } + + /** + * Get the error property: The error property. + * + * @return the error value. + */ + @Generated + public RealtimeMCPError getError() { + return this.error; + } + + /** + * Set the error property: The error property. + * + * @param error the error value to set. + * @return the RealtimeMCPToolCall object itself. + */ + @Generated + public RealtimeMCPToolCall setError(RealtimeMCPError error) { + this.error = error; + return this; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the item was persisted. + * + * @return the createdAt value. + */ + @Generated + public Long getCreatedAt() { + return this.createdAt; + } + + /** + * Get the responseId property: The id of the response that produced this item, when applicable. + * + * @return the responseId value. + */ + @Generated + public String getResponseId() { + return this.responseId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("server_label", this.serverLabel); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("arguments", this.arguments); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("approval_request_id", this.approvalRequestId); + jsonWriter.writeStringField("output", this.output); + jsonWriter.writeJsonField("error", this.error); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPToolCall from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPToolCall if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPToolCall. + */ + @Generated + public static RealtimeMCPToolCall fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + String serverLabel = null; + String name = null; + String arguments = null; + RealtimeConversationItemType type = RealtimeConversationItemType.MCP_CALL; + String approvalRequestId = null; + String output = null; + RealtimeMCPError error = null; + Long createdAt = null; + String responseId = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("arguments".equals(fieldName)) { + arguments = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeConversationItemType.fromString(reader.getString()); + } else if ("approval_request_id".equals(fieldName)) { + approvalRequestId = reader.getString(); + } else if ("output".equals(fieldName)) { + output = reader.getString(); + } else if ("error".equals(fieldName)) { + error = RealtimeMCPError.fromJson(reader); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("response_id".equals(fieldName)) { + responseId = reader.getString(); + } else { + reader.skipChildren(); + } + } + RealtimeMCPToolCall deserializedRealtimeMCPToolCall + = new RealtimeMCPToolCall(id, serverLabel, name, arguments); + deserializedRealtimeMCPToolCall.type = type; + deserializedRealtimeMCPToolCall.approvalRequestId = approvalRequestId; + deserializedRealtimeMCPToolCall.output = output; + deserializedRealtimeMCPToolCall.error = error; + deserializedRealtimeMCPToolCall.createdAt = createdAt; + deserializedRealtimeMCPToolCall.responseId = responseId; + return deserializedRealtimeMCPToolCall; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java new file mode 100644 index 000000000000..13dcf21512bd --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Realtime MCP tool execution error. + */ +@Immutable +public final class RealtimeMCPToolExecutionError extends RealtimeMCPError { + + /* + * The type property. + */ + @Generated + private RealtimeMcpErrorType type = RealtimeMcpErrorType.TOOL_EXECUTION_ERROR; + + /* + * The message property. + */ + @Generated + private final String message; + + /** + * Creates an instance of RealtimeMCPToolExecutionError class. + * + * @param message the message value to set. + */ + @Generated + public RealtimeMCPToolExecutionError(String message) { + this.message = message; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public RealtimeMcpErrorType getType() { + return this.type; + } + + /** + * Get the message property: The message property. + * + * @return the message value. + */ + @Generated + public String getMessage() { + return this.message; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("message", this.message); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeMCPToolExecutionError from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeMCPToolExecutionError if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RealtimeMCPToolExecutionError. + */ + @Generated + public static RealtimeMCPToolExecutionError fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String message = null; + RealtimeMcpErrorType type = RealtimeMcpErrorType.TOOL_EXECUTION_ERROR; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("message".equals(fieldName)) { + message = reader.getString(); + } else if ("type".equals(fieldName)) { + type = RealtimeMcpErrorType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + RealtimeMCPToolExecutionError deserializedRealtimeMCPToolExecutionError + = new RealtimeMCPToolExecutionError(message); + deserializedRealtimeMCPToolExecutionError.type = type; + return deserializedRealtimeMCPToolExecutionError; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java new file mode 100644 index 000000000000..830f6204b41e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Defines values for RealtimeMcpErrorType. + */ +public final class RealtimeMcpErrorType extends ExpandableStringEnum { + + /** + * Static value protocol_error for RealtimeMcpErrorType. + */ + @Generated + public static final RealtimeMcpErrorType PROTOCOL_ERROR = fromString("protocol_error"); + + /** + * Static value tool_execution_error for RealtimeMcpErrorType. + */ + @Generated + public static final RealtimeMcpErrorType TOOL_EXECUTION_ERROR = fromString("tool_execution_error"); + + /** + * Static value http_error for RealtimeMcpErrorType. + */ + @Generated + public static final RealtimeMcpErrorType HTTP_ERROR = fromString("http_error"); + + /** + * Creates a new instance of RealtimeMcpErrorType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public RealtimeMcpErrorType() { + } + + /** + * Creates or finds a RealtimeMcpErrorType from its string representation. + * + * @param name a name to look for. + * @return the corresponding RealtimeMcpErrorType. + */ + @Generated + public static RealtimeMcpErrorType fromString(String name) { + return fromString(name, RealtimeMcpErrorType.class); + } + + /** + * Gets known RealtimeMcpErrorType values. + * + * @return known RealtimeMcpErrorType values. + */ + @Generated + public static Collection values() { + return values(RealtimeMcpErrorType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java new file mode 100644 index 000000000000..0be8aa6628a9 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeResponseStatusDetails model. + */ +@Immutable +public final class RealtimeResponseStatusDetails implements JsonSerializable { + + /* + * The type property. + */ + @Generated + private RealtimeResponseStatusDetailsType type; + + /* + * The reason property. + */ + @Generated + private RealtimeResponseStatusDetailsReason reason; + + /* + * The error property. + */ + @Generated + private RealtimeResponseStatusDetailsError error; + + /** + * Creates an instance of RealtimeResponseStatusDetails class. + */ + @Generated + private RealtimeResponseStatusDetails() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + public RealtimeResponseStatusDetailsType getType() { + return this.type; + } + + /** + * Get the reason property: The reason property. + * + * @return the reason value. + */ + @Generated + public RealtimeResponseStatusDetailsReason getReason() { + return this.reason; + } + + /** + * Get the error property: The error property. + * + * @return the error value. + */ + @Generated + public RealtimeResponseStatusDetailsError getError() { + return this.error; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("reason", this.reason == null ? null : this.reason.toString()); + jsonWriter.writeJsonField("error", this.error); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeResponseStatusDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeResponseStatusDetails if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeResponseStatusDetails. + */ + @Generated + public static RealtimeResponseStatusDetails fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeResponseStatusDetails deserializedRealtimeResponseStatusDetails + = new RealtimeResponseStatusDetails(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeResponseStatusDetails.type + = RealtimeResponseStatusDetailsType.fromString(reader.getString()); + } else if ("reason".equals(fieldName)) { + deserializedRealtimeResponseStatusDetails.reason + = RealtimeResponseStatusDetailsReason.fromString(reader.getString()); + } else if ("error".equals(fieldName)) { + deserializedRealtimeResponseStatusDetails.error + = RealtimeResponseStatusDetailsError.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeResponseStatusDetails; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java new file mode 100644 index 000000000000..d14f0dd0a7b5 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java @@ -0,0 +1,98 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeResponseStatusDetailsError model. + */ +@Immutable +public final class RealtimeResponseStatusDetailsError implements JsonSerializable { + + /* + * The type property. + */ + @Generated + private String type; + + /* + * The code property. + */ + @Generated + private String code; + + /** + * Creates an instance of RealtimeResponseStatusDetailsError class. + */ + @Generated + private RealtimeResponseStatusDetailsError() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * Get the code property: The code property. + * + * @return the code value. + */ + @Generated + public String getCode() { + return this.code; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("code", this.code); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeResponseStatusDetailsError from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeResponseStatusDetailsError if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeResponseStatusDetailsError. + */ + @Generated + public static RealtimeResponseStatusDetailsError fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeResponseStatusDetailsError deserializedRealtimeResponseStatusDetailsError + = new RealtimeResponseStatusDetailsError(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedRealtimeResponseStatusDetailsError.type = reader.getString(); + } else if ("code".equals(fieldName)) { + deserializedRealtimeResponseStatusDetailsError.code = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeResponseStatusDetailsError; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java new file mode 100644 index 000000000000..ff980bbd922c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeResponseStatusDetailsReason. + */ +public enum RealtimeResponseStatusDetailsReason { + /** + * Enum value turn_detected. + */ + TURN_DETECTED("turn_detected"), + + /** + * Enum value client_cancelled. + */ + CLIENT_CANCELLED("client_cancelled"), + + /** + * Enum value max_output_tokens. + */ + MAX_OUTPUT_TOKENS("max_output_tokens"), + + /** + * Enum value content_filter. + */ + CONTENT_FILTER("content_filter"); + + /** + * The actual serialized value for a RealtimeResponseStatusDetailsReason instance. + */ + private final String value; + + RealtimeResponseStatusDetailsReason(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeResponseStatusDetailsReason instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeResponseStatusDetailsReason object, or null if unable to parse. + */ + public static RealtimeResponseStatusDetailsReason fromString(String value) { + if (value == null) { + return null; + } + RealtimeResponseStatusDetailsReason[] items = RealtimeResponseStatusDetailsReason.values(); + for (RealtimeResponseStatusDetailsReason item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java new file mode 100644 index 000000000000..06bf682fb6ed --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for RealtimeResponseStatusDetailsType. + */ +public enum RealtimeResponseStatusDetailsType { + /** + * Enum value completed. + */ + COMPLETED("completed"), + + /** + * Enum value cancelled. + */ + CANCELLED("cancelled"), + + /** + * Enum value failed. + */ + FAILED("failed"), + + /** + * Enum value incomplete. + */ + INCOMPLETE("incomplete"); + + /** + * The actual serialized value for a RealtimeResponseStatusDetailsType instance. + */ + private final String value; + + RealtimeResponseStatusDetailsType(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a RealtimeResponseStatusDetailsType instance. + * + * @param value the serialized value to parse. + * @return the parsed RealtimeResponseStatusDetailsType object, or null if unable to parse. + */ + public static RealtimeResponseStatusDetailsType fromString(String value) { + if (value == null) { + return null; + } + RealtimeResponseStatusDetailsType[] items = RealtimeResponseStatusDetailsType.values(); + for (RealtimeResponseStatusDetailsType item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java new file mode 100644 index 000000000000..698eaf60b350 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeResponseUsage model. + */ +@Immutable +public final class RealtimeResponseUsage implements JsonSerializable { + + /* + * The total_tokens property. + */ + @Generated + private Long totalTokens; + + /* + * The input_tokens property. + */ + @Generated + private Long inputTokens; + + /* + * The output_tokens property. + */ + @Generated + private Long outputTokens; + + /* + * The input_token_details property. + */ + @Generated + private RealtimeResponseUsageInputTokenDetails inputTokenDetails; + + /* + * The output_token_details property. + */ + @Generated + private RealtimeResponseUsageOutputTokenDetails outputTokenDetails; + + /** + * Creates an instance of RealtimeResponseUsage class. + */ + @Generated + private RealtimeResponseUsage() { + } + + /** + * Get the totalTokens property: The total_tokens property. + * + * @return the totalTokens value. + */ + @Generated + public Long getTotalTokens() { + return this.totalTokens; + } + + /** + * Get the inputTokens property: The input_tokens property. + * + * @return the inputTokens value. + */ + @Generated + public Long getInputTokens() { + return this.inputTokens; + } + + /** + * Get the outputTokens property: The output_tokens property. + * + * @return the outputTokens value. + */ + @Generated + public Long getOutputTokens() { + return this.outputTokens; + } + + /** + * Get the inputTokenDetails property: The input_token_details property. + * + * @return the inputTokenDetails value. + */ + @Generated + public RealtimeResponseUsageInputTokenDetails getInputTokenDetails() { + return this.inputTokenDetails; + } + + /** + * Get the outputTokenDetails property: The output_token_details property. + * + * @return the outputTokenDetails value. + */ + @Generated + public RealtimeResponseUsageOutputTokenDetails getOutputTokenDetails() { + return this.outputTokenDetails; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("total_tokens", this.totalTokens); + jsonWriter.writeNumberField("input_tokens", this.inputTokens); + jsonWriter.writeNumberField("output_tokens", this.outputTokens); + jsonWriter.writeJsonField("input_token_details", this.inputTokenDetails); + jsonWriter.writeJsonField("output_token_details", this.outputTokenDetails); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeResponseUsage from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeResponseUsage if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeResponseUsage. + */ + @Generated + public static RealtimeResponseUsage fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeResponseUsage deserializedRealtimeResponseUsage = new RealtimeResponseUsage(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("total_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsage.totalTokens = reader.getNullable(JsonReader::getLong); + } else if ("input_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsage.inputTokens = reader.getNullable(JsonReader::getLong); + } else if ("output_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsage.outputTokens = reader.getNullable(JsonReader::getLong); + } else if ("input_token_details".equals(fieldName)) { + deserializedRealtimeResponseUsage.inputTokenDetails + = RealtimeResponseUsageInputTokenDetails.fromJson(reader); + } else if ("output_token_details".equals(fieldName)) { + deserializedRealtimeResponseUsage.outputTokenDetails + = RealtimeResponseUsageOutputTokenDetails.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeResponseUsage; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java new file mode 100644 index 000000000000..acef5787f6ae --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java @@ -0,0 +1,161 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeResponseUsageInputTokenDetails model. + */ +@Immutable +public final class RealtimeResponseUsageInputTokenDetails + implements JsonSerializable { + + /* + * The cached_tokens property. + */ + @Generated + private Long cachedTokens; + + /* + * The text_tokens property. + */ + @Generated + private Long textTokens; + + /* + * The image_tokens property. + */ + @Generated + private Long imageTokens; + + /* + * The audio_tokens property. + */ + @Generated + private Long audioTokens; + + /* + * The cached_tokens_details property. + */ + @Generated + private RealtimeResponseUsageInputTokenDetailsCachedTokensDetails cachedTokensDetails; + + /** + * Creates an instance of RealtimeResponseUsageInputTokenDetails class. + */ + @Generated + private RealtimeResponseUsageInputTokenDetails() { + } + + /** + * Get the cachedTokens property: The cached_tokens property. + * + * @return the cachedTokens value. + */ + @Generated + public Long getCachedTokens() { + return this.cachedTokens; + } + + /** + * Get the textTokens property: The text_tokens property. + * + * @return the textTokens value. + */ + @Generated + public Long getTextTokens() { + return this.textTokens; + } + + /** + * Get the imageTokens property: The image_tokens property. + * + * @return the imageTokens value. + */ + @Generated + public Long getImageTokens() { + return this.imageTokens; + } + + /** + * Get the audioTokens property: The audio_tokens property. + * + * @return the audioTokens value. + */ + @Generated + public Long getAudioTokens() { + return this.audioTokens; + } + + /** + * Get the cachedTokensDetails property: The cached_tokens_details property. + * + * @return the cachedTokensDetails value. + */ + @Generated + public RealtimeResponseUsageInputTokenDetailsCachedTokensDetails getCachedTokensDetails() { + return this.cachedTokensDetails; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("cached_tokens", this.cachedTokens); + jsonWriter.writeNumberField("text_tokens", this.textTokens); + jsonWriter.writeNumberField("image_tokens", this.imageTokens); + jsonWriter.writeNumberField("audio_tokens", this.audioTokens); + jsonWriter.writeJsonField("cached_tokens_details", this.cachedTokensDetails); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeResponseUsageInputTokenDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeResponseUsageInputTokenDetails if the JsonReader was pointing to an instance of + * it, or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeResponseUsageInputTokenDetails. + */ + @Generated + public static RealtimeResponseUsageInputTokenDetails fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeResponseUsageInputTokenDetails deserializedRealtimeResponseUsageInputTokenDetails + = new RealtimeResponseUsageInputTokenDetails(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("cached_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetails.cachedTokens + = reader.getNullable(JsonReader::getLong); + } else if ("text_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetails.textTokens + = reader.getNullable(JsonReader::getLong); + } else if ("image_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetails.imageTokens + = reader.getNullable(JsonReader::getLong); + } else if ("audio_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetails.audioTokens + = reader.getNullable(JsonReader::getLong); + } else if ("cached_tokens_details".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetails.cachedTokensDetails + = RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeResponseUsageInputTokenDetails; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java new file mode 100644 index 000000000000..813dad89151c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeResponseUsageInputTokenDetailsCachedTokensDetails model. + */ +@Immutable +public final class RealtimeResponseUsageInputTokenDetailsCachedTokensDetails + implements JsonSerializable { + + /* + * The text_tokens property. + */ + @Generated + private Long textTokens; + + /* + * The image_tokens property. + */ + @Generated + private Long imageTokens; + + /* + * The audio_tokens property. + */ + @Generated + private Long audioTokens; + + /** + * Creates an instance of RealtimeResponseUsageInputTokenDetailsCachedTokensDetails class. + */ + @Generated + private RealtimeResponseUsageInputTokenDetailsCachedTokensDetails() { + } + + /** + * Get the textTokens property: The text_tokens property. + * + * @return the textTokens value. + */ + @Generated + public Long getTextTokens() { + return this.textTokens; + } + + /** + * Get the imageTokens property: The image_tokens property. + * + * @return the imageTokens value. + */ + @Generated + public Long getImageTokens() { + return this.imageTokens; + } + + /** + * Get the audioTokens property: The audio_tokens property. + * + * @return the audioTokens value. + */ + @Generated + public Long getAudioTokens() { + return this.audioTokens; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("text_tokens", this.textTokens); + jsonWriter.writeNumberField("image_tokens", this.imageTokens); + jsonWriter.writeNumberField("audio_tokens", this.audioTokens); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeResponseUsageInputTokenDetailsCachedTokensDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeResponseUsageInputTokenDetailsCachedTokensDetails if the JsonReader was pointing + * to an instance of it, or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the + * RealtimeResponseUsageInputTokenDetailsCachedTokensDetails. + */ + @Generated + public static RealtimeResponseUsageInputTokenDetailsCachedTokensDetails fromJson(JsonReader jsonReader) + throws IOException { + return jsonReader.readObject(reader -> { + RealtimeResponseUsageInputTokenDetailsCachedTokensDetails deserializedRealtimeResponseUsageInputTokenDetailsCachedTokensDetails + = new RealtimeResponseUsageInputTokenDetailsCachedTokensDetails(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("text_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetailsCachedTokensDetails.textTokens + = reader.getNullable(JsonReader::getLong); + } else if ("image_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetailsCachedTokensDetails.imageTokens + = reader.getNullable(JsonReader::getLong); + } else if ("audio_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageInputTokenDetailsCachedTokensDetails.audioTokens + = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeResponseUsageInputTokenDetailsCachedTokensDetails; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java new file mode 100644 index 000000000000..100206dad94c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The RealtimeResponseUsageOutputTokenDetails model. + */ +@Immutable +public final class RealtimeResponseUsageOutputTokenDetails + implements JsonSerializable { + + /* + * The text_tokens property. + */ + @Generated + private Long textTokens; + + /* + * The audio_tokens property. + */ + @Generated + private Long audioTokens; + + /** + * Creates an instance of RealtimeResponseUsageOutputTokenDetails class. + */ + @Generated + private RealtimeResponseUsageOutputTokenDetails() { + } + + /** + * Get the textTokens property: The text_tokens property. + * + * @return the textTokens value. + */ + @Generated + public Long getTextTokens() { + return this.textTokens; + } + + /** + * Get the audioTokens property: The audio_tokens property. + * + * @return the audioTokens value. + */ + @Generated + public Long getAudioTokens() { + return this.audioTokens; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("text_tokens", this.textTokens); + jsonWriter.writeNumberField("audio_tokens", this.audioTokens); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RealtimeResponseUsageOutputTokenDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RealtimeResponseUsageOutputTokenDetails if the JsonReader was pointing to an instance of + * it, or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the RealtimeResponseUsageOutputTokenDetails. + */ + @Generated + public static RealtimeResponseUsageOutputTokenDetails fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RealtimeResponseUsageOutputTokenDetails deserializedRealtimeResponseUsageOutputTokenDetails + = new RealtimeResponseUsageOutputTokenDetails(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("text_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageOutputTokenDetails.textTokens + = reader.getNullable(JsonReader::getLong); + } else if ("audio_tokens".equals(fieldName)) { + deserializedRealtimeResponseUsageOutputTokenDetails.audioTokens + = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + return deserializedRealtimeResponseUsageOutputTokenDetails; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Reasoning.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Reasoning.java new file mode 100644 index 000000000000..6c8728b54c5b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Reasoning.java @@ -0,0 +1,225 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Reasoning + * + * **gpt-5 and o-series models only** + * Configuration options for + * [reasoning models](https://platform.openai.com/docs/guides/reasoning). + */ +@Fluent +public final class Reasoning implements JsonSerializable { + + /* + * Controls the reasoning execution mode for the request. + * When returned on a response, this is the effective execution mode. + */ + @Generated + private ReasoningModeEnum mode; + + /* + * The effort property. + */ + @Generated + private ReasoningEffort effort; + + /* + * The summary property. + */ + @Generated + private PromptAgentDefinitionReasoningSummary summary; + + /* + * The context property. + */ + @Generated + private PromptAgentDefinitionReasoningContext context; + + /* + * The generate_summary property. + */ + @Generated + private PromptAgentDefinitionReasoningGenerateSummary generateSummary; + + /** + * Creates an instance of Reasoning class. + */ + @Generated + public Reasoning() { + } + + /** + * Get the mode property: Controls the reasoning execution mode for the request. + * When returned on a response, this is the effective execution mode. + * + * @return the mode value. + */ + @Generated + public ReasoningModeEnum getMode() { + return this.mode; + } + + /** + * Set the mode property: Controls the reasoning execution mode for the request. + * When returned on a response, this is the effective execution mode. + * + * @param mode the mode value to set. + * @return the Reasoning object itself. + */ + @Generated + public Reasoning setMode(ReasoningModeEnum mode) { + this.mode = mode; + return this; + } + + /** + * Get the effort property: The effort property. + * + * @return the effort value. + */ + @Generated + public ReasoningEffort getEffort() { + return this.effort; + } + + /** + * Set the effort property: The effort property. + * + * @param effort the effort value to set. + * @return the Reasoning object itself. + */ + @Generated + public Reasoning setEffort(ReasoningEffort effort) { + this.effort = effort; + return this; + } + + /** + * Get the summary property: The summary property. + * + * @return the summary value. + */ + @Generated + public PromptAgentDefinitionReasoningSummary getSummary() { + return this.summary; + } + + /** + * Set the summary property: The summary property. + * + * @param summary the summary value to set. + * @return the Reasoning object itself. + */ + @Generated + public Reasoning setSummary(PromptAgentDefinitionReasoningSummary summary) { + this.summary = summary; + return this; + } + + /** + * Get the context property: The context property. + * + * @return the context value. + */ + @Generated + public PromptAgentDefinitionReasoningContext getContext() { + return this.context; + } + + /** + * Set the context property: The context property. + * + * @param context the context value to set. + * @return the Reasoning object itself. + */ + @Generated + public Reasoning setContext(PromptAgentDefinitionReasoningContext context) { + this.context = context; + return this; + } + + /** + * Get the generateSummary property: The generate_summary property. + * + * @return the generateSummary value. + */ + @Generated + public PromptAgentDefinitionReasoningGenerateSummary getGenerateSummary() { + return this.generateSummary; + } + + /** + * Set the generateSummary property: The generate_summary property. + * + * @param generateSummary the generateSummary value to set. + * @return the Reasoning object itself. + */ + @Generated + public Reasoning setGenerateSummary(PromptAgentDefinitionReasoningGenerateSummary generateSummary) { + this.generateSummary = generateSummary; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("mode", this.mode == null ? null : this.mode.toString()); + jsonWriter.writeStringField("effort", this.effort == null ? null : this.effort.toString()); + jsonWriter.writeStringField("summary", this.summary == null ? null : this.summary.toString()); + jsonWriter.writeStringField("context", this.context == null ? null : this.context.toString()); + jsonWriter.writeStringField("generate_summary", + this.generateSummary == null ? null : this.generateSummary.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of Reasoning from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of Reasoning if the JsonReader was pointing to an instance of it, or null if it was pointing + * to JSON null. + * @throws IOException If an error occurs while reading the Reasoning. + */ + @Generated + public static Reasoning fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Reasoning deserializedReasoning = new Reasoning(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("mode".equals(fieldName)) { + deserializedReasoning.mode = ReasoningModeEnum.fromString(reader.getString()); + } else if ("effort".equals(fieldName)) { + deserializedReasoning.effort = ReasoningEffort.fromString(reader.getString()); + } else if ("summary".equals(fieldName)) { + deserializedReasoning.summary + = PromptAgentDefinitionReasoningSummary.fromString(reader.getString()); + } else if ("context".equals(fieldName)) { + deserializedReasoning.context + = PromptAgentDefinitionReasoningContext.fromString(reader.getString()); + } else if ("generate_summary".equals(fieldName)) { + deserializedReasoning.generateSummary + = PromptAgentDefinitionReasoningGenerateSummary.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedReasoning; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningEffort.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningEffort.java new file mode 100644 index 000000000000..fd5aec277193 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningEffort.java @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Constrains effort on reasoning for reasoning models. Currently supported + * values are `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, and `max`. + * Reducing reasoning effort can result in faster responses and fewer tokens + * used on reasoning in a response. Not all reasoning models support every + * value. See the + * [reasoning guide](https://platform.openai.com/docs/guides/reasoning) + * for model-specific support. + */ +public final class ReasoningEffort extends ExpandableStringEnum { + + /** + * Static value none for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort NONE = fromString("none"); + + /** + * Static value minimal for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort MINIMAL = fromString("minimal"); + + /** + * Static value low for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort LOW = fromString("low"); + + /** + * Static value medium for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort MEDIUM = fromString("medium"); + + /** + * Static value high for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort HIGH = fromString("high"); + + /** + * Static value xhigh for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort XHIGH = fromString("xhigh"); + + /** + * Static value max for ReasoningEffort. + */ + @Generated + public static final ReasoningEffort MAX = fromString("max"); + + /** + * Creates a new instance of ReasoningEffort value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public ReasoningEffort() { + } + + /** + * Creates or finds a ReasoningEffort from its string representation. + * + * @param name a name to look for. + * @return the corresponding ReasoningEffort. + */ + @Generated + public static ReasoningEffort fromString(String name) { + return fromString(name, ReasoningEffort.class); + } + + /** + * Gets known ReasoningEffort values. + * + * @return known ReasoningEffort values. + */ + @Generated + public static Collection values() { + return values(ReasoningEffort.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java new file mode 100644 index 000000000000..3b2602736106 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Defines values for ReasoningModeEnum. + */ +public final class ReasoningModeEnum extends ExpandableStringEnum { + + /** + * Static value standard for ReasoningModeEnum. + */ + @Generated + public static final ReasoningModeEnum STANDARD = fromString("standard"); + + /** + * Static value pro for ReasoningModeEnum. + */ + @Generated + public static final ReasoningModeEnum PRO = fromString("pro"); + + /** + * Creates a new instance of ReasoningModeEnum value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public ReasoningModeEnum() { + } + + /** + * Creates or finds a ReasoningModeEnum from its string representation. + * + * @param name a name to look for. + * @return the corresponding ReasoningModeEnum. + */ + @Generated + public static ReasoningModeEnum fromString(String name) { + return fromString(name, ReasoningModeEnum.class); + } + + /** + * Gets known ReasoningModeEnum values. + * + * @return known ReasoningModeEnum values. + */ + @Generated + public static Collection values() { + return values(ReasoningModeEnum.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java new file mode 100644 index 000000000000..43efd7f87d38 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java @@ -0,0 +1,137 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.util.List; + +/** + * A single entry in the routing trace representing one inference turn. Each entry contains the latency and the ordered + * list of attempts for that turn. + */ +@Immutable +public final class RoutingTraceEntry implements JsonSerializable { + + /* + * Identifier of the output item/turn this routing decision is associated with. This is omitted for Chat + * Completions. + */ + @Generated + private String outputId; + + /* + * Time in milliseconds spent in the routing decision for this turn. + */ + @Generated + private final long latencyMs; + + /* + * Ordered list of routing attempts. First element is the initial selection; subsequent elements are fallback + * attempts. There is always at least one attempt. + */ + @Generated + private final List attempts; + + /** + * Creates an instance of RoutingTraceEntry class. + * + * @param latencyMs the latencyMs value to set. + * @param attempts the attempts value to set. + */ + @Generated + private RoutingTraceEntry(Duration latencyMs, List attempts) { + if (latencyMs == null) { + this.latencyMs = 0L; + } else { + this.latencyMs = latencyMs.toMillis(); + } + this.attempts = attempts; + } + + /** + * Get the outputId property: Identifier of the output item/turn this routing decision is associated with. This is + * omitted for Chat Completions. + * + * @return the outputId value. + */ + @Generated + public String getOutputId() { + return this.outputId; + } + + /** + * Get the latencyMs property: Time in milliseconds spent in the routing decision for this turn. + * + * @return the latencyMs value. + */ + @Generated + public Duration getLatencyMs() { + return Duration.ofMillis(this.latencyMs); + } + + /** + * Get the attempts property: Ordered list of routing attempts. First element is the initial selection; subsequent + * elements are fallback attempts. There is always at least one attempt. + * + * @return the attempts value. + */ + @Generated + public List getAttempts() { + return this.attempts; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeLongField("latency_ms", this.latencyMs); + jsonWriter.writeArrayField("attempts", this.attempts, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeStringField("output_id", this.outputId); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RoutingTraceEntry from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RoutingTraceEntry if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the RoutingTraceEntry. + */ + @Generated + public static RoutingTraceEntry fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Duration latencyMs = null; + List attempts = null; + String outputId = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("latency_ms".equals(fieldName)) { + latencyMs = Duration.ofMillis(reader.getLong()); + } else if ("attempts".equals(fieldName)) { + attempts = reader.readArray(reader1 -> ModelRouterAttempt.fromJson(reader1)); + } else if ("output_id".equals(fieldName)) { + outputId = reader.getString(); + } else { + reader.skipChildren(); + } + } + RoutingTraceEntry deserializedRoutingTraceEntry = new RoutingTraceEntry(latencyMs, attempts); + deserializedRoutingTraceEntry.outputId = outputId; + return deserializedRoutingTraceEntry; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionConfiguration.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionConfiguration.java new file mode 100644 index 000000000000..dc1d5ac9b834 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SessionConfiguration.java @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Session defaults applied to sessions created for a hosted agent version. + */ +@Fluent +public final class SessionConfiguration implements JsonSerializable { + + /* + * The idle duration, in seconds, before a session's sandbox is suspended. Optional — when + * unset, the server default of 900 seconds is used. Must be between 120 and 3600 seconds + * (inclusive). + */ + @Generated + private Long idleTimeoutSeconds; + + /** + * Creates an instance of SessionConfiguration class. + */ + @Generated + public SessionConfiguration() { + } + + /** + * Get the idleTimeoutSeconds property: The idle duration, in seconds, before a session's sandbox is suspended. + * Optional — when + * unset, the server default of 900 seconds is used. Must be between 120 and 3600 seconds + * (inclusive). + * + * @return the idleTimeoutSeconds value. + */ + @Generated + public Duration getIdleTimeoutSeconds() { + if (this.idleTimeoutSeconds == null) { + return null; + } + return Duration.ofSeconds(this.idleTimeoutSeconds); + } + + /** + * Set the idleTimeoutSeconds property: The idle duration, in seconds, before a session's sandbox is suspended. + * Optional — when + * unset, the server default of 900 seconds is used. Must be between 120 and 3600 seconds + * (inclusive). + * + * @param idleTimeoutSeconds the idleTimeoutSeconds value to set. + * @return the SessionConfiguration object itself. + */ + @Generated + public SessionConfiguration setIdleTimeoutSeconds(Duration idleTimeoutSeconds) { + if (idleTimeoutSeconds == null) { + this.idleTimeoutSeconds = null; + } else { + this.idleTimeoutSeconds = idleTimeoutSeconds.getSeconds(); + } + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("idle_timeout_seconds", this.idleTimeoutSeconds); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SessionConfiguration from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SessionConfiguration if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the SessionConfiguration. + */ + @Generated + public static SessionConfiguration fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + SessionConfiguration deserializedSessionConfiguration = new SessionConfiguration(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("idle_timeout_seconds".equals(fieldName)) { + deserializedSessionConfiguration.idleTimeoutSeconds = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + return deserializedSessionConfiguration; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java new file mode 100644 index 000000000000..360ac6f68952 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java @@ -0,0 +1,189 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * 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. + */ +@Fluent +public final class ShellToolboxTool extends ToolboxTool { + + /* + * The type of tool. + */ + @Generated + private ToolboxToolType type = ToolboxToolType.SHELL; + + /* + * The allowed_callers property. + */ + @Generated + private List allowedCallers; + + /* + * The environment in which shell commands are executed. Specify an automatically provisioned container or an + * existing container. + */ + @Generated + private final ToolboxShellEnvironment environment; + + /** + * Creates an instance of ShellToolboxTool class. + * + * @param environment the environment value to set. + */ + @Generated + public ShellToolboxTool(ToolboxShellEnvironment environment) { + this.environment = environment; + } + + /** + * Get the type property: The type of tool. + * + * @return the type value. + */ + @Generated + @Override + public ToolboxToolType getType() { + return this.type; + } + + /** + * Get the allowedCallers property: The allowed_callers property. + * + * @return the allowedCallers value. + */ + @Generated + public List getAllowedCallers() { + return this.allowedCallers; + } + + /** + * Set the allowedCallers property: The allowed_callers property. + * + * @param allowedCallers the allowedCallers value to set. + * @return the ShellToolboxTool object itself. + */ + @Generated + public ShellToolboxTool setAllowedCallers(List allowedCallers) { + this.allowedCallers = allowedCallers; + return this; + } + + /** + * Get the environment property: The environment in which shell commands are executed. Specify an automatically + * provisioned container or an existing container. + * + * @return the environment value. + */ + @Generated + public ToolboxShellEnvironment getEnvironment() { + return this.environment; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public ShellToolboxTool setName(String name) { + super.setName(name); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public ShellToolboxTool setDescription(String description) { + super.setDescription(description); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public ShellToolboxTool setToolConfigs(Map toolConfigs) { + super.setToolConfigs(toolConfigs); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", getName()); + jsonWriter.writeStringField("description", getDescription()); + jsonWriter.writeMapField("tool_configs", getToolConfigs(), (writer, element) -> writer.writeJson(element)); + jsonWriter.writeJsonField("environment", this.environment); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeArrayField("allowed_callers", this.allowedCallers, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ShellToolboxTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ShellToolboxTool if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ShellToolboxTool. + */ + @Generated + public static ShellToolboxTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + String description = null; + Map toolConfigs = null; + ToolboxShellEnvironment environment = null; + ToolboxToolType type = ToolboxToolType.SHELL; + List allowedCallers = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("description".equals(fieldName)) { + description = reader.getString(); + } else if ("tool_configs".equals(fieldName)) { + toolConfigs = reader.readMap(reader1 -> ToolConfig.fromJson(reader1)); + } else if ("environment".equals(fieldName)) { + environment = ToolboxShellEnvironment.fromJson(reader); + } else if ("type".equals(fieldName)) { + type = ToolboxToolType.fromString(reader.getString()); + } else if ("allowed_callers".equals(fieldName)) { + allowedCallers + = reader.readArray(reader1 -> CallableToolAllowedCaller.fromString(reader1.getString())); + } else { + reader.skipChildren(); + } + } + ShellToolboxTool deserializedShellToolboxTool = new ShellToolboxTool(environment); + deserializedShellToolboxTool.setName(name); + deserializedShellToolboxTool.setDescription(description); + deserializedShellToolboxTool.setToolConfigs(toolConfigs); + deserializedShellToolboxTool.type = type; + deserializedShellToolboxTool.allowedCallers = allowedCallers; + return deserializedShellToolboxTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Tool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Tool.java index dd66a77cdca9..a27079d0f4c3 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Tool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Tool.java @@ -103,20 +103,22 @@ public static Tool fromJson(JsonReader jsonReader) throws IOException { return WorkIqPreviewTool.fromJson(readerToUse.reset()); } else if ("fabric_iq_preview".equals(discriminatorValue)) { return FabricIqPreviewTool.fromJson(readerToUse.reset()); + } else if ("web_iq_preview".equals(discriminatorValue)) { + return WebIqPreviewTool.fromJson(readerToUse.reset()); } else if ("memory_search_preview".equals(discriminatorValue)) { return MemorySearchPreviewTool.fromJson(readerToUse.reset()); - } else if ("code_interpreter".equals(discriminatorValue)) { - return CodeInterpreterTool.fromJson(readerToUse.reset()); - } else if ("file_search".equals(discriminatorValue)) { - return FileSearchTool.fromJson(readerToUse.reset()); - } else if ("web_search".equals(discriminatorValue)) { - return WebSearchTool.fromJson(readerToUse.reset()); } else if ("mcp".equals(discriminatorValue)) { return McpTool.fromJson(readerToUse.reset()); + } else if ("code_interpreter".equals(discriminatorValue)) { + return CodeInterpreterTool.fromJson(readerToUse.reset()); } else if ("function".equals(discriminatorValue)) { return FunctionTool.fromJson(readerToUse.reset()); + } else if ("file_search".equals(discriminatorValue)) { + return FileSearchTool.fromJson(readerToUse.reset()); } else if ("computer_use_preview".equals(discriminatorValue)) { return ComputerUsePreviewTool.fromJson(readerToUse.reset()); + } else if ("web_search".equals(discriminatorValue)) { + return WebSearchTool.fromJson(readerToUse.reset()); } else if ("programmatic_tool_calling".equals(discriminatorValue)) { return ProgrammaticToolCallingParameter.fromJson(readerToUse.reset()); } else if ("image_generation".equals(discriminatorValue)) { diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java new file mode 100644 index 000000000000..9f54a40f4f9f --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Function tool + * + * Use this option to force the model to call a specific function. + */ +@Immutable +public final class ToolChoiceFunction extends ToolChoiceParam { + + /* + * The type property. + */ + @Generated + private ToolChoiceParamType type = ToolChoiceParamType.FUNCTION; + + /* + * The name of the function to call. + */ + @Generated + private final String name; + + /** + * Creates an instance of ToolChoiceFunction class. + * + * @param name the name value to set. + */ + @Generated + public ToolChoiceFunction(String name) { + this.name = name; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public ToolChoiceParamType getType() { + return this.type; + } + + /** + * Get the name property: The name of the function to call. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolChoiceFunction from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolChoiceFunction if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ToolChoiceFunction. + */ + @Generated + public static ToolChoiceFunction fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + ToolChoiceParamType type = ToolChoiceParamType.FUNCTION; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("type".equals(fieldName)) { + type = ToolChoiceParamType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + ToolChoiceFunction deserializedToolChoiceFunction = new ToolChoiceFunction(name); + deserializedToolChoiceFunction.type = type; + return deserializedToolChoiceFunction; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java new file mode 100644 index 000000000000..5b380a36145f --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java @@ -0,0 +1,139 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * MCP tool + * + * Use this option to force the model to call a specific tool on a remote MCP server. + */ +@Fluent +public final class ToolChoiceMCP extends ToolChoiceParam { + + /* + * The type property. + */ + @Generated + private ToolChoiceParamType type = ToolChoiceParamType.MCP; + + /* + * The label of the MCP server to use. + */ + @Generated + private final String serverLabel; + + /* + * The name property. + */ + @Generated + private String name; + + /** + * Creates an instance of ToolChoiceMCP class. + * + * @param serverLabel the serverLabel value to set. + */ + @Generated + public ToolChoiceMCP(String serverLabel) { + this.serverLabel = serverLabel; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public ToolChoiceParamType getType() { + return this.type; + } + + /** + * Get the serverLabel property: The label of the MCP server to use. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Get the name property: The name property. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Set the name property: The name property. + * + * @param name the name value to set. + * @return the ToolChoiceMCP object itself. + */ + @Generated + public ToolChoiceMCP setName(String name) { + this.name = name; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("server_label", this.serverLabel); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("name", this.name); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolChoiceMCP from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolChoiceMCP if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ToolChoiceMCP. + */ + @Generated + public static ToolChoiceMCP fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String serverLabel = null; + ToolChoiceParamType type = ToolChoiceParamType.MCP; + String name = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("type".equals(fieldName)) { + type = ToolChoiceParamType.fromString(reader.getString()); + } else if ("name".equals(fieldName)) { + name = reader.getString(); + } else { + reader.skipChildren(); + } + } + ToolChoiceMCP deserializedToolChoiceMCP = new ToolChoiceMCP(serverLabel); + deserializedToolChoiceMCP.type = type; + deserializedToolChoiceMCP.name = name; + return deserializedToolChoiceMCP; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java new file mode 100644 index 000000000000..3b9b0a35330c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * How the model should select which tool (or tools) to use when generating + * a response. See the `tools` parameter to see how to specify which tools + * the model can call. + */ +@Immutable +public class ToolChoiceParam implements JsonSerializable { + + /* + * The type property. + */ + @Generated + private ToolChoiceParamType type = ToolChoiceParamType.fromString("ToolChoiceParam"); + + /** + * Creates an instance of ToolChoiceParam class. + */ + @Generated + public ToolChoiceParam() { + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + public ToolChoiceParamType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolChoiceParam from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolChoiceParam if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the ToolChoiceParam. + */ + @Generated + public static ToolChoiceParam fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("mcp".equals(discriminatorValue)) { + return ToolChoiceMCP.fromJson(readerToUse.reset()); + } else if ("function".equals(discriminatorValue)) { + return ToolChoiceFunction.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static ToolChoiceParam fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ToolChoiceParam deserializedToolChoiceParam = new ToolChoiceParam(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedToolChoiceParam.type = ToolChoiceParamType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return deserializedToolChoiceParam; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java new file mode 100644 index 000000000000..bfece252c8ac --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Defines values for ToolChoiceParamType. + */ +public final class ToolChoiceParamType extends ExpandableStringEnum { + + /** + * Static value allowed_tools for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType ALLOWED_TOOLS = fromString("allowed_tools"); + + /** + * Static value function for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType FUNCTION = fromString("function"); + + /** + * Static value mcp for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType MCP = fromString("mcp"); + + /** + * Static value custom for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType CUSTOM = fromString("custom"); + + /** + * Static value programmatic_tool_calling for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType PROGRAMMATIC_TOOL_CALLING = fromString("programmatic_tool_calling"); + + /** + * Static value apply_patch for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType APPLY_PATCH = fromString("apply_patch"); + + /** + * Static value shell for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType SHELL = fromString("shell"); + + /** + * Static value file_search for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType FILE_SEARCH = fromString("file_search"); + + /** + * Static value web_search_preview for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType WEB_SEARCH_PREVIEW = fromString("web_search_preview"); + + /** + * Static value computer_use_preview for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType COMPUTER_USE_PREVIEW = fromString("computer_use_preview"); + + /** + * Static value web_search_preview_2025_03_11 for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType WEB_SEARCH_PREVIEW_2025_03_11 = fromString("web_search_preview_2025_03_11"); + + /** + * Static value image_generation for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType IMAGE_GENERATION = fromString("image_generation"); + + /** + * Static value code_interpreter for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType CODE_INTERPRETER = fromString("code_interpreter"); + + /** + * Static value computer for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType COMPUTER = fromString("computer"); + + /** + * Static value computer_use for ToolChoiceParamType. + */ + @Generated + public static final ToolChoiceParamType COMPUTER_USE = fromString("computer_use"); + + /** + * Creates a new instance of ToolChoiceParamType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public ToolChoiceParamType() { + } + + /** + * Creates or finds a ToolChoiceParamType from its string representation. + * + * @param name a name to look for. + * @return the corresponding ToolChoiceParamType. + */ + @Generated + public static ToolChoiceParamType fromString(String name) { + return fromString(name, ToolChoiceParamType.class); + } + + /** + * Gets known ToolChoiceParamType values. + * + * @return known ToolChoiceParamType values. + */ + @Generated + public static Collection values() { + return values(ToolChoiceParamType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolType.java index 509ca5da31ce..b0097f9c6da2 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolType.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolType.java @@ -228,4 +228,10 @@ public static Collection values() { */ @Generated public static final ToolType A2A = fromString("a2a"); + + /** + * Static value web_iq_preview for ToolType. + */ + @Generated + public static final ToolType WEB_IQ_PREVIEW = fromString("web_iq_preview"); } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java new file mode 100644 index 000000000000..149298d8d649 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java @@ -0,0 +1,211 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * An automatically provisioned container environment for a shell tool stored in a toolbox. + */ +@Fluent +public final class ToolboxShellContainerAutoEnvironment extends ToolboxShellEnvironment { + + /* + * The type of the shell execution environment. + */ + @Generated + private String type = "container_auto"; + + /* + * An optional list of uploaded files to make available to your code. + */ + @Generated + private List fileIds; + + /* + * The memory_limit property. + */ + @Generated + private ContainerMemoryLimit memoryLimit; + + /* + * An optional list of skills referenced by id or inline data. + */ + @Generated + private List skills; + + /* + * The network access policy for the container. When omitted, the service defaults to disabled outbound network + * access. + */ + @Generated + private ToolboxShellNetworkPolicy networkPolicy; + + /** + * Creates an instance of ToolboxShellContainerAutoEnvironment class. + */ + @Generated + public ToolboxShellContainerAutoEnvironment() { + } + + /** + * Get the type property: The type of the shell execution environment. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the fileIds property: An optional list of uploaded files to make available to your code. + * + * @return the fileIds value. + */ + @Generated + public List getFileIds() { + return this.fileIds; + } + + /** + * Set the fileIds property: An optional list of uploaded files to make available to your code. + * + * @param fileIds the fileIds value to set. + * @return the ToolboxShellContainerAutoEnvironment object itself. + */ + @Generated + public ToolboxShellContainerAutoEnvironment setFileIds(List fileIds) { + this.fileIds = fileIds; + return this; + } + + /** + * Get the memoryLimit property: The memory_limit property. + * + * @return the memoryLimit value. + */ + @Generated + public ContainerMemoryLimit getMemoryLimit() { + return this.memoryLimit; + } + + /** + * Set the memoryLimit property: The memory_limit property. + * + * @param memoryLimit the memoryLimit value to set. + * @return the ToolboxShellContainerAutoEnvironment object itself. + */ + @Generated + public ToolboxShellContainerAutoEnvironment setMemoryLimit(ContainerMemoryLimit memoryLimit) { + this.memoryLimit = memoryLimit; + return this; + } + + /** + * Get the skills property: An optional list of skills referenced by id or inline data. + * + * @return the skills value. + */ + @Generated + public List getSkills() { + return this.skills; + } + + /** + * Set the skills property: An optional list of skills referenced by id or inline data. + * + * @param skills the skills value to set. + * @return the ToolboxShellContainerAutoEnvironment object itself. + */ + @Generated + public ToolboxShellContainerAutoEnvironment setSkills(List skills) { + this.skills = skills; + return this; + } + + /** + * Get the networkPolicy property: The network access policy for the container. When omitted, the service defaults + * to disabled outbound network access. + * + * @return the networkPolicy value. + */ + @Generated + public ToolboxShellNetworkPolicy getNetworkPolicy() { + return this.networkPolicy; + } + + /** + * Set the networkPolicy property: The network access policy for the container. When omitted, the service defaults + * to disabled outbound network access. + * + * @param networkPolicy the networkPolicy value to set. + * @return the ToolboxShellContainerAutoEnvironment object itself. + */ + @Generated + public ToolboxShellContainerAutoEnvironment setNetworkPolicy(ToolboxShellNetworkPolicy networkPolicy) { + this.networkPolicy = networkPolicy; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeArrayField("file_ids", this.fileIds, (writer, element) -> writer.writeString(element)); + jsonWriter.writeStringField("memory_limit", this.memoryLimit == null ? null : this.memoryLimit.toString()); + jsonWriter.writeArrayField("skills", this.skills, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeJsonField("network_policy", this.networkPolicy); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolboxShellContainerAutoEnvironment from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolboxShellContainerAutoEnvironment if the JsonReader was pointing to an instance of it, + * or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the ToolboxShellContainerAutoEnvironment. + */ + @Generated + public static ToolboxShellContainerAutoEnvironment fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ToolboxShellContainerAutoEnvironment deserializedToolboxShellContainerAutoEnvironment + = new ToolboxShellContainerAutoEnvironment(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedToolboxShellContainerAutoEnvironment.type = reader.getString(); + } else if ("file_ids".equals(fieldName)) { + List fileIds = reader.readArray(reader1 -> reader1.getString()); + deserializedToolboxShellContainerAutoEnvironment.fileIds = fileIds; + } else if ("memory_limit".equals(fieldName)) { + deserializedToolboxShellContainerAutoEnvironment.memoryLimit + = ContainerMemoryLimit.fromString(reader.getString()); + } else if ("skills".equals(fieldName)) { + List skills = reader.readArray(reader1 -> ContainerSkill.fromJson(reader1)); + deserializedToolboxShellContainerAutoEnvironment.skills = skills; + } else if ("network_policy".equals(fieldName)) { + deserializedToolboxShellContainerAutoEnvironment.networkPolicy + = ToolboxShellNetworkPolicy.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedToolboxShellContainerAutoEnvironment; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java new file mode 100644 index 000000000000..82aeb683703f --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * An existing container environment for a shell tool stored in a toolbox. + */ +@Immutable +public final class ToolboxShellContainerReferenceEnvironment extends ToolboxShellEnvironment { + + /* + * The type of the shell execution environment. + */ + @Generated + private String type = "container_reference"; + + /* + * The ID of the referenced container. + */ + @Generated + private final String containerId; + + /** + * Creates an instance of ToolboxShellContainerReferenceEnvironment class. + * + * @param containerId the containerId value to set. + */ + @Generated + public ToolboxShellContainerReferenceEnvironment(String containerId) { + this.containerId = containerId; + } + + /** + * Get the type property: The type of the shell execution environment. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the containerId property: The ID of the referenced container. + * + * @return the containerId value. + */ + @Generated + public String getContainerId() { + return this.containerId; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("container_id", this.containerId); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolboxShellContainerReferenceEnvironment from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolboxShellContainerReferenceEnvironment if the JsonReader was pointing to an instance of + * it, or null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the ToolboxShellContainerReferenceEnvironment. + */ + @Generated + public static ToolboxShellContainerReferenceEnvironment fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String containerId = null; + String type = "container_reference"; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("container_id".equals(fieldName)) { + containerId = reader.getString(); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else { + reader.skipChildren(); + } + } + ToolboxShellContainerReferenceEnvironment deserializedToolboxShellContainerReferenceEnvironment + = new ToolboxShellContainerReferenceEnvironment(containerId); + deserializedToolboxShellContainerReferenceEnvironment.type = type; + return deserializedToolboxShellContainerReferenceEnvironment; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java new file mode 100644 index 000000000000..5d747806c6d1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * 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. + */ +@Immutable +public class ToolboxShellEnvironment implements JsonSerializable { + + /* + * The type of the shell execution environment. + */ + @Generated + private String type = "ToolboxShellEnvironment"; + + /** + * Creates an instance of ToolboxShellEnvironment class. + */ + @Generated + public ToolboxShellEnvironment() { + } + + /** + * Get the type property: The type of the shell execution environment. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolboxShellEnvironment from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolboxShellEnvironment if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the ToolboxShellEnvironment. + */ + @Generated + public static ToolboxShellEnvironment fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("container_auto".equals(discriminatorValue)) { + return ToolboxShellContainerAutoEnvironment.fromJson(readerToUse.reset()); + } else if ("container_reference".equals(discriminatorValue)) { + return ToolboxShellContainerReferenceEnvironment.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static ToolboxShellEnvironment fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ToolboxShellEnvironment deserializedToolboxShellEnvironment = new ToolboxShellEnvironment(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedToolboxShellEnvironment.type = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedToolboxShellEnvironment; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java new file mode 100644 index 000000000000..8112c67e89d4 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Network access policy for an automatically provisioned toolbox shell container. + */ +@Immutable +public class ToolboxShellNetworkPolicy implements JsonSerializable { + + /* + * The type of network access policy. + */ + @Generated + private String type = "ToolboxShellNetworkPolicy"; + + /** + * Creates an instance of ToolboxShellNetworkPolicy class. + */ + @Generated + public ToolboxShellNetworkPolicy() { + } + + /** + * Get the type property: The type of network access policy. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolboxShellNetworkPolicy from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolboxShellNetworkPolicy if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the ToolboxShellNetworkPolicy. + */ + @Generated + public static ToolboxShellNetworkPolicy fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("disabled".equals(discriminatorValue)) { + return ToolboxShellNetworkPolicyDisabled.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static ToolboxShellNetworkPolicy fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ToolboxShellNetworkPolicy deserializedToolboxShellNetworkPolicy = new ToolboxShellNetworkPolicy(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedToolboxShellNetworkPolicy.type = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedToolboxShellNetworkPolicy; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java new file mode 100644 index 000000000000..1ca9967c43f2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java @@ -0,0 +1,79 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A network policy that disables outbound access from a toolbox shell container. + */ +@Immutable +public final class ToolboxShellNetworkPolicyDisabled extends ToolboxShellNetworkPolicy { + + /* + * The type of network access policy. + */ + @Generated + private String type = "disabled"; + + /** + * Creates an instance of ToolboxShellNetworkPolicyDisabled class. + */ + @Generated + public ToolboxShellNetworkPolicyDisabled() { + } + + /** + * Get the type property: The type of network access policy. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ToolboxShellNetworkPolicyDisabled from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ToolboxShellNetworkPolicyDisabled if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the ToolboxShellNetworkPolicyDisabled. + */ + @Generated + public static ToolboxShellNetworkPolicyDisabled fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + ToolboxShellNetworkPolicyDisabled deserializedToolboxShellNetworkPolicyDisabled + = new ToolboxShellNetworkPolicyDisabled(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedToolboxShellNetworkPolicyDisabled.type = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedToolboxShellNetworkPolicyDisabled; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxTool.java index d3307a080b3f..8d3e58ec3229 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxTool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxTool.java @@ -177,6 +177,8 @@ public static ToolboxTool fromJson(JsonReader jsonReader) throws IOException { return FileSearchToolboxTool.fromJson(readerToUse.reset()); } else if ("web_search".equals(discriminatorValue)) { return WebSearchToolboxTool.fromJson(readerToUse.reset()); + } else if ("shell".equals(discriminatorValue)) { + return ShellToolboxTool.fromJson(readerToUse.reset()); } else if ("mcp".equals(discriminatorValue)) { return McpToolboxTool.fromJson(readerToUse.reset()); } else if ("azure_ai_search".equals(discriminatorValue)) { @@ -195,6 +197,8 @@ public static ToolboxTool fromJson(JsonReader jsonReader) throws IOException { return WorkIqPreviewToolboxTool.fromJson(readerToUse.reset()); } else if ("fabric_iq_preview".equals(discriminatorValue)) { return FabricIqPreviewToolboxTool.fromJson(readerToUse.reset()); + } else if ("web_iq_preview".equals(discriminatorValue)) { + return WebIqPreviewToolboxTool.fromJson(readerToUse.reset()); } else if ("toolbox_search_preview".equals(discriminatorValue)) { return ToolboxSearchPreviewToolboxTool.fromJson(readerToUse.reset()); } else if ("toolbox_search".equals(discriminatorValue)) { diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxToolType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxToolType.java index d706a2f503a7..0144aada95fb 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxToolType.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ToolboxToolType.java @@ -76,7 +76,17 @@ public enum ToolboxToolType { /** * Enum value a2a. */ - A2A("a2a"); + A2A("a2a"), + + /** + * Enum value shell. + */ + SHELL("shell"), + + /** + * Enum value web_iq_preview. + */ + WEB_IQ_PREVIEW("web_iq_preview"); /** * The actual serialized value for a ToolboxToolType instance. @@ -89,7 +99,7 @@ public enum ToolboxToolType { /** * Parses a serialized value to a ToolboxToolType instance. - * + * * @param value the serialized value to parse. * @return the parsed ToolboxToolType object, or null if unable to parse. */ diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java new file mode 100644 index 000000000000..e6009f3b0613 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The audio configuration for a voice agent. These values are session defaults and may be overridden when connecting. + */ +@Fluent +public final class VoiceAgentAudioConfig implements JsonSerializable { + + /* + * Input (microphone) audio configuration. + */ + @Generated + private VoiceAgentAudioInputConfig input; + + /* + * Output (agent speech) audio configuration. + */ + @Generated + private VoiceAgentAudioOutputConfig output; + + /** + * Creates an instance of VoiceAgentAudioConfig class. + */ + @Generated + public VoiceAgentAudioConfig() { + } + + /** + * Get the input property: Input (microphone) audio configuration. + * + * @return the input value. + */ + @Generated + public VoiceAgentAudioInputConfig getInput() { + return this.input; + } + + /** + * Set the input property: Input (microphone) audio configuration. + * + * @param input the input value to set. + * @return the VoiceAgentAudioConfig object itself. + */ + @Generated + public VoiceAgentAudioConfig setInput(VoiceAgentAudioInputConfig input) { + this.input = input; + return this; + } + + /** + * Get the output property: Output (agent speech) audio configuration. + * + * @return the output value. + */ + @Generated + public VoiceAgentAudioOutputConfig getOutput() { + return this.output; + } + + /** + * Set the output property: Output (agent speech) audio configuration. + * + * @param output the output value to set. + * @return the VoiceAgentAudioConfig object itself. + */ + @Generated + public VoiceAgentAudioConfig setOutput(VoiceAgentAudioOutputConfig output) { + this.output = output; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("input", this.input); + jsonWriter.writeJsonField("output", this.output); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAudioConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAudioConfig if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAudioConfig. + */ + @Generated + public static VoiceAgentAudioConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAudioConfig deserializedVoiceAgentAudioConfig = new VoiceAgentAudioConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("input".equals(fieldName)) { + deserializedVoiceAgentAudioConfig.input = VoiceAgentAudioInputConfig.fromJson(reader); + } else if ("output".equals(fieldName)) { + deserializedVoiceAgentAudioConfig.output = VoiceAgentAudioOutputConfig.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAudioConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java new file mode 100644 index 000000000000..5d51e485767a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java @@ -0,0 +1,220 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Input audio configuration for a voice agent. + */ +@Fluent +public final class VoiceAgentAudioInputConfig implements JsonSerializable { + + /* + * The input audio format. + */ + @Generated + private RealtimeAudioFormats format; + + /* + * Input noise reduction. Set to null to disable. + */ + @Generated + private VoiceAgentNoiseReduction noiseReduction; + + /* + * 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. + */ + @Generated + private VoiceAgentTurnDetectionConfig turnDetection; + + /* + * Optional server-side echo cancellation settings. + */ + @Generated + private VoiceAgentEchoCancellation echoCancellation; + + /* + * Asynchronous input-audio transcription. Set to null to disable transcription. + */ + @Generated + private VoiceAgentInputTranscription transcription; + + /** + * Creates an instance of VoiceAgentAudioInputConfig class. + */ + @Generated + public VoiceAgentAudioInputConfig() { + } + + /** + * Get the format property: The input audio format. + * + * @return the format value. + */ + @Generated + public RealtimeAudioFormats getFormat() { + return this.format; + } + + /** + * Set the format property: The input audio format. + * + * @param format the format value to set. + * @return the VoiceAgentAudioInputConfig object itself. + */ + @Generated + public VoiceAgentAudioInputConfig setFormat(RealtimeAudioFormats format) { + this.format = format; + return this; + } + + /** + * Get the noiseReduction property: Input noise reduction. Set to null to disable. + * + * @return the noiseReduction value. + */ + @Generated + public VoiceAgentNoiseReduction getNoiseReduction() { + return this.noiseReduction; + } + + /** + * Set the noiseReduction property: Input noise reduction. Set to null to disable. + * + * @param noiseReduction the noiseReduction value to set. + * @return the VoiceAgentAudioInputConfig object itself. + */ + @Generated + public VoiceAgentAudioInputConfig setNoiseReduction(VoiceAgentNoiseReduction noiseReduction) { + this.noiseReduction = noiseReduction; + return this; + } + + /** + * Get the turnDetection property: 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. + * + * @return the turnDetection value. + */ + @Generated + public VoiceAgentTurnDetectionConfig getTurnDetection() { + return this.turnDetection; + } + + /** + * Set the turnDetection property: 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. + * + * @param turnDetection the turnDetection value to set. + * @return the VoiceAgentAudioInputConfig object itself. + */ + @Generated + public VoiceAgentAudioInputConfig setTurnDetection(VoiceAgentTurnDetectionConfig turnDetection) { + this.turnDetection = turnDetection; + return this; + } + + /** + * Get the echoCancellation property: Optional server-side echo cancellation settings. + * + * @return the echoCancellation value. + */ + @Generated + public VoiceAgentEchoCancellation getEchoCancellation() { + return this.echoCancellation; + } + + /** + * Set the echoCancellation property: Optional server-side echo cancellation settings. + * + * @param echoCancellation the echoCancellation value to set. + * @return the VoiceAgentAudioInputConfig object itself. + */ + @Generated + public VoiceAgentAudioInputConfig setEchoCancellation(VoiceAgentEchoCancellation echoCancellation) { + this.echoCancellation = echoCancellation; + return this; + } + + /** + * Get the transcription property: Asynchronous input-audio transcription. Set to null to disable transcription. + * + * @return the transcription value. + */ + @Generated + public VoiceAgentInputTranscription getTranscription() { + return this.transcription; + } + + /** + * Set the transcription property: Asynchronous input-audio transcription. Set to null to disable transcription. + * + * @param transcription the transcription value to set. + * @return the VoiceAgentAudioInputConfig object itself. + */ + @Generated + public VoiceAgentAudioInputConfig setTranscription(VoiceAgentInputTranscription transcription) { + this.transcription = transcription; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("format", this.format); + jsonWriter.writeJsonField("noise_reduction", this.noiseReduction); + jsonWriter.writeJsonField("turn_detection", this.turnDetection); + jsonWriter.writeJsonField("echo_cancellation", this.echoCancellation); + jsonWriter.writeJsonField("transcription", this.transcription); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAudioInputConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAudioInputConfig if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAudioInputConfig. + */ + @Generated + public static VoiceAgentAudioInputConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAudioInputConfig deserializedVoiceAgentAudioInputConfig = new VoiceAgentAudioInputConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("format".equals(fieldName)) { + deserializedVoiceAgentAudioInputConfig.format = RealtimeAudioFormats.fromJson(reader); + } else if ("noise_reduction".equals(fieldName)) { + deserializedVoiceAgentAudioInputConfig.noiseReduction = VoiceAgentNoiseReduction.fromJson(reader); + } else if ("turn_detection".equals(fieldName)) { + deserializedVoiceAgentAudioInputConfig.turnDetection + = VoiceAgentTurnDetectionConfig.fromJson(reader); + } else if ("echo_cancellation".equals(fieldName)) { + deserializedVoiceAgentAudioInputConfig.echoCancellation + = VoiceAgentEchoCancellation.fromJson(reader); + } else if ("transcription".equals(fieldName)) { + deserializedVoiceAgentAudioInputConfig.transcription + = VoiceAgentInputTranscription.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAudioInputConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java new file mode 100644 index 000000000000..e49680af1255 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for VoiceAgentAudioInputConfigTranscriptionDelay. + */ +public enum VoiceAgentAudioInputConfigTranscriptionDelay { + /** + * Enum value minimal. + */ + MINIMAL("minimal"), + + /** + * Enum value low. + */ + LOW("low"), + + /** + * Enum value medium. + */ + MEDIUM("medium"), + + /** + * Enum value high. + */ + HIGH("high"), + + /** + * Enum value xhigh. + */ + XHIGH("xhigh"); + + /** + * The actual serialized value for a VoiceAgentAudioInputConfigTranscriptionDelay instance. + */ + private final String value; + + VoiceAgentAudioInputConfigTranscriptionDelay(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceAgentAudioInputConfigTranscriptionDelay instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceAgentAudioInputConfigTranscriptionDelay object, or null if unable to parse. + */ + public static VoiceAgentAudioInputConfigTranscriptionDelay fromString(String value) { + if (value == null) { + return null; + } + VoiceAgentAudioInputConfigTranscriptionDelay[] items = VoiceAgentAudioInputConfigTranscriptionDelay.values(); + for (VoiceAgentAudioInputConfigTranscriptionDelay item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java new file mode 100644 index 000000000000..10a1019ae6a4 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java @@ -0,0 +1,577 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Output audio configuration for a voice agent. + * Provider-specific fields are selected by `voice_type`: + * - `openai`: `voice` and `speed`. + * - `azure-standard`: `voice`, `voice_locale`, `speed`, `voice_temperature`, `custom_lexicon_url`, + * `custom_text_normalization_url`, `prefer_locales`, `style`, `pitch`, and `volume`. + * - `azure-custom`: all `azure-standard` fields except `style`, plus `custom_voice_endpoint_id`. + * - `azure-personal`: all `azure-standard` fields except `style`, plus `personal_voice_model`. + * - `avatar-voice-sync`: all `azure-standard` fields except `voice` and `style`, plus `personal_voice_model`; the voice + * name is derived from the avatar. + * - `azure-realtime-native`: `voice` and `speed`. + * `format` and `output_audio_timestamp_types` apply to every voice type. + */ +@Fluent +public final class VoiceAgentAudioOutputConfig implements JsonSerializable { + + /* + * The output audio format. Applies to every `voice_type` and defaults to 24 kHz PCM. + */ + @Generated + private RealtimeAudioFormats format; + + /* + * 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. + */ + @Generated + private String voice; + + /* + * The voice implementation. + */ + @Generated + private VoiceType voiceType; + + /* + * The enforced BCP-47 output locale. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and + * `avatar-voice-sync`. + */ + @Generated + private String voiceLocale; + + /* + * The numeric output speed multiplier. Applies to all known `voice_type` values and defaults to 1. + */ + @Generated + private Double speed; + + /* + * The voice variation temperature. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and + * `avatar-voice-sync`. + */ + @Generated + private Double voiceTemperature; + + /* + * The URL of a custom pronunciation lexicon. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and + * `avatar-voice-sync`. + */ + @Generated + private String customLexiconUrl; + + /* + * The URL of a custom text-normalization configuration. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + */ + @Generated + private String customTextNormalizationUrl; + + /* + * Preferred BCP-47 locales for multilingual synthesis. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + */ + @Generated + private List preferLocales; + + /* + * The voice speaking style. Applies only when `voice_type` is `azure-standard`. + */ + @Generated + private String style; + + /* + * The voice pitch adjustment. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and + * `avatar-voice-sync`. + */ + @Generated + private String pitch; + + /* + * The voice volume adjustment. Applies to `azure-standard`, `azure-custom`, `azure-personal`, and + * `avatar-voice-sync`. + */ + @Generated + private String volume; + + /* + * The Azure custom-voice deployment endpoint identifier. Applies only when `voice_type` is `azure-custom`. + */ + @Generated + private String customVoiceEndpointId; + + /* + * The Azure personal or avatar voice model. Applies only when `voice_type` is `azure-personal` or + * `avatar-voice-sync`. + */ + @Generated + private String personalVoiceModel; + + /* + * Timestamp kinds to include with output audio. Applies to every `voice_type`. + */ + @Generated + private List outputAudioTimestampTypes; + + /** + * Creates an instance of VoiceAgentAudioOutputConfig class. + */ + @Generated + public VoiceAgentAudioOutputConfig() { + } + + /** + * Get the format property: The output audio format. Applies to every `voice_type` and defaults to 24 kHz PCM. + * + * @return the format value. + */ + @Generated + public RealtimeAudioFormats getFormat() { + return this.format; + } + + /** + * Set the format property: The output audio format. Applies to every `voice_type` and defaults to 24 kHz PCM. + * + * @param format the format value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setFormat(RealtimeAudioFormats format) { + this.format = format; + return this; + } + + /** + * Get the voice property: 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. + * + * @return the voice value. + */ + @Generated + public String getVoice() { + return this.voice; + } + + /** + * Set the voice property: 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. + * + * @param voice the voice value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setVoice(String voice) { + this.voice = voice; + return this; + } + + /** + * Get the voiceType property: The voice implementation. + * + * @return the voiceType value. + */ + @Generated + public VoiceType getVoiceType() { + return this.voiceType; + } + + /** + * Set the voiceType property: The voice implementation. + * + * @param voiceType the voiceType value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setVoiceType(VoiceType voiceType) { + this.voiceType = voiceType; + return this; + } + + /** + * Get the voiceLocale property: The enforced BCP-47 output locale. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @return the voiceLocale value. + */ + @Generated + public String getVoiceLocale() { + return this.voiceLocale; + } + + /** + * Set the voiceLocale property: The enforced BCP-47 output locale. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @param voiceLocale the voiceLocale value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setVoiceLocale(String voiceLocale) { + this.voiceLocale = voiceLocale; + return this; + } + + /** + * Get the speed property: The numeric output speed multiplier. Applies to all known `voice_type` values and + * defaults to 1. + * + * @return the speed value. + */ + @Generated + public Double getSpeed() { + return this.speed; + } + + /** + * Set the speed property: The numeric output speed multiplier. Applies to all known `voice_type` values and + * defaults to 1. + * + * @param speed the speed value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setSpeed(Double speed) { + this.speed = speed; + return this; + } + + /** + * Get the voiceTemperature property: The voice variation temperature. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @return the voiceTemperature value. + */ + @Generated + public Double getVoiceTemperature() { + return this.voiceTemperature; + } + + /** + * Set the voiceTemperature property: The voice variation temperature. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @param voiceTemperature the voiceTemperature value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setVoiceTemperature(Double voiceTemperature) { + this.voiceTemperature = voiceTemperature; + return this; + } + + /** + * Get the customLexiconUrl property: The URL of a custom pronunciation lexicon. Applies to `azure-standard`, + * `azure-custom`, `azure-personal`, and `avatar-voice-sync`. + * + * @return the customLexiconUrl value. + */ + @Generated + public String getCustomLexiconUrl() { + return this.customLexiconUrl; + } + + /** + * Set the customLexiconUrl property: The URL of a custom pronunciation lexicon. Applies to `azure-standard`, + * `azure-custom`, `azure-personal`, and `avatar-voice-sync`. + * + * @param customLexiconUrl the customLexiconUrl value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setCustomLexiconUrl(String customLexiconUrl) { + this.customLexiconUrl = customLexiconUrl; + return this; + } + + /** + * Get the customTextNormalizationUrl property: The URL of a custom text-normalization configuration. Applies to + * `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. + * + * @return the customTextNormalizationUrl value. + */ + @Generated + public String getCustomTextNormalizationUrl() { + return this.customTextNormalizationUrl; + } + + /** + * Set the customTextNormalizationUrl property: The URL of a custom text-normalization configuration. Applies to + * `azure-standard`, `azure-custom`, `azure-personal`, and `avatar-voice-sync`. + * + * @param customTextNormalizationUrl the customTextNormalizationUrl value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setCustomTextNormalizationUrl(String customTextNormalizationUrl) { + this.customTextNormalizationUrl = customTextNormalizationUrl; + return this; + } + + /** + * Get the preferLocales property: Preferred BCP-47 locales for multilingual synthesis. Applies to `azure-standard`, + * `azure-custom`, `azure-personal`, and `avatar-voice-sync`. + * + * @return the preferLocales value. + */ + @Generated + public List getPreferLocales() { + return this.preferLocales; + } + + /** + * Set the preferLocales property: Preferred BCP-47 locales for multilingual synthesis. Applies to `azure-standard`, + * `azure-custom`, `azure-personal`, and `avatar-voice-sync`. + * + * @param preferLocales the preferLocales value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setPreferLocales(List preferLocales) { + this.preferLocales = preferLocales; + return this; + } + + /** + * Get the style property: The voice speaking style. Applies only when `voice_type` is `azure-standard`. + * + * @return the style value. + */ + @Generated + public String getStyle() { + return this.style; + } + + /** + * Set the style property: The voice speaking style. Applies only when `voice_type` is `azure-standard`. + * + * @param style the style value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setStyle(String style) { + this.style = style; + return this; + } + + /** + * Get the pitch property: The voice pitch adjustment. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @return the pitch value. + */ + @Generated + public String getPitch() { + return this.pitch; + } + + /** + * Set the pitch property: The voice pitch adjustment. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @param pitch the pitch value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setPitch(String pitch) { + this.pitch = pitch; + return this; + } + + /** + * Get the volume property: The voice volume adjustment. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @return the volume value. + */ + @Generated + public String getVolume() { + return this.volume; + } + + /** + * Set the volume property: The voice volume adjustment. Applies to `azure-standard`, `azure-custom`, + * `azure-personal`, and `avatar-voice-sync`. + * + * @param volume the volume value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setVolume(String volume) { + this.volume = volume; + return this; + } + + /** + * Get the customVoiceEndpointId property: The Azure custom-voice deployment endpoint identifier. Applies only when + * `voice_type` is `azure-custom`. + * + * @return the customVoiceEndpointId value. + */ + @Generated + public String getCustomVoiceEndpointId() { + return this.customVoiceEndpointId; + } + + /** + * Set the customVoiceEndpointId property: The Azure custom-voice deployment endpoint identifier. Applies only when + * `voice_type` is `azure-custom`. + * + * @param customVoiceEndpointId the customVoiceEndpointId value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setCustomVoiceEndpointId(String customVoiceEndpointId) { + this.customVoiceEndpointId = customVoiceEndpointId; + return this; + } + + /** + * Get the personalVoiceModel property: The Azure personal or avatar voice model. Applies only when `voice_type` is + * `azure-personal` or `avatar-voice-sync`. + * + * @return the personalVoiceModel value. + */ + @Generated + public String getPersonalVoiceModel() { + return this.personalVoiceModel; + } + + /** + * Set the personalVoiceModel property: The Azure personal or avatar voice model. Applies only when `voice_type` is + * `azure-personal` or `avatar-voice-sync`. + * + * @param personalVoiceModel the personalVoiceModel value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig setPersonalVoiceModel(String personalVoiceModel) { + this.personalVoiceModel = personalVoiceModel; + return this; + } + + /** + * Get the outputAudioTimestampTypes property: Timestamp kinds to include with output audio. Applies to every + * `voice_type`. + * + * @return the outputAudioTimestampTypes value. + */ + @Generated + public List getOutputAudioTimestampTypes() { + return this.outputAudioTimestampTypes; + } + + /** + * Set the outputAudioTimestampTypes property: Timestamp kinds to include with output audio. Applies to every + * `voice_type`. + * + * @param outputAudioTimestampTypes the outputAudioTimestampTypes value to set. + * @return the VoiceAgentAudioOutputConfig object itself. + */ + @Generated + public VoiceAgentAudioOutputConfig + setOutputAudioTimestampTypes(List outputAudioTimestampTypes) { + this.outputAudioTimestampTypes = outputAudioTimestampTypes; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("format", this.format); + jsonWriter.writeStringField("voice", this.voice); + jsonWriter.writeStringField("voice_type", this.voiceType == null ? null : this.voiceType.toString()); + jsonWriter.writeStringField("voice_locale", this.voiceLocale); + jsonWriter.writeNumberField("speed", this.speed); + jsonWriter.writeNumberField("voice_temperature", this.voiceTemperature); + jsonWriter.writeStringField("custom_lexicon_url", this.customLexiconUrl); + jsonWriter.writeStringField("custom_text_normalization_url", this.customTextNormalizationUrl); + jsonWriter.writeArrayField("prefer_locales", this.preferLocales, + (writer, element) -> writer.writeString(element)); + jsonWriter.writeStringField("style", this.style); + jsonWriter.writeStringField("pitch", this.pitch); + jsonWriter.writeStringField("volume", this.volume); + jsonWriter.writeStringField("custom_voice_endpoint_id", this.customVoiceEndpointId); + jsonWriter.writeStringField("personal_voice_model", this.personalVoiceModel); + jsonWriter.writeArrayField("output_audio_timestamp_types", this.outputAudioTimestampTypes, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAudioOutputConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAudioOutputConfig if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAudioOutputConfig. + */ + @Generated + public static VoiceAgentAudioOutputConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAudioOutputConfig deserializedVoiceAgentAudioOutputConfig = new VoiceAgentAudioOutputConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("format".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.format = RealtimeAudioFormats.fromJson(reader); + } else if ("voice".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.voice = reader.getString(); + } else if ("voice_type".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.voiceType = VoiceType.fromString(reader.getString()); + } else if ("voice_locale".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.voiceLocale = reader.getString(); + } else if ("speed".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.speed = reader.getNullable(JsonReader::getDouble); + } else if ("voice_temperature".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.voiceTemperature + = reader.getNullable(JsonReader::getDouble); + } else if ("custom_lexicon_url".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.customLexiconUrl = reader.getString(); + } else if ("custom_text_normalization_url".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.customTextNormalizationUrl = reader.getString(); + } else if ("prefer_locales".equals(fieldName)) { + List preferLocales = reader.readArray(reader1 -> reader1.getString()); + deserializedVoiceAgentAudioOutputConfig.preferLocales = preferLocales; + } else if ("style".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.style = reader.getString(); + } else if ("pitch".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.pitch = reader.getString(); + } else if ("volume".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.volume = reader.getString(); + } else if ("custom_voice_endpoint_id".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.customVoiceEndpointId = reader.getString(); + } else if ("personal_voice_model".equals(fieldName)) { + deserializedVoiceAgentAudioOutputConfig.personalVoiceModel = reader.getString(); + } else if ("output_audio_timestamp_types".equals(fieldName)) { + List outputAudioTimestampTypes + = reader.readArray(reader1 -> VoiceAgentAudioTimestampType.fromString(reader1.getString())); + deserializedVoiceAgentAudioOutputConfig.outputAudioTimestampTypes = outputAudioTimestampTypes; + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAudioOutputConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java new file mode 100644 index 000000000000..1b9aa4b00fde --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * An output-audio timestamp kind supported by a voice agent. + */ +public enum VoiceAgentAudioTimestampType { + /** + * Word-level timestamps. + */ + WORD("word"); + + /** + * The actual serialized value for a VoiceAgentAudioTimestampType instance. + */ + private final String value; + + VoiceAgentAudioTimestampType(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceAgentAudioTimestampType instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceAgentAudioTimestampType object, or null if unable to parse. + */ + public static VoiceAgentAudioTimestampType fromString(String value) { + if (value == null) { + return null; + } + VoiceAgentAudioTimestampType[] items = VoiceAgentAudioTimestampType.values(); + for (VoiceAgentAudioTimestampType item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java new file mode 100644 index 000000000000..91a34177f4b7 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java @@ -0,0 +1,337 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Avatar configuration for a voice agent. These values are session defaults and may be overridden when connecting. + */ +@Fluent +public class VoiceAgentAvatarConfig implements JsonSerializable { + + /* + * The avatar type. + */ + @Generated + private final VoiceAgentAvatarType type; + + /* + * The avatar character identifier, e.g. 'lisa'. + */ + @Generated + private final String character; + + /* + * The avatar style, e.g. 'casual-sitting'. + */ + @Generated + private String style; + + /* + * Whether the avatar is a customer-customized avatar. Defaults to false. + */ + @Generated + private Boolean customized; + + /* + * The transport used to deliver the avatar video stream. + */ + @Generated + private VoiceAgentAvatarOutputProtocol outputProtocol; + + /* + * The avatar model identifier. + */ + @Generated + private String model; + + /* + * Avatar video encoder and presentation settings. + */ + @Generated + private VoiceAgentAvatarVideoParams video; + + /* + * Avatar placement and motion settings. + */ + @Generated + private VoiceAgentAvatarScene scene; + + /* + * Whether audit audio is emitted with avatar output. Defaults to false. + */ + @Generated + private Boolean outputAuditAudio; + + /** + * Creates an instance of VoiceAgentAvatarConfig class. + * + * @param type the type value to set. + * @param character the character value to set. + */ + @Generated + public VoiceAgentAvatarConfig(VoiceAgentAvatarType type, String character) { + this.type = type; + this.character = character; + } + + /** + * Get the type property: The avatar type. + * + * @return the type value. + */ + @Generated + public VoiceAgentAvatarType getType() { + return this.type; + } + + /** + * Get the character property: The avatar character identifier, e.g. 'lisa'. + * + * @return the character value. + */ + @Generated + public String getCharacter() { + return this.character; + } + + /** + * Get the style property: The avatar style, e.g. 'casual-sitting'. + * + * @return the style value. + */ + @Generated + public String getStyle() { + return this.style; + } + + /** + * Set the style property: The avatar style, e.g. 'casual-sitting'. + * + * @param style the style value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setStyle(String style) { + this.style = style; + return this; + } + + /** + * Get the customized property: Whether the avatar is a customer-customized avatar. Defaults to false. + * + * @return the customized value. + */ + @Generated + public Boolean isCustomized() { + return this.customized; + } + + /** + * Set the customized property: Whether the avatar is a customer-customized avatar. Defaults to false. + * + * @param customized the customized value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setCustomized(Boolean customized) { + this.customized = customized; + return this; + } + + /** + * Get the outputProtocol property: The transport used to deliver the avatar video stream. + * + * @return the outputProtocol value. + */ + @Generated + public VoiceAgentAvatarOutputProtocol getOutputProtocol() { + return this.outputProtocol; + } + + /** + * Set the outputProtocol property: The transport used to deliver the avatar video stream. + * + * @param outputProtocol the outputProtocol value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setOutputProtocol(VoiceAgentAvatarOutputProtocol outputProtocol) { + this.outputProtocol = outputProtocol; + return this; + } + + /** + * Get the model property: The avatar model identifier. + * + * @return the model value. + */ + @Generated + public String getModel() { + return this.model; + } + + /** + * Set the model property: The avatar model identifier. + * + * @param model the model value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setModel(String model) { + this.model = model; + return this; + } + + /** + * Get the video property: Avatar video encoder and presentation settings. + * + * @return the video value. + */ + @Generated + public VoiceAgentAvatarVideoParams getVideo() { + return this.video; + } + + /** + * Set the video property: Avatar video encoder and presentation settings. + * + * @param video the video value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setVideo(VoiceAgentAvatarVideoParams video) { + this.video = video; + return this; + } + + /** + * Get the scene property: Avatar placement and motion settings. + * + * @return the scene value. + */ + @Generated + public VoiceAgentAvatarScene getScene() { + return this.scene; + } + + /** + * Set the scene property: Avatar placement and motion settings. + * + * @param scene the scene value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setScene(VoiceAgentAvatarScene scene) { + this.scene = scene; + return this; + } + + /** + * Get the outputAuditAudio property: Whether audit audio is emitted with avatar output. Defaults to false. + * + * @return the outputAuditAudio value. + */ + @Generated + public Boolean isOutputAuditAudio() { + return this.outputAuditAudio; + } + + /** + * Set the outputAuditAudio property: Whether audit audio is emitted with avatar output. Defaults to false. + * + * @param outputAuditAudio the outputAuditAudio value to set. + * @return the VoiceAgentAvatarConfig object itself. + */ + @Generated + public VoiceAgentAvatarConfig setOutputAuditAudio(Boolean outputAuditAudio) { + this.outputAuditAudio = outputAuditAudio; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("character", this.character); + jsonWriter.writeStringField("style", this.style); + jsonWriter.writeBooleanField("customized", this.customized); + jsonWriter.writeStringField("output_protocol", + this.outputProtocol == null ? null : this.outputProtocol.toString()); + jsonWriter.writeStringField("model", this.model); + jsonWriter.writeJsonField("video", this.video); + jsonWriter.writeJsonField("scene", this.scene); + jsonWriter.writeBooleanField("output_audit_audio", this.outputAuditAudio); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAvatarConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAvatarConfig if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentAvatarConfig. + */ + @Generated + public static VoiceAgentAvatarConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAvatarType type = null; + String character = null; + String style = null; + Boolean customized = null; + VoiceAgentAvatarOutputProtocol outputProtocol = null; + String model = null; + VoiceAgentAvatarVideoParams video = null; + VoiceAgentAvatarScene scene = null; + Boolean outputAuditAudio = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + type = VoiceAgentAvatarType.fromString(reader.getString()); + } else if ("character".equals(fieldName)) { + character = reader.getString(); + } else if ("style".equals(fieldName)) { + style = reader.getString(); + } else if ("customized".equals(fieldName)) { + customized = reader.getNullable(JsonReader::getBoolean); + } else if ("output_protocol".equals(fieldName)) { + outputProtocol = VoiceAgentAvatarOutputProtocol.fromString(reader.getString()); + } else if ("model".equals(fieldName)) { + model = reader.getString(); + } else if ("video".equals(fieldName)) { + video = VoiceAgentAvatarVideoParams.fromJson(reader); + } else if ("scene".equals(fieldName)) { + scene = VoiceAgentAvatarScene.fromJson(reader); + } else if ("output_audit_audio".equals(fieldName)) { + outputAuditAudio = reader.getNullable(JsonReader::getBoolean); + } else { + reader.skipChildren(); + } + } + VoiceAgentAvatarConfig deserializedVoiceAgentAvatarConfig = new VoiceAgentAvatarConfig(type, character); + deserializedVoiceAgentAvatarConfig.style = style; + deserializedVoiceAgentAvatarConfig.customized = customized; + deserializedVoiceAgentAvatarConfig.outputProtocol = outputProtocol; + deserializedVoiceAgentAvatarConfig.model = model; + deserializedVoiceAgentAvatarConfig.video = video; + deserializedVoiceAgentAvatarConfig.scene = scene; + deserializedVoiceAgentAvatarConfig.outputAuditAudio = outputAuditAudio; + return deserializedVoiceAgentAvatarConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java new file mode 100644 index 000000000000..ca5fc98a277a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The transport used to deliver the avatar video stream. + */ +public final class VoiceAgentAvatarOutputProtocol extends ExpandableStringEnum { + + /** + * Static value webrtc for VoiceAgentAvatarOutputProtocol. + */ + @Generated + public static final VoiceAgentAvatarOutputProtocol WEBRTC = fromString("webrtc"); + + /** + * Static value websocket for VoiceAgentAvatarOutputProtocol. + */ + @Generated + public static final VoiceAgentAvatarOutputProtocol WEBSOCKET = fromString("websocket"); + + /** + * Binary WebSocket transport. + */ + @Generated + public static final VoiceAgentAvatarOutputProtocol WEBSOCKET_BINARY = fromString("websocket-binary"); + + /** + * Creates a new instance of VoiceAgentAvatarOutputProtocol value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentAvatarOutputProtocol() { + } + + /** + * Creates or finds a VoiceAgentAvatarOutputProtocol from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentAvatarOutputProtocol. + */ + @Generated + public static VoiceAgentAvatarOutputProtocol fromString(String name) { + return fromString(name, VoiceAgentAvatarOutputProtocol.class); + } + + /** + * Gets known VoiceAgentAvatarOutputProtocol values. + * + * @return known VoiceAgentAvatarOutputProtocol values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentAvatarOutputProtocol.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java new file mode 100644 index 000000000000..cdc16ba863d1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java @@ -0,0 +1,276 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Avatar placement and motion settings. + */ +@Fluent +public final class VoiceAgentAvatarScene implements JsonSerializable { + + /* + * The zoom property. + */ + @Generated + private Double zoom; + + /* + * The position_x property. + */ + @Generated + private Double positionX; + + /* + * The position_y property. + */ + @Generated + private Double positionY; + + /* + * The rotation_x property. + */ + @Generated + private Double rotationX; + + /* + * The rotation_y property. + */ + @Generated + private Double rotationY; + + /* + * The rotation_z property. + */ + @Generated + private Double rotationZ; + + /* + * The amplitude property. + */ + @Generated + private Double amplitude; + + /** + * Creates an instance of VoiceAgentAvatarScene class. + */ + @Generated + public VoiceAgentAvatarScene() { + } + + /** + * Get the zoom property: The zoom property. + * + * @return the zoom value. + */ + @Generated + public Double getZoom() { + return this.zoom; + } + + /** + * Set the zoom property: The zoom property. + * + * @param zoom the zoom value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setZoom(Double zoom) { + this.zoom = zoom; + return this; + } + + /** + * Get the positionX property: The position_x property. + * + * @return the positionX value. + */ + @Generated + public Double getPositionX() { + return this.positionX; + } + + /** + * Set the positionX property: The position_x property. + * + * @param positionX the positionX value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setPositionX(Double positionX) { + this.positionX = positionX; + return this; + } + + /** + * Get the positionY property: The position_y property. + * + * @return the positionY value. + */ + @Generated + public Double getPositionY() { + return this.positionY; + } + + /** + * Set the positionY property: The position_y property. + * + * @param positionY the positionY value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setPositionY(Double positionY) { + this.positionY = positionY; + return this; + } + + /** + * Get the rotationX property: The rotation_x property. + * + * @return the rotationX value. + */ + @Generated + public Double getRotationX() { + return this.rotationX; + } + + /** + * Set the rotationX property: The rotation_x property. + * + * @param rotationX the rotationX value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setRotationX(Double rotationX) { + this.rotationX = rotationX; + return this; + } + + /** + * Get the rotationY property: The rotation_y property. + * + * @return the rotationY value. + */ + @Generated + public Double getRotationY() { + return this.rotationY; + } + + /** + * Set the rotationY property: The rotation_y property. + * + * @param rotationY the rotationY value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setRotationY(Double rotationY) { + this.rotationY = rotationY; + return this; + } + + /** + * Get the rotationZ property: The rotation_z property. + * + * @return the rotationZ value. + */ + @Generated + public Double getRotationZ() { + return this.rotationZ; + } + + /** + * Set the rotationZ property: The rotation_z property. + * + * @param rotationZ the rotationZ value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setRotationZ(Double rotationZ) { + this.rotationZ = rotationZ; + return this; + } + + /** + * Get the amplitude property: The amplitude property. + * + * @return the amplitude value. + */ + @Generated + public Double getAmplitude() { + return this.amplitude; + } + + /** + * Set the amplitude property: The amplitude property. + * + * @param amplitude the amplitude value to set. + * @return the VoiceAgentAvatarScene object itself. + */ + @Generated + public VoiceAgentAvatarScene setAmplitude(Double amplitude) { + this.amplitude = amplitude; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("zoom", this.zoom); + jsonWriter.writeNumberField("position_x", this.positionX); + jsonWriter.writeNumberField("position_y", this.positionY); + jsonWriter.writeNumberField("rotation_x", this.rotationX); + jsonWriter.writeNumberField("rotation_y", this.rotationY); + jsonWriter.writeNumberField("rotation_z", this.rotationZ); + jsonWriter.writeNumberField("amplitude", this.amplitude); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAvatarScene from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAvatarScene if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAvatarScene. + */ + @Generated + public static VoiceAgentAvatarScene fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAvatarScene deserializedVoiceAgentAvatarScene = new VoiceAgentAvatarScene(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("zoom".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.zoom = reader.getNullable(JsonReader::getDouble); + } else if ("position_x".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.positionX = reader.getNullable(JsonReader::getDouble); + } else if ("position_y".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.positionY = reader.getNullable(JsonReader::getDouble); + } else if ("rotation_x".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.rotationX = reader.getNullable(JsonReader::getDouble); + } else if ("rotation_y".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.rotationY = reader.getNullable(JsonReader::getDouble); + } else if ("rotation_z".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.rotationZ = reader.getNullable(JsonReader::getDouble); + } else if ("amplitude".equals(fieldName)) { + deserializedVoiceAgentAvatarScene.amplitude = reader.getNullable(JsonReader::getDouble); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAvatarScene; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java new file mode 100644 index 000000000000..192f3b8d5ba1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The avatar type. + */ +public final class VoiceAgentAvatarType extends ExpandableStringEnum { + + /** + * Static value video_avatar for VoiceAgentAvatarType. + */ + @Generated + public static final VoiceAgentAvatarType VIDEO_AVATAR = fromString("video_avatar"); + + /** + * Static value photo_avatar for VoiceAgentAvatarType. + */ + @Generated + public static final VoiceAgentAvatarType PHOTO_AVATAR = fromString("photo_avatar"); + + /** + * Creates a new instance of VoiceAgentAvatarType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentAvatarType() { + } + + /** + * Creates or finds a VoiceAgentAvatarType from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentAvatarType. + */ + @Generated + public static VoiceAgentAvatarType fromString(String name) { + return fromString(name, VoiceAgentAvatarType.class); + } + + /** + * Gets known VoiceAgentAvatarType values. + * + * @return known VoiceAgentAvatarType values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentAvatarType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java new file mode 100644 index 000000000000..73cadd0e653d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The avatar video background. + */ +@Fluent +public final class VoiceAgentAvatarVideoBackground implements JsonSerializable { + + /* + * The image_url property. + */ + @Generated + private String imageUrl; + + /* + * The color property. + */ + @Generated + private String color; + + /** + * Creates an instance of VoiceAgentAvatarVideoBackground class. + */ + @Generated + public VoiceAgentAvatarVideoBackground() { + } + + /** + * Get the imageUrl property: The image_url property. + * + * @return the imageUrl value. + */ + @Generated + public String getImageUrl() { + return this.imageUrl; + } + + /** + * Set the imageUrl property: The image_url property. + * + * @param imageUrl the imageUrl value to set. + * @return the VoiceAgentAvatarVideoBackground object itself. + */ + @Generated + public VoiceAgentAvatarVideoBackground setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + return this; + } + + /** + * Get the color property: The color property. + * + * @return the color value. + */ + @Generated + public String getColor() { + return this.color; + } + + /** + * Set the color property: The color property. + * + * @param color the color value to set. + * @return the VoiceAgentAvatarVideoBackground object itself. + */ + @Generated + public VoiceAgentAvatarVideoBackground setColor(String color) { + this.color = color; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("image_url", this.imageUrl); + jsonWriter.writeStringField("color", this.color); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAvatarVideoBackground from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAvatarVideoBackground if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAvatarVideoBackground. + */ + @Generated + public static VoiceAgentAvatarVideoBackground fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAvatarVideoBackground deserializedVoiceAgentAvatarVideoBackground + = new VoiceAgentAvatarVideoBackground(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("image_url".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoBackground.imageUrl = reader.getString(); + } else if ("color".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoBackground.color = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAvatarVideoBackground; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java new file mode 100644 index 000000000000..e12a3e7b745d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * The rectangular crop applied to avatar video. + */ +@Immutable +public final class VoiceAgentAvatarVideoCrop implements JsonSerializable { + + /* + * The bottom_right property. + */ + @Generated + private final List bottomRight; + + /* + * The top_left property. + */ + @Generated + private final List topLeft; + + /** + * Creates an instance of VoiceAgentAvatarVideoCrop class. + * + * @param bottomRight the bottomRight value to set. + * @param topLeft the topLeft value to set. + */ + @Generated + public VoiceAgentAvatarVideoCrop(List bottomRight, List topLeft) { + this.bottomRight = bottomRight; + this.topLeft = topLeft; + } + + /** + * Get the bottomRight property: The bottom_right property. + * + * @return the bottomRight value. + */ + @Generated + public List getBottomRight() { + return this.bottomRight; + } + + /** + * Get the topLeft property: The top_left property. + * + * @return the topLeft value. + */ + @Generated + public List getTopLeft() { + return this.topLeft; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("bottom_right", this.bottomRight, (writer, element) -> writer.writeInt(element)); + jsonWriter.writeArrayField("top_left", this.topLeft, (writer, element) -> writer.writeInt(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAvatarVideoCrop from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAvatarVideoCrop if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentAvatarVideoCrop. + */ + @Generated + public static VoiceAgentAvatarVideoCrop fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + List bottomRight = null; + List topLeft = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("bottom_right".equals(fieldName)) { + bottomRight = reader.readArray(reader1 -> reader1.getInt()); + } else if ("top_left".equals(fieldName)) { + topLeft = reader.readArray(reader1 -> reader1.getInt()); + } else { + reader.skipChildren(); + } + } + return new VoiceAgentAvatarVideoCrop(bottomRight, topLeft); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java new file mode 100644 index 000000000000..97901584371a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Avatar video encoder and presentation settings. + */ +@Fluent +public final class VoiceAgentAvatarVideoParams implements JsonSerializable { + + /* + * The target video bitrate in bits per second. + */ + @Generated + private Integer bitrate; + + /* + * The crop property. + */ + @Generated + private VoiceAgentAvatarVideoCrop crop; + + /* + * The resolution property. + */ + @Generated + private VoiceAgentAvatarVideoResolution resolution; + + /* + * The background property. + */ + @Generated + private VoiceAgentAvatarVideoBackground background; + + /* + * The gop_size property. + */ + @Generated + private Integer gopSize; + + /** + * Creates an instance of VoiceAgentAvatarVideoParams class. + */ + @Generated + public VoiceAgentAvatarVideoParams() { + } + + /** + * Get the bitrate property: The target video bitrate in bits per second. + * + * @return the bitrate value. + */ + @Generated + public Integer getBitrate() { + return this.bitrate; + } + + /** + * Set the bitrate property: The target video bitrate in bits per second. + * + * @param bitrate the bitrate value to set. + * @return the VoiceAgentAvatarVideoParams object itself. + */ + @Generated + public VoiceAgentAvatarVideoParams setBitrate(Integer bitrate) { + this.bitrate = bitrate; + return this; + } + + /** + * Get the crop property: The crop property. + * + * @return the crop value. + */ + @Generated + public VoiceAgentAvatarVideoCrop getCrop() { + return this.crop; + } + + /** + * Set the crop property: The crop property. + * + * @param crop the crop value to set. + * @return the VoiceAgentAvatarVideoParams object itself. + */ + @Generated + public VoiceAgentAvatarVideoParams setCrop(VoiceAgentAvatarVideoCrop crop) { + this.crop = crop; + return this; + } + + /** + * Get the resolution property: The resolution property. + * + * @return the resolution value. + */ + @Generated + public VoiceAgentAvatarVideoResolution getResolution() { + return this.resolution; + } + + /** + * Set the resolution property: The resolution property. + * + * @param resolution the resolution value to set. + * @return the VoiceAgentAvatarVideoParams object itself. + */ + @Generated + public VoiceAgentAvatarVideoParams setResolution(VoiceAgentAvatarVideoResolution resolution) { + this.resolution = resolution; + return this; + } + + /** + * Get the background property: The background property. + * + * @return the background value. + */ + @Generated + public VoiceAgentAvatarVideoBackground getBackground() { + return this.background; + } + + /** + * Set the background property: The background property. + * + * @param background the background value to set. + * @return the VoiceAgentAvatarVideoParams object itself. + */ + @Generated + public VoiceAgentAvatarVideoParams setBackground(VoiceAgentAvatarVideoBackground background) { + this.background = background; + return this; + } + + /** + * Get the gopSize property: The gop_size property. + * + * @return the gopSize value. + */ + @Generated + public Integer getGopSize() { + return this.gopSize; + } + + /** + * Set the gopSize property: The gop_size property. + * + * @param gopSize the gopSize value to set. + * @return the VoiceAgentAvatarVideoParams object itself. + */ + @Generated + public VoiceAgentAvatarVideoParams setGopSize(Integer gopSize) { + this.gopSize = gopSize; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("bitrate", this.bitrate); + jsonWriter.writeJsonField("crop", this.crop); + jsonWriter.writeJsonField("resolution", this.resolution); + jsonWriter.writeJsonField("background", this.background); + jsonWriter.writeNumberField("gop_size", this.gopSize); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAvatarVideoParams from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAvatarVideoParams if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAvatarVideoParams. + */ + @Generated + public static VoiceAgentAvatarVideoParams fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAvatarVideoParams deserializedVoiceAgentAvatarVideoParams = new VoiceAgentAvatarVideoParams(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("bitrate".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoParams.bitrate = reader.getNullable(JsonReader::getInt); + } else if ("crop".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoParams.crop = VoiceAgentAvatarVideoCrop.fromJson(reader); + } else if ("resolution".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoParams.resolution + = VoiceAgentAvatarVideoResolution.fromJson(reader); + } else if ("background".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoParams.background + = VoiceAgentAvatarVideoBackground.fromJson(reader); + } else if ("gop_size".equals(fieldName)) { + deserializedVoiceAgentAvatarVideoParams.gopSize = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAvatarVideoParams; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java new file mode 100644 index 000000000000..ca43ef458617 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java @@ -0,0 +1,104 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The avatar video resolution. + */ +@Immutable +public final class VoiceAgentAvatarVideoResolution implements JsonSerializable { + + /* + * The width property. + */ + @Generated + private final int width; + + /* + * The height property. + */ + @Generated + private final int height; + + /** + * Creates an instance of VoiceAgentAvatarVideoResolution class. + * + * @param width the width value to set. + * @param height the height value to set. + */ + @Generated + public VoiceAgentAvatarVideoResolution(int width, int height) { + this.width = width; + this.height = height; + } + + /** + * Get the width property: The width property. + * + * @return the width value. + */ + @Generated + public int getWidth() { + return this.width; + } + + /** + * Get the height property: The height property. + * + * @return the height value. + */ + @Generated + public int getHeight() { + return this.height; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeIntField("width", this.width); + jsonWriter.writeIntField("height", this.height); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAvatarVideoResolution from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAvatarVideoResolution if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentAvatarVideoResolution. + */ + @Generated + public static VoiceAgentAvatarVideoResolution fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + int width = 0; + int height = 0; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("width".equals(fieldName)) { + width = reader.getInt(); + } else if ("height".equals(fieldName)) { + height = reader.getInt(); + } else { + reader.skipChildren(); + } + } + return new VoiceAgentAvatarVideoResolution(width, height); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java new file mode 100644 index 000000000000..877f9057f0a9 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java @@ -0,0 +1,414 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * English-optimized Azure semantic voice activity detection. + */ +@Fluent +public final class VoiceAgentAzureSemanticVadEnTurnDetection extends VoiceAgentTurnDetectionConfig { + + /* + * The turn-detection strategy. + */ + @Generated + private VoiceAgentTurnDetectionType type = VoiceAgentTurnDetectionType.AZURE_SEMANTIC_VAD_EN; + + /* + * Activation threshold for voice activity detection, from 0 to 1. + */ + @Generated + private Double threshold; + + /* + * Audio to include before detected speech, in milliseconds. + */ + @Generated + private Long prefixPaddingMs; + + /* + * Silence required to end speech detection, in milliseconds. + */ + @Generated + private Long silenceDurationMs; + + /* + * Maximum idle time before the detector ends the turn, in milliseconds. + */ + @Generated + private Long idleTimeoutMs; + + /* + * Semantic end-of-utterance detection configuration. Set to null to disable it. + */ + @Generated + private VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection; + + /* + * Minimum speech duration required to trigger detection, in milliseconds. + */ + @Generated + private Long speechDurationMs; + + /* + * Whether filler words are removed from transcription. + */ + @Generated + private Boolean removeFillerWords; + + /* + * Whether a response is created automatically when speech stops. + */ + @Generated + private Boolean createResponse; + + /* + * Whether user speech may interrupt the agent's response. + */ + @Generated + private Boolean interruptResponse; + + /** + * Creates an instance of VoiceAgentAzureSemanticVadEnTurnDetection class. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection() { + } + + /** + * Get the type property: The turn-detection strategy. + * + * @return the type value. + */ + @Generated + @Override + public VoiceAgentTurnDetectionType getType() { + return this.type; + } + + /** + * Get the threshold property: Activation threshold for voice activity detection, from 0 to 1. + * + * @return the threshold value. + */ + @Generated + public Double getThreshold() { + return this.threshold; + } + + /** + * Set the threshold property: Activation threshold for voice activity detection, from 0 to 1. + * + * @param threshold the threshold value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setThreshold(Double threshold) { + this.threshold = threshold; + return this; + } + + /** + * Get the prefixPaddingMs property: Audio to include before detected speech, in milliseconds. + * + * @return the prefixPaddingMs value. + */ + @Generated + public Duration getPrefixPaddingMs() { + if (this.prefixPaddingMs == null) { + return null; + } + return Duration.ofMillis(this.prefixPaddingMs); + } + + /** + * Set the prefixPaddingMs property: Audio to include before detected speech, in milliseconds. + * + * @param prefixPaddingMs the prefixPaddingMs value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setPrefixPaddingMs(Duration prefixPaddingMs) { + if (prefixPaddingMs == null) { + this.prefixPaddingMs = null; + } else { + this.prefixPaddingMs = prefixPaddingMs.toMillis(); + } + return this; + } + + /** + * Get the silenceDurationMs property: Silence required to end speech detection, in milliseconds. + * + * @return the silenceDurationMs value. + */ + @Generated + public Duration getSilenceDurationMs() { + if (this.silenceDurationMs == null) { + return null; + } + return Duration.ofMillis(this.silenceDurationMs); + } + + /** + * Set the silenceDurationMs property: Silence required to end speech detection, in milliseconds. + * + * @param silenceDurationMs the silenceDurationMs value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setSilenceDurationMs(Duration silenceDurationMs) { + if (silenceDurationMs == null) { + this.silenceDurationMs = null; + } else { + this.silenceDurationMs = silenceDurationMs.toMillis(); + } + return this; + } + + /** + * Get the idleTimeoutMs property: Maximum idle time before the detector ends the turn, in milliseconds. + * + * @return the idleTimeoutMs value. + */ + @Generated + public Duration getIdleTimeoutMs() { + if (this.idleTimeoutMs == null) { + return null; + } + return Duration.ofMillis(this.idleTimeoutMs); + } + + /** + * Set the idleTimeoutMs property: Maximum idle time before the detector ends the turn, in milliseconds. + * + * @param idleTimeoutMs the idleTimeoutMs value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setIdleTimeoutMs(Duration idleTimeoutMs) { + if (idleTimeoutMs == null) { + this.idleTimeoutMs = null; + } else { + this.idleTimeoutMs = idleTimeoutMs.toMillis(); + } + return this; + } + + /** + * Get the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @return the endOfUtteranceDetection value. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection getEndOfUtteranceDetection() { + return this.endOfUtteranceDetection; + } + + /** + * Set the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @param endOfUtteranceDetection the endOfUtteranceDetection value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection + setEndOfUtteranceDetection(VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection) { + this.endOfUtteranceDetection = endOfUtteranceDetection; + return this; + } + + /** + * Get the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @return the speechDurationMs value. + */ + @Generated + public Duration getSpeechDurationMs() { + if (this.speechDurationMs == null) { + return null; + } + return Duration.ofMillis(this.speechDurationMs); + } + + /** + * Set the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @param speechDurationMs the speechDurationMs value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setSpeechDurationMs(Duration speechDurationMs) { + if (speechDurationMs == null) { + this.speechDurationMs = null; + } else { + this.speechDurationMs = speechDurationMs.toMillis(); + } + return this; + } + + /** + * Get the removeFillerWords property: Whether filler words are removed from transcription. + * + * @return the removeFillerWords value. + */ + @Generated + public Boolean isRemoveFillerWords() { + return this.removeFillerWords; + } + + /** + * Set the removeFillerWords property: Whether filler words are removed from transcription. + * + * @param removeFillerWords the removeFillerWords value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setRemoveFillerWords(Boolean removeFillerWords) { + this.removeFillerWords = removeFillerWords; + return this; + } + + /** + * Get the createResponse property: Whether a response is created automatically when speech stops. + * + * @return the createResponse value. + */ + @Generated + public Boolean isCreateResponse() { + return this.createResponse; + } + + /** + * Set the createResponse property: Whether a response is created automatically when speech stops. + * + * @param createResponse the createResponse value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setCreateResponse(Boolean createResponse) { + this.createResponse = createResponse; + return this; + } + + /** + * Get the interruptResponse property: Whether user speech may interrupt the agent's response. + * + * @return the interruptResponse value. + */ + @Generated + public Boolean isInterruptResponse() { + return this.interruptResponse; + } + + /** + * Set the interruptResponse property: Whether user speech may interrupt the agent's response. + * + * @param interruptResponse the interruptResponse value to set. + * @return the VoiceAgentAzureSemanticVadEnTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadEnTurnDetection setInterruptResponse(Boolean interruptResponse) { + this.interruptResponse = interruptResponse; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentAzureSemanticVadEnTurnDetection setAutoTruncate(Boolean autoTruncate) { + super.setAutoTruncate(autoTruncate); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("auto_truncate", isAutoTruncate()); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeNumberField("threshold", this.threshold); + jsonWriter.writeNumberField("prefix_padding_ms", this.prefixPaddingMs); + jsonWriter.writeNumberField("silence_duration_ms", this.silenceDurationMs); + jsonWriter.writeNumberField("idle_timeout_ms", this.idleTimeoutMs); + jsonWriter.writeJsonField("end_of_utterance_detection", this.endOfUtteranceDetection); + jsonWriter.writeNumberField("speech_duration_ms", this.speechDurationMs); + jsonWriter.writeBooleanField("remove_filler_words", this.removeFillerWords); + jsonWriter.writeBooleanField("create_response", this.createResponse); + jsonWriter.writeBooleanField("interrupt_response", this.interruptResponse); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAzureSemanticVadEnTurnDetection from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAzureSemanticVadEnTurnDetection if the JsonReader was pointing to an instance of + * it, or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAzureSemanticVadEnTurnDetection. + */ + @Generated + public static VoiceAgentAzureSemanticVadEnTurnDetection fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAzureSemanticVadEnTurnDetection deserializedVoiceAgentAzureSemanticVadEnTurnDetection + = new VoiceAgentAzureSemanticVadEnTurnDetection(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("auto_truncate".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection + .setAutoTruncate(reader.getNullable(JsonReader::getBoolean)); + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.type + = VoiceAgentTurnDetectionType.fromString(reader.getString()); + } else if ("threshold".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.threshold + = reader.getNullable(JsonReader::getDouble); + } else if ("prefix_padding_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.prefixPaddingMs + = reader.getNullable(JsonReader::getLong); + } else if ("silence_duration_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.silenceDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("idle_timeout_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.idleTimeoutMs + = reader.getNullable(JsonReader::getLong); + } else if ("end_of_utterance_detection".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.endOfUtteranceDetection + = VoiceAgentEndOfUtteranceDetection.fromJson(reader); + } else if ("speech_duration_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.speechDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("remove_filler_words".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.removeFillerWords + = reader.getNullable(JsonReader::getBoolean); + } else if ("create_response".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.createResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("interrupt_response".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadEnTurnDetection.interruptResponse + = reader.getNullable(JsonReader::getBoolean); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAzureSemanticVadEnTurnDetection; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java new file mode 100644 index 000000000000..0a247ffcf20d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java @@ -0,0 +1,448 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.util.List; + +/** + * Multilingual Azure semantic voice activity detection. + */ +@Fluent +public final class VoiceAgentAzureSemanticVadMultilingualTurnDetection extends VoiceAgentTurnDetectionConfig { + + /* + * The turn-detection strategy. + */ + @Generated + private VoiceAgentTurnDetectionType type = VoiceAgentTurnDetectionType.AZURE_SEMANTIC_VAD_MULTILINGUAL; + + /* + * Activation threshold for voice activity detection, from 0 to 1. + */ + @Generated + private Double threshold; + + /* + * Audio to include before detected speech, in milliseconds. + */ + @Generated + private Long prefixPaddingMs; + + /* + * Silence required to end speech detection, in milliseconds. + */ + @Generated + private Long silenceDurationMs; + + /* + * Maximum idle time before the detector ends the turn, in milliseconds. + */ + @Generated + private Long idleTimeoutMs; + + /* + * Semantic end-of-utterance detection configuration. Set to null to disable it. + */ + @Generated + private VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection; + + /* + * Minimum speech duration required to trigger detection, in milliseconds. + */ + @Generated + private Long speechDurationMs; + + /* + * Whether filler words are removed from transcription. + */ + @Generated + private Boolean removeFillerWords; + + /* + * Whether a response is created automatically when speech stops. + */ + @Generated + private Boolean createResponse; + + /* + * Whether user speech may interrupt the agent's response. + */ + @Generated + private Boolean interruptResponse; + + /* + * BCP-47 language codes used for speech detection. + */ + @Generated + private List languages; + + /** + * Creates an instance of VoiceAgentAzureSemanticVadMultilingualTurnDetection class. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection() { + } + + /** + * Get the type property: The turn-detection strategy. + * + * @return the type value. + */ + @Generated + @Override + public VoiceAgentTurnDetectionType getType() { + return this.type; + } + + /** + * Get the threshold property: Activation threshold for voice activity detection, from 0 to 1. + * + * @return the threshold value. + */ + @Generated + public Double getThreshold() { + return this.threshold; + } + + /** + * Set the threshold property: Activation threshold for voice activity detection, from 0 to 1. + * + * @param threshold the threshold value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setThreshold(Double threshold) { + this.threshold = threshold; + return this; + } + + /** + * Get the prefixPaddingMs property: Audio to include before detected speech, in milliseconds. + * + * @return the prefixPaddingMs value. + */ + @Generated + public Duration getPrefixPaddingMs() { + if (this.prefixPaddingMs == null) { + return null; + } + return Duration.ofMillis(this.prefixPaddingMs); + } + + /** + * Set the prefixPaddingMs property: Audio to include before detected speech, in milliseconds. + * + * @param prefixPaddingMs the prefixPaddingMs value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setPrefixPaddingMs(Duration prefixPaddingMs) { + if (prefixPaddingMs == null) { + this.prefixPaddingMs = null; + } else { + this.prefixPaddingMs = prefixPaddingMs.toMillis(); + } + return this; + } + + /** + * Get the silenceDurationMs property: Silence required to end speech detection, in milliseconds. + * + * @return the silenceDurationMs value. + */ + @Generated + public Duration getSilenceDurationMs() { + if (this.silenceDurationMs == null) { + return null; + } + return Duration.ofMillis(this.silenceDurationMs); + } + + /** + * Set the silenceDurationMs property: Silence required to end speech detection, in milliseconds. + * + * @param silenceDurationMs the silenceDurationMs value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setSilenceDurationMs(Duration silenceDurationMs) { + if (silenceDurationMs == null) { + this.silenceDurationMs = null; + } else { + this.silenceDurationMs = silenceDurationMs.toMillis(); + } + return this; + } + + /** + * Get the idleTimeoutMs property: Maximum idle time before the detector ends the turn, in milliseconds. + * + * @return the idleTimeoutMs value. + */ + @Generated + public Duration getIdleTimeoutMs() { + if (this.idleTimeoutMs == null) { + return null; + } + return Duration.ofMillis(this.idleTimeoutMs); + } + + /** + * Set the idleTimeoutMs property: Maximum idle time before the detector ends the turn, in milliseconds. + * + * @param idleTimeoutMs the idleTimeoutMs value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setIdleTimeoutMs(Duration idleTimeoutMs) { + if (idleTimeoutMs == null) { + this.idleTimeoutMs = null; + } else { + this.idleTimeoutMs = idleTimeoutMs.toMillis(); + } + return this; + } + + /** + * Get the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @return the endOfUtteranceDetection value. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection getEndOfUtteranceDetection() { + return this.endOfUtteranceDetection; + } + + /** + * Set the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @param endOfUtteranceDetection the endOfUtteranceDetection value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection + setEndOfUtteranceDetection(VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection) { + this.endOfUtteranceDetection = endOfUtteranceDetection; + return this; + } + + /** + * Get the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @return the speechDurationMs value. + */ + @Generated + public Duration getSpeechDurationMs() { + if (this.speechDurationMs == null) { + return null; + } + return Duration.ofMillis(this.speechDurationMs); + } + + /** + * Set the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @param speechDurationMs the speechDurationMs value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setSpeechDurationMs(Duration speechDurationMs) { + if (speechDurationMs == null) { + this.speechDurationMs = null; + } else { + this.speechDurationMs = speechDurationMs.toMillis(); + } + return this; + } + + /** + * Get the removeFillerWords property: Whether filler words are removed from transcription. + * + * @return the removeFillerWords value. + */ + @Generated + public Boolean isRemoveFillerWords() { + return this.removeFillerWords; + } + + /** + * Set the removeFillerWords property: Whether filler words are removed from transcription. + * + * @param removeFillerWords the removeFillerWords value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setRemoveFillerWords(Boolean removeFillerWords) { + this.removeFillerWords = removeFillerWords; + return this; + } + + /** + * Get the createResponse property: Whether a response is created automatically when speech stops. + * + * @return the createResponse value. + */ + @Generated + public Boolean isCreateResponse() { + return this.createResponse; + } + + /** + * Set the createResponse property: Whether a response is created automatically when speech stops. + * + * @param createResponse the createResponse value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setCreateResponse(Boolean createResponse) { + this.createResponse = createResponse; + return this; + } + + /** + * Get the interruptResponse property: Whether user speech may interrupt the agent's response. + * + * @return the interruptResponse value. + */ + @Generated + public Boolean isInterruptResponse() { + return this.interruptResponse; + } + + /** + * Set the interruptResponse property: Whether user speech may interrupt the agent's response. + * + * @param interruptResponse the interruptResponse value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setInterruptResponse(Boolean interruptResponse) { + this.interruptResponse = interruptResponse; + return this; + } + + /** + * Get the languages property: BCP-47 language codes used for speech detection. + * + * @return the languages value. + */ + @Generated + public List getLanguages() { + return this.languages; + } + + /** + * Set the languages property: BCP-47 language codes used for speech detection. + * + * @param languages the languages value to set. + * @return the VoiceAgentAzureSemanticVadMultilingualTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setLanguages(List languages) { + this.languages = languages; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentAzureSemanticVadMultilingualTurnDetection setAutoTruncate(Boolean autoTruncate) { + super.setAutoTruncate(autoTruncate); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("auto_truncate", isAutoTruncate()); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeNumberField("threshold", this.threshold); + jsonWriter.writeNumberField("prefix_padding_ms", this.prefixPaddingMs); + jsonWriter.writeNumberField("silence_duration_ms", this.silenceDurationMs); + jsonWriter.writeNumberField("idle_timeout_ms", this.idleTimeoutMs); + jsonWriter.writeJsonField("end_of_utterance_detection", this.endOfUtteranceDetection); + jsonWriter.writeNumberField("speech_duration_ms", this.speechDurationMs); + jsonWriter.writeBooleanField("remove_filler_words", this.removeFillerWords); + jsonWriter.writeBooleanField("create_response", this.createResponse); + jsonWriter.writeBooleanField("interrupt_response", this.interruptResponse); + jsonWriter.writeArrayField("languages", this.languages, (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAzureSemanticVadMultilingualTurnDetection from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAzureSemanticVadMultilingualTurnDetection if the JsonReader was pointing to an + * instance of it, or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAzureSemanticVadMultilingualTurnDetection. + */ + @Generated + public static VoiceAgentAzureSemanticVadMultilingualTurnDetection fromJson(JsonReader jsonReader) + throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAzureSemanticVadMultilingualTurnDetection deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection + = new VoiceAgentAzureSemanticVadMultilingualTurnDetection(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("auto_truncate".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection + .setAutoTruncate(reader.getNullable(JsonReader::getBoolean)); + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.type + = VoiceAgentTurnDetectionType.fromString(reader.getString()); + } else if ("threshold".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.threshold + = reader.getNullable(JsonReader::getDouble); + } else if ("prefix_padding_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.prefixPaddingMs + = reader.getNullable(JsonReader::getLong); + } else if ("silence_duration_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.silenceDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("idle_timeout_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.idleTimeoutMs + = reader.getNullable(JsonReader::getLong); + } else if ("end_of_utterance_detection".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.endOfUtteranceDetection + = VoiceAgentEndOfUtteranceDetection.fromJson(reader); + } else if ("speech_duration_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.speechDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("remove_filler_words".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.removeFillerWords + = reader.getNullable(JsonReader::getBoolean); + } else if ("create_response".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.createResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("interrupt_response".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.interruptResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("languages".equals(fieldName)) { + List languages = reader.readArray(reader1 -> reader1.getString()); + deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection.languages = languages; + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAzureSemanticVadMultilingualTurnDetection; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java new file mode 100644 index 000000000000..86509376a603 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java @@ -0,0 +1,447 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.util.List; + +/** + * Azure semantic voice activity detection. + */ +@Fluent +public final class VoiceAgentAzureSemanticVadTurnDetection extends VoiceAgentTurnDetectionConfig { + + /* + * The turn-detection strategy. + */ + @Generated + private VoiceAgentTurnDetectionType type = VoiceAgentTurnDetectionType.AZURE_SEMANTIC_VAD; + + /* + * Activation threshold for voice activity detection, from 0 to 1. + */ + @Generated + private Double threshold; + + /* + * Audio to include before detected speech, in milliseconds. + */ + @Generated + private Long prefixPaddingMs; + + /* + * Silence required to end speech detection, in milliseconds. + */ + @Generated + private Long silenceDurationMs; + + /* + * Maximum idle time before the detector ends the turn, in milliseconds. + */ + @Generated + private Long idleTimeoutMs; + + /* + * Semantic end-of-utterance detection configuration. Set to null to disable it. + */ + @Generated + private VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection; + + /* + * Minimum speech duration required to trigger detection, in milliseconds. + */ + @Generated + private Long speechDurationMs; + + /* + * Whether filler words are removed from transcription. + */ + @Generated + private Boolean removeFillerWords; + + /* + * Whether a response is created automatically when speech stops. + */ + @Generated + private Boolean createResponse; + + /* + * Whether user speech may interrupt the agent's response. + */ + @Generated + private Boolean interruptResponse; + + /* + * BCP-47 language codes used for speech detection. + */ + @Generated + private List languages; + + /** + * Creates an instance of VoiceAgentAzureSemanticVadTurnDetection class. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection() { + } + + /** + * Get the type property: The turn-detection strategy. + * + * @return the type value. + */ + @Generated + @Override + public VoiceAgentTurnDetectionType getType() { + return this.type; + } + + /** + * Get the threshold property: Activation threshold for voice activity detection, from 0 to 1. + * + * @return the threshold value. + */ + @Generated + public Double getThreshold() { + return this.threshold; + } + + /** + * Set the threshold property: Activation threshold for voice activity detection, from 0 to 1. + * + * @param threshold the threshold value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setThreshold(Double threshold) { + this.threshold = threshold; + return this; + } + + /** + * Get the prefixPaddingMs property: Audio to include before detected speech, in milliseconds. + * + * @return the prefixPaddingMs value. + */ + @Generated + public Duration getPrefixPaddingMs() { + if (this.prefixPaddingMs == null) { + return null; + } + return Duration.ofMillis(this.prefixPaddingMs); + } + + /** + * Set the prefixPaddingMs property: Audio to include before detected speech, in milliseconds. + * + * @param prefixPaddingMs the prefixPaddingMs value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setPrefixPaddingMs(Duration prefixPaddingMs) { + if (prefixPaddingMs == null) { + this.prefixPaddingMs = null; + } else { + this.prefixPaddingMs = prefixPaddingMs.toMillis(); + } + return this; + } + + /** + * Get the silenceDurationMs property: Silence required to end speech detection, in milliseconds. + * + * @return the silenceDurationMs value. + */ + @Generated + public Duration getSilenceDurationMs() { + if (this.silenceDurationMs == null) { + return null; + } + return Duration.ofMillis(this.silenceDurationMs); + } + + /** + * Set the silenceDurationMs property: Silence required to end speech detection, in milliseconds. + * + * @param silenceDurationMs the silenceDurationMs value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setSilenceDurationMs(Duration silenceDurationMs) { + if (silenceDurationMs == null) { + this.silenceDurationMs = null; + } else { + this.silenceDurationMs = silenceDurationMs.toMillis(); + } + return this; + } + + /** + * Get the idleTimeoutMs property: Maximum idle time before the detector ends the turn, in milliseconds. + * + * @return the idleTimeoutMs value. + */ + @Generated + public Duration getIdleTimeoutMs() { + if (this.idleTimeoutMs == null) { + return null; + } + return Duration.ofMillis(this.idleTimeoutMs); + } + + /** + * Set the idleTimeoutMs property: Maximum idle time before the detector ends the turn, in milliseconds. + * + * @param idleTimeoutMs the idleTimeoutMs value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setIdleTimeoutMs(Duration idleTimeoutMs) { + if (idleTimeoutMs == null) { + this.idleTimeoutMs = null; + } else { + this.idleTimeoutMs = idleTimeoutMs.toMillis(); + } + return this; + } + + /** + * Get the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @return the endOfUtteranceDetection value. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection getEndOfUtteranceDetection() { + return this.endOfUtteranceDetection; + } + + /** + * Set the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @param endOfUtteranceDetection the endOfUtteranceDetection value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection + setEndOfUtteranceDetection(VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection) { + this.endOfUtteranceDetection = endOfUtteranceDetection; + return this; + } + + /** + * Get the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @return the speechDurationMs value. + */ + @Generated + public Duration getSpeechDurationMs() { + if (this.speechDurationMs == null) { + return null; + } + return Duration.ofMillis(this.speechDurationMs); + } + + /** + * Set the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @param speechDurationMs the speechDurationMs value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setSpeechDurationMs(Duration speechDurationMs) { + if (speechDurationMs == null) { + this.speechDurationMs = null; + } else { + this.speechDurationMs = speechDurationMs.toMillis(); + } + return this; + } + + /** + * Get the removeFillerWords property: Whether filler words are removed from transcription. + * + * @return the removeFillerWords value. + */ + @Generated + public Boolean isRemoveFillerWords() { + return this.removeFillerWords; + } + + /** + * Set the removeFillerWords property: Whether filler words are removed from transcription. + * + * @param removeFillerWords the removeFillerWords value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setRemoveFillerWords(Boolean removeFillerWords) { + this.removeFillerWords = removeFillerWords; + return this; + } + + /** + * Get the createResponse property: Whether a response is created automatically when speech stops. + * + * @return the createResponse value. + */ + @Generated + public Boolean isCreateResponse() { + return this.createResponse; + } + + /** + * Set the createResponse property: Whether a response is created automatically when speech stops. + * + * @param createResponse the createResponse value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setCreateResponse(Boolean createResponse) { + this.createResponse = createResponse; + return this; + } + + /** + * Get the interruptResponse property: Whether user speech may interrupt the agent's response. + * + * @return the interruptResponse value. + */ + @Generated + public Boolean isInterruptResponse() { + return this.interruptResponse; + } + + /** + * Set the interruptResponse property: Whether user speech may interrupt the agent's response. + * + * @param interruptResponse the interruptResponse value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setInterruptResponse(Boolean interruptResponse) { + this.interruptResponse = interruptResponse; + return this; + } + + /** + * Get the languages property: BCP-47 language codes used for speech detection. + * + * @return the languages value. + */ + @Generated + public List getLanguages() { + return this.languages; + } + + /** + * Set the languages property: BCP-47 language codes used for speech detection. + * + * @param languages the languages value to set. + * @return the VoiceAgentAzureSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentAzureSemanticVadTurnDetection setLanguages(List languages) { + this.languages = languages; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentAzureSemanticVadTurnDetection setAutoTruncate(Boolean autoTruncate) { + super.setAutoTruncate(autoTruncate); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("auto_truncate", isAutoTruncate()); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeNumberField("threshold", this.threshold); + jsonWriter.writeNumberField("prefix_padding_ms", this.prefixPaddingMs); + jsonWriter.writeNumberField("silence_duration_ms", this.silenceDurationMs); + jsonWriter.writeNumberField("idle_timeout_ms", this.idleTimeoutMs); + jsonWriter.writeJsonField("end_of_utterance_detection", this.endOfUtteranceDetection); + jsonWriter.writeNumberField("speech_duration_ms", this.speechDurationMs); + jsonWriter.writeBooleanField("remove_filler_words", this.removeFillerWords); + jsonWriter.writeBooleanField("create_response", this.createResponse); + jsonWriter.writeBooleanField("interrupt_response", this.interruptResponse); + jsonWriter.writeArrayField("languages", this.languages, (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentAzureSemanticVadTurnDetection from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentAzureSemanticVadTurnDetection if the JsonReader was pointing to an instance of + * it, or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentAzureSemanticVadTurnDetection. + */ + @Generated + public static VoiceAgentAzureSemanticVadTurnDetection fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentAzureSemanticVadTurnDetection deserializedVoiceAgentAzureSemanticVadTurnDetection + = new VoiceAgentAzureSemanticVadTurnDetection(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("auto_truncate".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection + .setAutoTruncate(reader.getNullable(JsonReader::getBoolean)); + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.type + = VoiceAgentTurnDetectionType.fromString(reader.getString()); + } else if ("threshold".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.threshold + = reader.getNullable(JsonReader::getDouble); + } else if ("prefix_padding_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.prefixPaddingMs + = reader.getNullable(JsonReader::getLong); + } else if ("silence_duration_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.silenceDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("idle_timeout_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.idleTimeoutMs + = reader.getNullable(JsonReader::getLong); + } else if ("end_of_utterance_detection".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.endOfUtteranceDetection + = VoiceAgentEndOfUtteranceDetection.fromJson(reader); + } else if ("speech_duration_ms".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.speechDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("remove_filler_words".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.removeFillerWords + = reader.getNullable(JsonReader::getBoolean); + } else if ("create_response".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.createResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("interrupt_response".equals(fieldName)) { + deserializedVoiceAgentAzureSemanticVadTurnDetection.interruptResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("languages".equals(fieldName)) { + List languages = reader.readArray(reader1 -> reader1.getString()); + deserializedVoiceAgentAzureSemanticVadTurnDetection.languages = languages; + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentAzureSemanticVadTurnDetection; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java new file mode 100644 index 000000000000..8182da3eedf1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java @@ -0,0 +1,653 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * The voice agent definition. Its configuration (model, instructions, audio, tools, and optional avatar) drives a + * managed speech-to-speech experience. Establish realtime voice sessions through + * `GET /agents/{agent_name}/endpoint/protocols/voice`. Every create or update produces a new immutable version. + */ +@Fluent +public final class VoiceAgentDefinition extends AgentDefinition { + + /* + * The kind property. + */ + @Generated + private AgentKind kind = AgentKind.VOICE; + + /* + * How the model backing this agent is served. Together with `model`, this selects the model up front. `managed` + * uses a service-managed model; `self_deployed` uses the customer's own Foundry deployment. This is independent of + * the architecture (realtime or cascaded), which the service derives from the selected model. + */ + @Generated + private final VoiceModelType modelType; + + /* + * The model to use for this agent, paired with `model_type`: the service-managed model name when `model_type` is + * `managed`, or the customer's Foundry deployment name when `model_type` is `self_deployed`. The model must support + * realtime or cascaded voice. The service derives the architecture from the selected model. + */ + @Generated + private final String model; + + /* + * 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. + */ + @Generated + private String instructions; + + /* + * 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. + */ + @Generated + private VoiceAgentGreetingConfig greeting; + + /* + * The audio configuration, including input and output formats, voice, turn detection, noise reduction, and + * transcription. These values are session defaults; a client may override supported fields when connecting. + */ + @Generated + private VoiceAgentAudioConfig audio; + + /* + * The output modalities the agent produces. Defaults to `["audio"]`. `animation` and `avatar` are available + * when an avatar is configured. + */ + @Generated + private List outputModalities; + + /* + * The maximum output-token count for one response. + */ + @Generated + private BinaryData maxOutputTokens; + + /* + * Additional fields to include in service outputs. + */ + @Generated + private List include; + + /* + * Interim-response settings for latency and tool execution. + */ + @Generated + private VoiceAgentInterimResponseConfig interimResponse; + + /* + * Optional avatar configuration. These values are session defaults and may be overridden when connecting. + */ + @Generated + private VoiceAgentAvatarConfig avatar; + + /* + * The tools the voice agent may use. Supported tool kinds are `function` (executed by the client), `mcp`, + * `system` (service-managed session controls), and `toolbox`. Server-side tools such as `web_search`, + * `azure_ai_search`, and `openapi` are provided through a toolbox rather than declared directly. + */ + @Generated + private List tools; + + /* + * How the model chooses tools for generated responses. `none` prevents tool calls, `auto` lets the model decide, + * `required` requires at least one tool call, and a specific function or MCP tool can be selected with an object. + * Defaults to `auto`. + */ + @Generated + private BinaryData toolChoice; + + /* + * Whether the model may call multiple tools in parallel. + */ + @Generated + private Boolean parallelToolCalls; + + /* + * Set of structured inputs that participate in prompt template substitution, rendered per session before the live + * session starts. + */ + @Generated + private Map structuredInputs; + + /* + * Whether conversations with this agent are persisted. A single, all-or-nothing persistence switch that defaults to + * `false` (privacy-safe: off by default). When `true`, Foundry persists the full conversation — the + * transcript/event + * timeline and raw audio. When `false`, nothing is persisted and no conversation is surfaced. There is no separate + * audio-logging control; audio is persisted only as part of this switch. Latency/performance telemetry (e.g. + * time-to-first-audio, inter-token latency, interruption) is observability-only (customer trace / App Insights) and + * is not part of the persisted conversation content. + */ + @Generated + private Boolean store; + + /** + * Creates an instance of VoiceAgentDefinition class. + * + * @param modelType the modelType value to set. + * @param model the model value to set. + */ + @Generated + public VoiceAgentDefinition(VoiceModelType modelType, String model) { + this.modelType = modelType; + this.model = model; + } + + /** + * Get the kind property: The kind property. + * + * @return the kind value. + */ + @Generated + @Override + public AgentKind getKind() { + return this.kind; + } + + /** + * Get the modelType property: How the model backing this agent is served. Together with `model`, this selects the + * model up front. `managed` uses a service-managed model; `self_deployed` uses the customer's own Foundry + * deployment. This is independent of the architecture (realtime or cascaded), which the service derives from the + * selected model. + * + * @return the modelType value. + */ + @Generated + public VoiceModelType getModelType() { + return this.modelType; + } + + /** + * Get the model property: The model to use for this agent, paired with `model_type`: the service-managed model name + * when `model_type` is `managed`, or the customer's Foundry deployment name when `model_type` is `self_deployed`. + * The model must support realtime or cascaded voice. The service derives the architecture from the selected model. + * + * @return the model value. + */ + @Generated + public String getModel() { + return this.model; + } + + /** + * Get the instructions property: 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. + * + * @return the instructions value. + */ + @Generated + public String getInstructions() { + return this.instructions; + } + + /** + * Set the instructions property: 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. + * + * @param instructions the instructions value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setInstructions(String instructions) { + this.instructions = instructions; + return this; + } + + /** + * Get the greeting property: 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. + * + * @return the greeting value. + */ + @Generated + public VoiceAgentGreetingConfig getGreeting() { + return this.greeting; + } + + /** + * Set the greeting property: 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. + * + * @param greeting the greeting value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setGreeting(VoiceAgentGreetingConfig greeting) { + this.greeting = greeting; + return this; + } + + /** + * Get the audio property: The audio configuration, including input and output formats, voice, turn detection, noise + * reduction, and + * transcription. These values are session defaults; a client may override supported fields when connecting. + * + * @return the audio value. + */ + @Generated + public VoiceAgentAudioConfig getAudio() { + return this.audio; + } + + /** + * Set the audio property: The audio configuration, including input and output formats, voice, turn detection, noise + * reduction, and + * transcription. These values are session defaults; a client may override supported fields when connecting. + * + * @param audio the audio value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setAudio(VoiceAgentAudioConfig audio) { + this.audio = audio; + return this; + } + + /** + * Get the outputModalities property: The output modalities the agent produces. Defaults to `["audio"]`. `animation` + * and `avatar` are available + * when an avatar is configured. + * + * @return the outputModalities value. + */ + @Generated + public List getOutputModalities() { + return this.outputModalities; + } + + /** + * Set the outputModalities property: The output modalities the agent produces. Defaults to `["audio"]`. `animation` + * and `avatar` are available + * when an avatar is configured. + * + * @param outputModalities the outputModalities value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setOutputModalities(List outputModalities) { + this.outputModalities = outputModalities; + return this; + } + + /** + * Get the maxOutputTokens property: The maximum output-token count for one response. + * + * @return the maxOutputTokens value. + */ + @Generated + public BinaryData getMaxOutputTokens() { + return this.maxOutputTokens; + } + + /** + * Set the maxOutputTokens property: The maximum output-token count for one response. + * + * @param maxOutputTokens the maxOutputTokens value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setMaxOutputTokens(BinaryData maxOutputTokens) { + this.maxOutputTokens = maxOutputTokens; + return this; + } + + /** + * Get the include property: Additional fields to include in service outputs. + * + * @return the include value. + */ + @Generated + public List getInclude() { + return this.include; + } + + /** + * Set the include property: Additional fields to include in service outputs. + * + * @param include the include value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setInclude(List include) { + this.include = include; + return this; + } + + /** + * Get the interimResponse property: Interim-response settings for latency and tool execution. + * + * @return the interimResponse value. + */ + @Generated + public VoiceAgentInterimResponseConfig getInterimResponse() { + return this.interimResponse; + } + + /** + * Set the interimResponse property: Interim-response settings for latency and tool execution. + * + * @param interimResponse the interimResponse value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setInterimResponse(VoiceAgentInterimResponseConfig interimResponse) { + this.interimResponse = interimResponse; + return this; + } + + /** + * Get the avatar property: Optional avatar configuration. These values are session defaults and may be overridden + * when connecting. + * + * @return the avatar value. + */ + @Generated + public VoiceAgentAvatarConfig getAvatar() { + return this.avatar; + } + + /** + * Set the avatar property: Optional avatar configuration. These values are session defaults and may be overridden + * when connecting. + * + * @param avatar the avatar value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setAvatar(VoiceAgentAvatarConfig avatar) { + this.avatar = avatar; + return this; + } + + /** + * Get the tools property: The tools the voice agent may use. Supported tool kinds are `function` (executed by the + * client), `mcp`, + * `system` (service-managed session controls), and `toolbox`. Server-side tools such as `web_search`, + * `azure_ai_search`, and `openapi` are provided through a toolbox rather than declared directly. + * + * @return the tools value. + */ + @Generated + public List getTools() { + return this.tools; + } + + /** + * Set the tools property: The tools the voice agent may use. Supported tool kinds are `function` (executed by the + * client), `mcp`, + * `system` (service-managed session controls), and `toolbox`. Server-side tools such as `web_search`, + * `azure_ai_search`, and `openapi` are provided through a toolbox rather than declared directly. + * + * @param tools the tools value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setTools(List tools) { + this.tools = tools; + return this; + } + + /** + * Get the toolChoice property: How the model chooses tools for generated responses. `none` prevents tool calls, + * `auto` lets the model decide, + * `required` requires at least one tool call, and a specific function or MCP tool can be selected with an object. + * Defaults to `auto`. + * + * @return the toolChoice value. + */ + @Generated + public BinaryData getToolChoice() { + return this.toolChoice; + } + + /** + * Set the toolChoice property: How the model chooses tools for generated responses. `none` prevents tool calls, + * `auto` lets the model decide, + * `required` requires at least one tool call, and a specific function or MCP tool can be selected with an object. + * Defaults to `auto`. + * + * @param toolChoice the toolChoice value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setToolChoice(BinaryData toolChoice) { + this.toolChoice = toolChoice; + return this; + } + + /** + * Get the parallelToolCalls property: Whether the model may call multiple tools in parallel. + * + * @return the parallelToolCalls value. + */ + @Generated + public Boolean isParallelToolCalls() { + return this.parallelToolCalls; + } + + /** + * Set the parallelToolCalls property: Whether the model may call multiple tools in parallel. + * + * @param parallelToolCalls the parallelToolCalls value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setParallelToolCalls(Boolean parallelToolCalls) { + this.parallelToolCalls = parallelToolCalls; + return this; + } + + /** + * Get the structuredInputs property: Set of structured inputs that participate in prompt template substitution, + * rendered per session before the live session starts. + * + * @return the structuredInputs value. + */ + @Generated + public Map getStructuredInputs() { + return this.structuredInputs; + } + + /** + * Set the structuredInputs property: Set of structured inputs that participate in prompt template substitution, + * rendered per session before the live session starts. + * + * @param structuredInputs the structuredInputs value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setStructuredInputs(Map structuredInputs) { + this.structuredInputs = structuredInputs; + return this; + } + + /** + * Get the store property: Whether conversations with this agent are persisted. A single, all-or-nothing persistence + * switch that defaults to + * `false` (privacy-safe: off by default). When `true`, Foundry persists the full conversation — the + * transcript/event + * timeline and raw audio. When `false`, nothing is persisted and no conversation is surfaced. There is no separate + * audio-logging control; audio is persisted only as part of this switch. Latency/performance telemetry (e.g. + * time-to-first-audio, inter-token latency, interruption) is observability-only (customer trace / App Insights) and + * is not part of the persisted conversation content. + * + * @return the store value. + */ + @Generated + public Boolean isStore() { + return this.store; + } + + /** + * Set the store property: Whether conversations with this agent are persisted. A single, all-or-nothing persistence + * switch that defaults to + * `false` (privacy-safe: off by default). When `true`, Foundry persists the full conversation — the + * transcript/event + * timeline and raw audio. When `false`, nothing is persisted and no conversation is surfaced. There is no separate + * audio-logging control; audio is persisted only as part of this switch. Latency/performance telemetry (e.g. + * time-to-first-audio, inter-token latency, interruption) is observability-only (customer trace / App Insights) and + * is not part of the persisted conversation content. + * + * @param store the store value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setStore(Boolean store) { + this.store = store; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentDefinition setRaiConfig(RaiConfig raiConfig) { + super.setRaiConfig(raiConfig); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("rai_config", getRaiConfig()); + jsonWriter.writeStringField("model_type", this.modelType == null ? null : this.modelType.toString()); + jsonWriter.writeStringField("model", this.model); + jsonWriter.writeStringField("kind", this.kind == null ? null : this.kind.toString()); + jsonWriter.writeStringField("instructions", this.instructions); + jsonWriter.writeJsonField("greeting", this.greeting); + jsonWriter.writeJsonField("audio", this.audio); + jsonWriter.writeArrayField("output_modalities", this.outputModalities, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + if (this.maxOutputTokens != null) { + jsonWriter.writeFieldName("max_output_tokens"); + this.maxOutputTokens.writeTo(jsonWriter); + } + jsonWriter.writeArrayField("include", this.include, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + jsonWriter.writeJsonField("interim_response", this.interimResponse); + jsonWriter.writeJsonField("avatar", this.avatar); + jsonWriter.writeArrayField("tools", this.tools, (writer, element) -> writer.writeJson(element)); + if (this.toolChoice != null) { + jsonWriter.writeFieldName("tool_choice"); + this.toolChoice.writeTo(jsonWriter); + } + jsonWriter.writeBooleanField("parallel_tool_calls", this.parallelToolCalls); + jsonWriter.writeMapField("structured_inputs", this.structuredInputs, + (writer, element) -> writer.writeJson(element)); + jsonWriter.writeBooleanField("store", this.store); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentDefinition from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentDefinition if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentDefinition. + */ + @Generated + public static VoiceAgentDefinition fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RaiConfig raiConfig = null; + VoiceModelType modelType = null; + String model = null; + AgentKind kind = AgentKind.VOICE; + String instructions = null; + VoiceAgentGreetingConfig greeting = null; + VoiceAgentAudioConfig audio = null; + List outputModalities = null; + BinaryData maxOutputTokens = null; + List include = null; + VoiceAgentInterimResponseConfig interimResponse = null; + VoiceAgentAvatarConfig avatar = null; + List tools = null; + BinaryData toolChoice = null; + Boolean parallelToolCalls = null; + Map structuredInputs = null; + Boolean store = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("rai_config".equals(fieldName)) { + raiConfig = RaiConfig.fromJson(reader); + } else if ("model_type".equals(fieldName)) { + modelType = VoiceModelType.fromString(reader.getString()); + } else if ("model".equals(fieldName)) { + model = reader.getString(); + } else if ("kind".equals(fieldName)) { + kind = AgentKind.fromString(reader.getString()); + } else if ("instructions".equals(fieldName)) { + instructions = reader.getString(); + } else if ("greeting".equals(fieldName)) { + greeting = VoiceAgentGreetingConfig.fromJson(reader); + } else if ("audio".equals(fieldName)) { + audio = VoiceAgentAudioConfig.fromJson(reader); + } else if ("output_modalities".equals(fieldName)) { + outputModalities = reader.readArray(reader1 -> VoiceOutputModality.fromString(reader1.getString())); + } else if ("max_output_tokens".equals(fieldName)) { + maxOutputTokens + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else if ("include".equals(fieldName)) { + include + = reader.readArray(reader1 -> VoiceAgentSessionIncludeOption.fromString(reader1.getString())); + } else if ("interim_response".equals(fieldName)) { + interimResponse = VoiceAgentInterimResponseConfig.fromJson(reader); + } else if ("avatar".equals(fieldName)) { + avatar = VoiceAgentAvatarConfig.fromJson(reader); + } else if ("tools".equals(fieldName)) { + tools = reader.readArray(reader1 -> VoiceAgentTool.fromJson(reader1)); + } else if ("tool_choice".equals(fieldName)) { + toolChoice + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else if ("parallel_tool_calls".equals(fieldName)) { + parallelToolCalls = reader.getNullable(JsonReader::getBoolean); + } else if ("structured_inputs".equals(fieldName)) { + structuredInputs = reader.readMap(reader1 -> StructuredInputDefinition.fromJson(reader1)); + } else if ("store".equals(fieldName)) { + store = reader.getNullable(JsonReader::getBoolean); + } else { + reader.skipChildren(); + } + } + VoiceAgentDefinition deserializedVoiceAgentDefinition = new VoiceAgentDefinition(modelType, model); + deserializedVoiceAgentDefinition.setRaiConfig(raiConfig); + deserializedVoiceAgentDefinition.kind = kind; + deserializedVoiceAgentDefinition.instructions = instructions; + deserializedVoiceAgentDefinition.greeting = greeting; + deserializedVoiceAgentDefinition.audio = audio; + deserializedVoiceAgentDefinition.outputModalities = outputModalities; + deserializedVoiceAgentDefinition.maxOutputTokens = maxOutputTokens; + deserializedVoiceAgentDefinition.include = include; + deserializedVoiceAgentDefinition.interimResponse = interimResponse; + deserializedVoiceAgentDefinition.avatar = avatar; + deserializedVoiceAgentDefinition.tools = tools; + deserializedVoiceAgentDefinition.toolChoice = toolChoice; + deserializedVoiceAgentDefinition.parallelToolCalls = parallelToolCalls; + deserializedVoiceAgentDefinition.structuredInputs = structuredInputs; + deserializedVoiceAgentDefinition.store = store; + return deserializedVoiceAgentDefinition; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java new file mode 100644 index 000000000000..5dddbbf9fb29 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Server-side echo cancellation settings for input audio. + */ +@Fluent +public final class VoiceAgentEchoCancellation implements JsonSerializable { + + /* + * The echo cancellation implementation. Always `server_echo_cancellation`. + */ + @Generated + private final String type = "server_echo_cancellation"; + + /* + * Whether reference audio comes from server playback or a client-provided channel. + */ + @Generated + private VoiceAgentEchoCancellationReferenceSource referenceSource; + + /* + * The number of input channels. Use two interleaved channels when `reference_source` is `client`. + */ + @Generated + private Integer channels; + + /** + * Creates an instance of VoiceAgentEchoCancellation class. + */ + @Generated + public VoiceAgentEchoCancellation() { + } + + /** + * Get the type property: The echo cancellation implementation. Always `server_echo_cancellation`. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * Get the referenceSource property: Whether reference audio comes from server playback or a client-provided + * channel. + * + * @return the referenceSource value. + */ + @Generated + public VoiceAgentEchoCancellationReferenceSource getReferenceSource() { + return this.referenceSource; + } + + /** + * Set the referenceSource property: Whether reference audio comes from server playback or a client-provided + * channel. + * + * @param referenceSource the referenceSource value to set. + * @return the VoiceAgentEchoCancellation object itself. + */ + @Generated + public VoiceAgentEchoCancellation setReferenceSource(VoiceAgentEchoCancellationReferenceSource referenceSource) { + this.referenceSource = referenceSource; + return this; + } + + /** + * Get the channels property: The number of input channels. Use two interleaved channels when `reference_source` is + * `client`. + * + * @return the channels value. + */ + @Generated + public Integer getChannels() { + return this.channels; + } + + /** + * Set the channels property: The number of input channels. Use two interleaved channels when `reference_source` is + * `client`. + * + * @param channels the channels value to set. + * @return the VoiceAgentEchoCancellation object itself. + */ + @Generated + public VoiceAgentEchoCancellation setChannels(Integer channels) { + this.channels = channels; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("reference_source", + this.referenceSource == null ? null : this.referenceSource.toString()); + jsonWriter.writeNumberField("channels", this.channels); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentEchoCancellation from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentEchoCancellation if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentEchoCancellation. + */ + @Generated + public static VoiceAgentEchoCancellation fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentEchoCancellation deserializedVoiceAgentEchoCancellation = new VoiceAgentEchoCancellation(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("reference_source".equals(fieldName)) { + deserializedVoiceAgentEchoCancellation.referenceSource + = VoiceAgentEchoCancellationReferenceSource.fromString(reader.getString()); + } else if ("channels".equals(fieldName)) { + deserializedVoiceAgentEchoCancellation.channels = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentEchoCancellation; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java new file mode 100644 index 000000000000..b1da6e3d57b1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * The source of reference audio used for echo cancellation. + */ +public enum VoiceAgentEchoCancellationReferenceSource { + /** + * Enum value server. + */ + SERVER("server"), + + /** + * Enum value client. + */ + CLIENT("client"); + + /** + * The actual serialized value for a VoiceAgentEchoCancellationReferenceSource instance. + */ + private final String value; + + VoiceAgentEchoCancellationReferenceSource(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceAgentEchoCancellationReferenceSource instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceAgentEchoCancellationReferenceSource object, or null if unable to parse. + */ + public static VoiceAgentEchoCancellationReferenceSource fromString(String value) { + if (value == null) { + return null; + } + VoiceAgentEchoCancellationReferenceSource[] items = VoiceAgentEchoCancellationReferenceSource.values(); + for (VoiceAgentEchoCancellationReferenceSource item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java new file mode 100644 index 000000000000..97e6e6283e72 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Semantic end-of-utterance detection configuration. + */ +@Fluent +public final class VoiceAgentEndOfUtteranceDetection implements JsonSerializable { + + /* + * The semantic detection model. + */ + @Generated + private final VoiceAgentEndOfUtteranceDetectionModel model; + + /* + * The sensitivity threshold. + */ + @Generated + private VoiceAgentEndOfUtteranceThresholdLevel thresholdLevel; + + /* + * The detection timeout in milliseconds. + */ + @Generated + private Long timeoutMs; + + /** + * Creates an instance of VoiceAgentEndOfUtteranceDetection class. + * + * @param model the model value to set. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection(VoiceAgentEndOfUtteranceDetectionModel model) { + this.model = model; + } + + /** + * Get the model property: The semantic detection model. + * + * @return the model value. + */ + @Generated + public VoiceAgentEndOfUtteranceDetectionModel getModel() { + return this.model; + } + + /** + * Get the thresholdLevel property: The sensitivity threshold. + * + * @return the thresholdLevel value. + */ + @Generated + public VoiceAgentEndOfUtteranceThresholdLevel getThresholdLevel() { + return this.thresholdLevel; + } + + /** + * Set the thresholdLevel property: The sensitivity threshold. + * + * @param thresholdLevel the thresholdLevel value to set. + * @return the VoiceAgentEndOfUtteranceDetection object itself. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection setThresholdLevel(VoiceAgentEndOfUtteranceThresholdLevel thresholdLevel) { + this.thresholdLevel = thresholdLevel; + return this; + } + + /** + * Get the timeoutMs property: The detection timeout in milliseconds. + * + * @return the timeoutMs value. + */ + @Generated + public Duration getTimeoutMs() { + if (this.timeoutMs == null) { + return null; + } + return Duration.ofMillis(this.timeoutMs); + } + + /** + * Set the timeoutMs property: The detection timeout in milliseconds. + * + * @param timeoutMs the timeoutMs value to set. + * @return the VoiceAgentEndOfUtteranceDetection object itself. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection setTimeoutMs(Duration timeoutMs) { + if (timeoutMs == null) { + this.timeoutMs = null; + } else { + this.timeoutMs = timeoutMs.toMillis(); + } + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("model", this.model == null ? null : this.model.toString()); + jsonWriter.writeStringField("threshold_level", + this.thresholdLevel == null ? null : this.thresholdLevel.toString()); + jsonWriter.writeNumberField("timeout_ms", this.timeoutMs); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentEndOfUtteranceDetection from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentEndOfUtteranceDetection if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentEndOfUtteranceDetection. + */ + @Generated + public static VoiceAgentEndOfUtteranceDetection fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentEndOfUtteranceDetectionModel model = null; + VoiceAgentEndOfUtteranceThresholdLevel thresholdLevel = null; + Long timeoutMs = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("model".equals(fieldName)) { + model = VoiceAgentEndOfUtteranceDetectionModel.fromString(reader.getString()); + } else if ("threshold_level".equals(fieldName)) { + thresholdLevel = VoiceAgentEndOfUtteranceThresholdLevel.fromString(reader.getString()); + } else if ("timeout_ms".equals(fieldName)) { + timeoutMs = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + VoiceAgentEndOfUtteranceDetection deserializedVoiceAgentEndOfUtteranceDetection + = new VoiceAgentEndOfUtteranceDetection(model); + deserializedVoiceAgentEndOfUtteranceDetection.thresholdLevel = thresholdLevel; + deserializedVoiceAgentEndOfUtteranceDetection.timeoutMs = timeoutMs; + return deserializedVoiceAgentEndOfUtteranceDetection; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java new file mode 100644 index 000000000000..9d03c5c900dd --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java @@ -0,0 +1,74 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The semantic end-of-utterance detection model. + */ +public final class VoiceAgentEndOfUtteranceDetectionModel + extends ExpandableStringEnum { + + /** + * The default semantic detection model. + */ + @Generated + public static final VoiceAgentEndOfUtteranceDetectionModel SEMANTIC_DETECTION_V1 + = fromString("semantic_detection_v1"); + + /** + * The English-optimized semantic detection model. + */ + @Generated + public static final VoiceAgentEndOfUtteranceDetectionModel SEMANTIC_DETECTION_V1_EN + = fromString("semantic_detection_v1_en"); + + /** + * The multilingual semantic detection model. + */ + @Generated + public static final VoiceAgentEndOfUtteranceDetectionModel SEMANTIC_DETECTION_V1_MULTILINGUAL + = fromString("semantic_detection_v1_multilingual"); + + /** + * The smart end-of-turn detection model. + */ + @Generated + public static final VoiceAgentEndOfUtteranceDetectionModel SMART_END_OF_TURN_DETECTION + = fromString("smart_end_of_turn_detection"); + + /** + * Creates a new instance of VoiceAgentEndOfUtteranceDetectionModel value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentEndOfUtteranceDetectionModel() { + } + + /** + * Creates or finds a VoiceAgentEndOfUtteranceDetectionModel from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentEndOfUtteranceDetectionModel. + */ + @Generated + public static VoiceAgentEndOfUtteranceDetectionModel fromString(String name) { + return fromString(name, VoiceAgentEndOfUtteranceDetectionModel.class); + } + + /** + * Gets known VoiceAgentEndOfUtteranceDetectionModel values. + * + * @return known VoiceAgentEndOfUtteranceDetectionModel values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentEndOfUtteranceDetectionModel.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java new file mode 100644 index 000000000000..c44063108ba2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The sensitivity threshold for semantic end-of-utterance detection. + */ +public final class VoiceAgentEndOfUtteranceThresholdLevel + extends ExpandableStringEnum { + + /** + * The low sensitivity threshold. + */ + @Generated + public static final VoiceAgentEndOfUtteranceThresholdLevel LOW = fromString("low"); + + /** + * The medium sensitivity threshold. + */ + @Generated + public static final VoiceAgentEndOfUtteranceThresholdLevel MEDIUM = fromString("medium"); + + /** + * The high sensitivity threshold. + */ + @Generated + public static final VoiceAgentEndOfUtteranceThresholdLevel HIGH = fromString("high"); + + /** + * The service-selected sensitivity threshold. + */ + @Generated + public static final VoiceAgentEndOfUtteranceThresholdLevel DEFAULT = fromString("default"); + + /** + * Creates a new instance of VoiceAgentEndOfUtteranceThresholdLevel value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentEndOfUtteranceThresholdLevel() { + } + + /** + * Creates or finds a VoiceAgentEndOfUtteranceThresholdLevel from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentEndOfUtteranceThresholdLevel. + */ + @Generated + public static VoiceAgentEndOfUtteranceThresholdLevel fromString(String name) { + return fromString(name, VoiceAgentEndOfUtteranceThresholdLevel.class); + } + + /** + * Gets known VoiceAgentEndOfUtteranceThresholdLevel values. + * + * @return known VoiceAgentEndOfUtteranceThresholdLevel values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentEndOfUtteranceThresholdLevel.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java new file mode 100644 index 000000000000..0dfc404af8de --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A native function tool executed by the client. + */ +@Fluent +public final class VoiceAgentFunctionTool extends VoiceAgentTool { + + /* + * The tool kind. + */ + @Generated + private String type = "function"; + + /* + * The description of the function, including guidance on when and how + * to call it, and guidance about what to tell the user when calling + * (if anything). + */ + @Generated + private String description; + + /* + * Parameters of the function in JSON Schema. + */ + @Generated + private RealtimeFunctionToolParameters parameters; + + /* + * The function name. + */ + @Generated + private final String name; + + /** + * Creates an instance of VoiceAgentFunctionTool class. + * + * @param name the name value to set. + */ + @Generated + public VoiceAgentFunctionTool(String name) { + this.name = name; + } + + /** + * Get the type property: The tool kind. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the description property: The description of the function, including guidance on when and how + * to call it, and guidance about what to tell the user when calling + * (if anything). + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Set the description property: The description of the function, including guidance on when and how + * to call it, and guidance about what to tell the user when calling + * (if anything). + * + * @param description the description value to set. + * @return the VoiceAgentFunctionTool object itself. + */ + @Generated + public VoiceAgentFunctionTool setDescription(String description) { + this.description = description; + return this; + } + + /** + * Get the parameters property: Parameters of the function in JSON Schema. + * + * @return the parameters value. + */ + @Generated + public RealtimeFunctionToolParameters getParameters() { + return this.parameters; + } + + /** + * Set the parameters property: Parameters of the function in JSON Schema. + * + * @param parameters the parameters value to set. + * @return the VoiceAgentFunctionTool object itself. + */ + @Generated + public VoiceAgentFunctionTool setParameters(RealtimeFunctionToolParameters parameters) { + this.parameters = parameters; + return this; + } + + /** + * Get the name property: The function name. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("description", this.description); + jsonWriter.writeJsonField("parameters", this.parameters); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentFunctionTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentFunctionTool if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentFunctionTool. + */ + @Generated + public static VoiceAgentFunctionTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + String type = "function"; + String description = null; + RealtimeFunctionToolParameters parameters = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else if ("description".equals(fieldName)) { + description = reader.getString(); + } else if ("parameters".equals(fieldName)) { + parameters = RealtimeFunctionToolParameters.fromJson(reader); + } else { + reader.skipChildren(); + } + } + VoiceAgentFunctionTool deserializedVoiceAgentFunctionTool = new VoiceAgentFunctionTool(name); + deserializedVoiceAgentFunctionTool.type = type; + deserializedVoiceAgentFunctionTool.description = description; + deserializedVoiceAgentFunctionTool.parameters = parameters; + return deserializedVoiceAgentFunctionTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java new file mode 100644 index 000000000000..818a6e221012 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Session-start greeting configuration for a voice agent. + */ +@Immutable +public class VoiceAgentGreetingConfig implements JsonSerializable { + + /* + * The greeting mode. + */ + @Generated + private String type = "VoiceAgentGreetingConfig"; + + /** + * Creates an instance of VoiceAgentGreetingConfig class. + */ + @Generated + public VoiceAgentGreetingConfig() { + } + + /** + * Get the type property: The greeting mode. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentGreetingConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentGreetingConfig if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentGreetingConfig. + */ + @Generated + public static VoiceAgentGreetingConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("template".equals(discriminatorValue)) { + return VoiceAgentTemplateGreetingConfig.fromJson(readerToUse.reset()); + } else if ("llm_generated".equals(discriminatorValue)) { + return VoiceAgentLlmGeneratedGreetingConfig.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static VoiceAgentGreetingConfig fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentGreetingConfig deserializedVoiceAgentGreetingConfig = new VoiceAgentGreetingConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedVoiceAgentGreetingConfig.type = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentGreetingConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java new file mode 100644 index 000000000000..a1153083dee9 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java @@ -0,0 +1,354 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * Asynchronous input-audio transcription configuration. Extends the OpenAI Realtime transcription + * options with the Azure and MAI transcription models, custom speech models, and phrase hints. + */ +@Fluent +public final class VoiceAgentInputTranscription implements JsonSerializable { + + /* + * The language of the input audio. Supplying the input language in + * [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format + * will improve accuracy and latency. + */ + @Generated + private String language; + + /* + * 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`. + */ + @Generated + private List languages; + + /* + * Words or phrases to guide transcription of the input audio. Supported by `gpt-transcribe` and + * `gpt-live-transcribe`. + */ + @Generated + private List keywords; + + /* + * An optional text to guide the model's style or continue a previous audio + * segment. + * For `whisper-1`, the [prompt is a list of keywords](/docs/guides/speech-to-text#prompting). + * For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for + * example "expect words related to technology". + * Prompt is not supported with `gpt-realtime-whisper` in GA Realtime sessions. + */ + @Generated + private String prompt; + + /* + * Controls how long the model waits before emitting transcription text. + * Higher values can improve transcription accuracy at the cost of latency. + * Only supported with `gpt-realtime-whisper` in GA Realtime sessions. + */ + @Generated + private VoiceAgentAudioInputConfigTranscriptionDelay delay; + + /* + * The transcription model identifier. Configure customer custom speech deployments in `custom_speech`. + */ + @Generated + private final VoiceAgentInputTranscriptionModel model; + + /* + * Optional customer custom speech deployment configuration, keyed by locale. + */ + @Generated + private Map customSpeech; + + /* + * Optional phrase hints that bias recognition toward domain terms. + */ + @Generated + private List phraseList; + + /** + * Creates an instance of VoiceAgentInputTranscription class. + * + * @param model the model value to set. + */ + @Generated + public VoiceAgentInputTranscription(VoiceAgentInputTranscriptionModel model) { + this.model = model; + } + + /** + * Get the language property: The language of the input audio. Supplying the input language in + * [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format + * will improve accuracy and latency. + * + * @return the language value. + */ + @Generated + public String getLanguage() { + return this.language; + } + + /** + * Set the language property: The language of the input audio. Supplying the input language in + * [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format + * will improve accuracy and latency. + * + * @param language the language value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setLanguage(String language) { + this.language = language; + return this; + } + + /** + * Get the languages property: 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`. + * + * @return the languages value. + */ + @Generated + public List getLanguages() { + return this.languages; + } + + /** + * Set the languages property: 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`. + * + * @param languages the languages value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setLanguages(List languages) { + this.languages = languages; + return this; + } + + /** + * Get the keywords property: Words or phrases to guide transcription of the input audio. Supported by + * `gpt-transcribe` and `gpt-live-transcribe`. + * + * @return the keywords value. + */ + @Generated + public List getKeywords() { + return this.keywords; + } + + /** + * Set the keywords property: Words or phrases to guide transcription of the input audio. Supported by + * `gpt-transcribe` and `gpt-live-transcribe`. + * + * @param keywords the keywords value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setKeywords(List keywords) { + this.keywords = keywords; + return this; + } + + /** + * Get the prompt property: An optional text to guide the model's style or continue a previous audio + * segment. + * For `whisper-1`, the [prompt is a list of keywords](/docs/guides/speech-to-text#prompting). + * For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for + * example "expect words related to technology". + * Prompt is not supported with `gpt-realtime-whisper` in GA Realtime sessions. + * + * @return the prompt value. + */ + @Generated + public String getPrompt() { + return this.prompt; + } + + /** + * Set the prompt property: An optional text to guide the model's style or continue a previous audio + * segment. + * For `whisper-1`, the [prompt is a list of keywords](/docs/guides/speech-to-text#prompting). + * For `gpt-4o-transcribe` models (excluding `gpt-4o-transcribe-diarize`), the prompt is a free text string, for + * example "expect words related to technology". + * Prompt is not supported with `gpt-realtime-whisper` in GA Realtime sessions. + * + * @param prompt the prompt value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setPrompt(String prompt) { + this.prompt = prompt; + return this; + } + + /** + * Get the delay property: Controls how long the model waits before emitting transcription text. + * Higher values can improve transcription accuracy at the cost of latency. + * Only supported with `gpt-realtime-whisper` in GA Realtime sessions. + * + * @return the delay value. + */ + @Generated + public VoiceAgentAudioInputConfigTranscriptionDelay getDelay() { + return this.delay; + } + + /** + * Set the delay property: Controls how long the model waits before emitting transcription text. + * Higher values can improve transcription accuracy at the cost of latency. + * Only supported with `gpt-realtime-whisper` in GA Realtime sessions. + * + * @param delay the delay value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setDelay(VoiceAgentAudioInputConfigTranscriptionDelay delay) { + this.delay = delay; + return this; + } + + /** + * Get the model property: The transcription model identifier. Configure customer custom speech deployments in + * `custom_speech`. + * + * @return the model value. + */ + @Generated + public VoiceAgentInputTranscriptionModel getModel() { + return this.model; + } + + /** + * Get the customSpeech property: Optional customer custom speech deployment configuration, keyed by locale. + * + * @return the customSpeech value. + */ + @Generated + public Map getCustomSpeech() { + return this.customSpeech; + } + + /** + * Set the customSpeech property: Optional customer custom speech deployment configuration, keyed by locale. + * + * @param customSpeech the customSpeech value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setCustomSpeech(Map customSpeech) { + this.customSpeech = customSpeech; + return this; + } + + /** + * Get the phraseList property: Optional phrase hints that bias recognition toward domain terms. + * + * @return the phraseList value. + */ + @Generated + public List getPhraseList() { + return this.phraseList; + } + + /** + * Set the phraseList property: Optional phrase hints that bias recognition toward domain terms. + * + * @param phraseList the phraseList value to set. + * @return the VoiceAgentInputTranscription object itself. + */ + @Generated + public VoiceAgentInputTranscription setPhraseList(List phraseList) { + this.phraseList = phraseList; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("model", this.model == null ? null : this.model.toString()); + jsonWriter.writeStringField("language", this.language); + jsonWriter.writeArrayField("languages", this.languages, (writer, element) -> writer.writeString(element)); + jsonWriter.writeArrayField("keywords", this.keywords, (writer, element) -> writer.writeString(element)); + jsonWriter.writeStringField("prompt", this.prompt); + jsonWriter.writeStringField("delay", this.delay == null ? null : this.delay.toString()); + jsonWriter.writeMapField("custom_speech", this.customSpeech, (writer, element) -> writer.writeString(element)); + jsonWriter.writeArrayField("phrase_list", this.phraseList, (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentInputTranscription from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentInputTranscription if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentInputTranscription. + */ + @Generated + public static VoiceAgentInputTranscription fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentInputTranscriptionModel model = null; + String language = null; + List languages = null; + List keywords = null; + String prompt = null; + VoiceAgentAudioInputConfigTranscriptionDelay delay = null; + Map customSpeech = null; + List phraseList = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("model".equals(fieldName)) { + model = VoiceAgentInputTranscriptionModel.fromString(reader.getString()); + } else if ("language".equals(fieldName)) { + language = reader.getString(); + } else if ("languages".equals(fieldName)) { + languages = reader.readArray(reader1 -> reader1.getString()); + } else if ("keywords".equals(fieldName)) { + keywords = reader.readArray(reader1 -> reader1.getString()); + } else if ("prompt".equals(fieldName)) { + prompt = reader.getString(); + } else if ("delay".equals(fieldName)) { + delay = VoiceAgentAudioInputConfigTranscriptionDelay.fromString(reader.getString()); + } else if ("custom_speech".equals(fieldName)) { + customSpeech = reader.readMap(reader1 -> reader1.getString()); + } else if ("phrase_list".equals(fieldName)) { + phraseList = reader.readArray(reader1 -> reader1.getString()); + } else { + reader.skipChildren(); + } + } + VoiceAgentInputTranscription deserializedVoiceAgentInputTranscription + = new VoiceAgentInputTranscription(model); + deserializedVoiceAgentInputTranscription.language = language; + deserializedVoiceAgentInputTranscription.languages = languages; + deserializedVoiceAgentInputTranscription.keywords = keywords; + deserializedVoiceAgentInputTranscription.prompt = prompt; + deserializedVoiceAgentInputTranscription.delay = delay; + deserializedVoiceAgentInputTranscription.customSpeech = customSpeech; + deserializedVoiceAgentInputTranscription.phraseList = phraseList; + return deserializedVoiceAgentInputTranscription; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java new file mode 100644 index 000000000000..d40de2b6704b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java @@ -0,0 +1,103 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The input-audio transcription model identifier. This is a model name, not a Foundry deployment name. Mirrors the + * transcription models supported by the managed + * voice backend, covering the OpenAI Realtime transcription models plus the Azure and MAI models. + * Additional values may be added over time. + */ +public final class VoiceAgentInputTranscriptionModel extends ExpandableStringEnum { + + /** + * OpenAI Whisper. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel WHISPER_1 = fromString("whisper-1"); + + /** + * OpenAI GPT Realtime Whisper. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel GPT_REALTIME_WHISPER = fromString("gpt-realtime-whisper"); + + /** + * OpenAI GPT-4o transcribe. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel GPT_4O_TRANSCRIBE = fromString("gpt-4o-transcribe"); + + /** + * OpenAI GPT-4o mini transcribe. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel GPT_4O_MINI_TRANSCRIBE = fromString("gpt-4o-mini-transcribe"); + + /** + * OpenAI GPT-4o transcribe with speaker diarization. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel GPT_4O_TRANSCRIBE_DIARIZE + = fromString("gpt-4o-transcribe-diarize"); + + /** + * OpenAI GPT Transcribe. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel GPT_TRANSCRIBE = fromString("gpt-transcribe"); + + /** + * OpenAI GPT Live Transcribe. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel GPT_LIVE_TRANSCRIBE = fromString("gpt-live-transcribe"); + + /** + * MAI transcription. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel MAI_TRANSCRIBE = fromString("mai-transcribe"); + + /** + * Azure AI Speech to text. + */ + @Generated + public static final VoiceAgentInputTranscriptionModel AZURE_SPEECH = fromString("azure-speech"); + + /** + * Creates a new instance of VoiceAgentInputTranscriptionModel value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentInputTranscriptionModel() { + } + + /** + * Creates or finds a VoiceAgentInputTranscriptionModel from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentInputTranscriptionModel. + */ + @Generated + public static VoiceAgentInputTranscriptionModel fromString(String name) { + return fromString(name, VoiceAgentInputTranscriptionModel.class); + } + + /** + * Gets known VoiceAgentInputTranscriptionModel values. + * + * @return known VoiceAgentInputTranscriptionModel values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentInputTranscriptionModel.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java new file mode 100644 index 000000000000..dc7b0e798be4 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java @@ -0,0 +1,183 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.util.List; + +/** + * Fields shared by interim-response configurations. + */ +@Fluent +public class VoiceAgentInterimResponseConfig implements JsonSerializable { + + /* + * The interim-response implementation. + */ + @Generated + private String type = "VoiceAgentInterimResponseConfig"; + + /* + * Conditions that may trigger one interim response. + */ + @Generated + private List triggers; + + /* + * The latency threshold in milliseconds. + */ + @Generated + private Long latencyThresholdMs; + + /** + * Creates an instance of VoiceAgentInterimResponseConfig class. + */ + @Generated + public VoiceAgentInterimResponseConfig() { + } + + /** + * Get the type property: The interim-response implementation. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * Get the triggers property: Conditions that may trigger one interim response. + * + * @return the triggers value. + */ + @Generated + public List getTriggers() { + return this.triggers; + } + + /** + * Set the triggers property: Conditions that may trigger one interim response. + * + * @param triggers the triggers value to set. + * @return the VoiceAgentInterimResponseConfig object itself. + */ + @Generated + public VoiceAgentInterimResponseConfig setTriggers(List triggers) { + this.triggers = triggers; + return this; + } + + /** + * Get the latencyThresholdMs property: The latency threshold in milliseconds. + * + * @return the latencyThresholdMs value. + */ + @Generated + public Duration getLatencyThresholdMs() { + if (this.latencyThresholdMs == null) { + return null; + } + return Duration.ofMillis(this.latencyThresholdMs); + } + + /** + * Set the latencyThresholdMs property: The latency threshold in milliseconds. + * + * @param latencyThresholdMs the latencyThresholdMs value to set. + * @return the VoiceAgentInterimResponseConfig object itself. + */ + @Generated + public VoiceAgentInterimResponseConfig setLatencyThresholdMs(Duration latencyThresholdMs) { + if (latencyThresholdMs == null) { + this.latencyThresholdMs = null; + } else { + this.latencyThresholdMs = latencyThresholdMs.toMillis(); + } + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeArrayField("triggers", this.triggers, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + jsonWriter.writeNumberField("latency_threshold_ms", this.latencyThresholdMs); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentInterimResponseConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentInterimResponseConfig if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentInterimResponseConfig. + */ + @Generated + public static VoiceAgentInterimResponseConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("static_interim_response".equals(discriminatorValue)) { + return VoiceAgentStaticInterimResponseConfig.fromJson(readerToUse.reset()); + } else if ("llm_interim_response".equals(discriminatorValue)) { + return VoiceAgentLlmInterimResponseConfig.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static VoiceAgentInterimResponseConfig fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentInterimResponseConfig deserializedVoiceAgentInterimResponseConfig + = new VoiceAgentInterimResponseConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedVoiceAgentInterimResponseConfig.type = reader.getString(); + } else if ("triggers".equals(fieldName)) { + List triggers + = reader.readArray(reader1 -> VoiceAgentInterimResponseTrigger.fromString(reader1.getString())); + deserializedVoiceAgentInterimResponseConfig.triggers = triggers; + } else if ("latency_threshold_ms".equals(fieldName)) { + deserializedVoiceAgentInterimResponseConfig.latencyThresholdMs + = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentInterimResponseConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java new file mode 100644 index 000000000000..c37fa4231328 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * A condition that may trigger an interim response. + */ +public final class VoiceAgentInterimResponseTrigger extends ExpandableStringEnum { + + /** + * Static value latency for VoiceAgentInterimResponseTrigger. + */ + @Generated + public static final VoiceAgentInterimResponseTrigger LATENCY = fromString("latency"); + + /** + * Static value tool for VoiceAgentInterimResponseTrigger. + */ + @Generated + public static final VoiceAgentInterimResponseTrigger TOOL = fromString("tool"); + + /** + * Creates a new instance of VoiceAgentInterimResponseTrigger value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentInterimResponseTrigger() { + } + + /** + * Creates or finds a VoiceAgentInterimResponseTrigger from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentInterimResponseTrigger. + */ + @Generated + public static VoiceAgentInterimResponseTrigger fromString(String name) { + return fromString(name, VoiceAgentInterimResponseTrigger.class); + } + + /** + * Gets known VoiceAgentInterimResponseTrigger values. + * + * @return known VoiceAgentInterimResponseTrigger values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentInterimResponseTrigger.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java new file mode 100644 index 000000000000..2ad58376605d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A greeting authored by the session model from a scoped opening-turn prompt. + */ +@Fluent +public final class VoiceAgentLlmGeneratedGreetingConfig extends VoiceAgentGreetingConfig { + + /* + * The greeting mode. + */ + @Generated + private String type = "llm_generated"; + + /* + * The Handlebars prompt that guides the opening turn. + */ + @Generated + private final String prompt; + + /* + * The tool-selection policy for the opening response. Defaults to `none`. + */ + @Generated + private BinaryData toolChoice; + + /** + * Creates an instance of VoiceAgentLlmGeneratedGreetingConfig class. + * + * @param prompt the prompt value to set. + */ + @Generated + public VoiceAgentLlmGeneratedGreetingConfig(String prompt) { + this.prompt = prompt; + } + + /** + * Get the type property: The greeting mode. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the prompt property: The Handlebars prompt that guides the opening turn. + * + * @return the prompt value. + */ + @Generated + public String getPrompt() { + return this.prompt; + } + + /** + * Get the toolChoice property: The tool-selection policy for the opening response. Defaults to `none`. + * + * @return the toolChoice value. + */ + @Generated + public BinaryData getToolChoice() { + return this.toolChoice; + } + + /** + * Set the toolChoice property: The tool-selection policy for the opening response. Defaults to `none`. + * + * @param toolChoice the toolChoice value to set. + * @return the VoiceAgentLlmGeneratedGreetingConfig object itself. + */ + @Generated + public VoiceAgentLlmGeneratedGreetingConfig setToolChoice(BinaryData toolChoice) { + this.toolChoice = toolChoice; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("prompt", this.prompt); + jsonWriter.writeStringField("type", this.type); + if (this.toolChoice != null) { + jsonWriter.writeFieldName("tool_choice"); + this.toolChoice.writeTo(jsonWriter); + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentLlmGeneratedGreetingConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentLlmGeneratedGreetingConfig if the JsonReader was pointing to an instance of it, + * or null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentLlmGeneratedGreetingConfig. + */ + @Generated + public static VoiceAgentLlmGeneratedGreetingConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String prompt = null; + String type = "llm_generated"; + BinaryData toolChoice = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("prompt".equals(fieldName)) { + prompt = reader.getString(); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else if ("tool_choice".equals(fieldName)) { + toolChoice + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else { + reader.skipChildren(); + } + } + VoiceAgentLlmGeneratedGreetingConfig deserializedVoiceAgentLlmGeneratedGreetingConfig + = new VoiceAgentLlmGeneratedGreetingConfig(prompt); + deserializedVoiceAgentLlmGeneratedGreetingConfig.type = type; + deserializedVoiceAgentLlmGeneratedGreetingConfig.toolChoice = toolChoice; + return deserializedVoiceAgentLlmGeneratedGreetingConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java new file mode 100644 index 000000000000..e43c10d789f2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.util.List; + +/** + * An interim response generated by a language model. + */ +@Fluent +public final class VoiceAgentLlmInterimResponseConfig extends VoiceAgentInterimResponseConfig { + + /* + * The interim-response implementation. + */ + @Generated + private String type = "llm_interim_response"; + + /* + * The model used to generate interim responses. + */ + @Generated + private String model; + + /* + * Optional instructions for generating interim responses. + */ + @Generated + private String instructions; + + /* + * The maximum completion-token count for an interim response. + */ + @Generated + private Integer maxCompletionTokens; + + /** + * Creates an instance of VoiceAgentLlmInterimResponseConfig class. + */ + @Generated + public VoiceAgentLlmInterimResponseConfig() { + } + + /** + * Get the type property: The interim-response implementation. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the model property: The model used to generate interim responses. + * + * @return the model value. + */ + @Generated + public String getModel() { + return this.model; + } + + /** + * Set the model property: The model used to generate interim responses. + * + * @param model the model value to set. + * @return the VoiceAgentLlmInterimResponseConfig object itself. + */ + @Generated + public VoiceAgentLlmInterimResponseConfig setModel(String model) { + this.model = model; + return this; + } + + /** + * Get the instructions property: Optional instructions for generating interim responses. + * + * @return the instructions value. + */ + @Generated + public String getInstructions() { + return this.instructions; + } + + /** + * Set the instructions property: Optional instructions for generating interim responses. + * + * @param instructions the instructions value to set. + * @return the VoiceAgentLlmInterimResponseConfig object itself. + */ + @Generated + public VoiceAgentLlmInterimResponseConfig setInstructions(String instructions) { + this.instructions = instructions; + return this; + } + + /** + * Get the maxCompletionTokens property: The maximum completion-token count for an interim response. + * + * @return the maxCompletionTokens value. + */ + @Generated + public Integer getMaxCompletionTokens() { + return this.maxCompletionTokens; + } + + /** + * Set the maxCompletionTokens property: The maximum completion-token count for an interim response. + * + * @param maxCompletionTokens the maxCompletionTokens value to set. + * @return the VoiceAgentLlmInterimResponseConfig object itself. + */ + @Generated + public VoiceAgentLlmInterimResponseConfig setMaxCompletionTokens(Integer maxCompletionTokens) { + this.maxCompletionTokens = maxCompletionTokens; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentLlmInterimResponseConfig setTriggers(List triggers) { + super.setTriggers(triggers); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentLlmInterimResponseConfig setLatencyThresholdMs(Duration latencyThresholdMs) { + super.setLatencyThresholdMs(latencyThresholdMs); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("triggers", getTriggers(), + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + if (getLatencyThresholdMs() != null) { + jsonWriter.writeNumberField("latency_threshold_ms", getLatencyThresholdMs().toMillis()); + } + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("model", this.model); + jsonWriter.writeStringField("instructions", this.instructions); + jsonWriter.writeNumberField("max_completion_tokens", this.maxCompletionTokens); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentLlmInterimResponseConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentLlmInterimResponseConfig if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentLlmInterimResponseConfig. + */ + @Generated + public static VoiceAgentLlmInterimResponseConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentLlmInterimResponseConfig deserializedVoiceAgentLlmInterimResponseConfig + = new VoiceAgentLlmInterimResponseConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("triggers".equals(fieldName)) { + List triggers + = reader.readArray(reader1 -> VoiceAgentInterimResponseTrigger.fromString(reader1.getString())); + deserializedVoiceAgentLlmInterimResponseConfig.setTriggers(triggers); + } else if ("latency_threshold_ms".equals(fieldName)) { + Long latencyThresholdMsHolder = reader.getNullable(JsonReader::getLong); + if (latencyThresholdMsHolder != null) { + deserializedVoiceAgentLlmInterimResponseConfig + .setLatencyThresholdMs(Duration.ofMillis(latencyThresholdMsHolder)); + } + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentLlmInterimResponseConfig.type = reader.getString(); + } else if ("model".equals(fieldName)) { + deserializedVoiceAgentLlmInterimResponseConfig.model = reader.getString(); + } else if ("instructions".equals(fieldName)) { + deserializedVoiceAgentLlmInterimResponseConfig.instructions = reader.getString(); + } else if ("max_completion_tokens".equals(fieldName)) { + deserializedVoiceAgentLlmInterimResponseConfig.maxCompletionTokens + = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentLlmInterimResponseConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java new file mode 100644 index 000000000000..f456df5b3037 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java @@ -0,0 +1,492 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * An MCP tool available to a voice agent. + */ +@Fluent +public final class VoiceAgentMcpTool extends VoiceAgentTool { + + /* + * The tool kind. + */ + @Generated + private String type = "mcp"; + + /* + * A label for this MCP server, used to identify it in tool calls. + */ + @Generated + private final String serverLabel; + + /* + * An OAuth access token that can be used with a remote MCP server, either + * with a custom MCP server URL or a service connector. Your application + * must handle the OAuth authorization flow and provide the token here. + */ + @Generated + private String authorization; + + /* + * Optional description of the MCP server, used to provide more context. + */ + @Generated + private String serverDescription; + + /* + * The headers property. + */ + @Generated + private Map headers; + + /* + * The allowed_tools property. + */ + @Generated + private BinaryData allowedTools; + + /* + * The allowed_callers property. + */ + @Generated + private List allowedCallers; + + /* + * The require_approval property. + */ + @Generated + private BinaryData requireApproval; + + /* + * Whether this MCP tool is deferred and discovered via tool search. + */ + @Generated + private Boolean deferLoading; + + /* + * 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. + */ + @Generated + private String projectConnectionId; + + /* + * Deprecated. This property is deprecated and will be removed in a future version. + */ + @Generated + private Map toolConfigs; + + /* + * The URL for the MCP server. + */ + @Generated + private String serverUrl; + + /* + * When the MCP invocation creates a follow-up response. Defaults to `when_idle`. + */ + @Generated + private VoiceAgentToolResponseScheduling responseScheduling; + + /** + * Creates an instance of VoiceAgentMcpTool class. + * + * @param serverLabel the serverLabel value to set. + */ + @Generated + public VoiceAgentMcpTool(String serverLabel) { + this.serverLabel = serverLabel; + } + + /** + * Get the type property: The tool kind. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the serverLabel property: A label for this MCP server, used to identify it in tool calls. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Get the authorization property: An OAuth access token that can be used with a remote MCP server, either + * with a custom MCP server URL or a service connector. Your application + * must handle the OAuth authorization flow and provide the token here. + * + * @return the authorization value. + */ + @Generated + public String getAuthorization() { + return this.authorization; + } + + /** + * Set the authorization property: An OAuth access token that can be used with a remote MCP server, either + * with a custom MCP server URL or a service connector. Your application + * must handle the OAuth authorization flow and provide the token here. + * + * @param authorization the authorization value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setAuthorization(String authorization) { + this.authorization = authorization; + return this; + } + + /** + * Get the serverDescription property: Optional description of the MCP server, used to provide more context. + * + * @return the serverDescription value. + */ + @Generated + public String getServerDescription() { + return this.serverDescription; + } + + /** + * Set the serverDescription property: Optional description of the MCP server, used to provide more context. + * + * @param serverDescription the serverDescription value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setServerDescription(String serverDescription) { + this.serverDescription = serverDescription; + return this; + } + + /** + * Get the headers property: The headers property. + * + * @return the headers value. + */ + @Generated + public Map getHeaders() { + return this.headers; + } + + /** + * Set the headers property: The headers property. + * + * @param headers the headers value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setHeaders(Map headers) { + this.headers = headers; + return this; + } + + /** + * Get the allowedTools property: The allowed_tools property. + * + * @return the allowedTools value. + */ + @Generated + public BinaryData getAllowedTools() { + return this.allowedTools; + } + + /** + * Set the allowedTools property: The allowed_tools property. + * + * @param allowedTools the allowedTools value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setAllowedTools(BinaryData allowedTools) { + this.allowedTools = allowedTools; + return this; + } + + /** + * Get the allowedCallers property: The allowed_callers property. + * + * @return the allowedCallers value. + */ + @Generated + public List getAllowedCallers() { + return this.allowedCallers; + } + + /** + * Set the allowedCallers property: The allowed_callers property. + * + * @param allowedCallers the allowedCallers value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setAllowedCallers(List allowedCallers) { + this.allowedCallers = allowedCallers; + return this; + } + + /** + * Get the requireApproval property: The require_approval property. + * + * @return the requireApproval value. + */ + @Generated + public BinaryData getRequireApproval() { + return this.requireApproval; + } + + /** + * Set the requireApproval property: The require_approval property. + * + * @param requireApproval the requireApproval value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setRequireApproval(BinaryData requireApproval) { + this.requireApproval = requireApproval; + return this; + } + + /** + * Get the deferLoading property: Whether this MCP tool is deferred and discovered via tool search. + * + * @return the deferLoading value. + */ + @Generated + public Boolean isDeferLoading() { + return this.deferLoading; + } + + /** + * Set the deferLoading property: Whether this MCP tool is deferred and discovered via tool search. + * + * @param deferLoading the deferLoading value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setDeferLoading(Boolean deferLoading) { + this.deferLoading = deferLoading; + return this; + } + + /** + * Get the projectConnectionId property: 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. + * + * @return the projectConnectionId value. + */ + @Generated + public String getProjectConnectionId() { + return this.projectConnectionId; + } + + /** + * Set the projectConnectionId property: 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. + * + * @param projectConnectionId the projectConnectionId value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setProjectConnectionId(String projectConnectionId) { + this.projectConnectionId = projectConnectionId; + return this; + } + + /** + * Get the toolConfigs property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @return the toolConfigs value. + */ + @Generated + public Map getToolConfigs() { + return this.toolConfigs; + } + + /** + * Set the toolConfigs property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @param toolConfigs the toolConfigs value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setToolConfigs(Map toolConfigs) { + this.toolConfigs = toolConfigs; + return this; + } + + /** + * Get the serverUrl property: The URL for the MCP server. + * + * @return the serverUrl value. + */ + @Generated + public String getServerUrl() { + return this.serverUrl; + } + + /** + * Set the serverUrl property: The URL for the MCP server. + * + * @param serverUrl the serverUrl value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setServerUrl(String serverUrl) { + this.serverUrl = serverUrl; + return this; + } + + /** + * Get the responseScheduling property: When the MCP invocation creates a follow-up response. Defaults to + * `when_idle`. + * + * @return the responseScheduling value. + */ + @Generated + public VoiceAgentToolResponseScheduling getResponseScheduling() { + return this.responseScheduling; + } + + /** + * Set the responseScheduling property: When the MCP invocation creates a follow-up response. Defaults to + * `when_idle`. + * + * @param responseScheduling the responseScheduling value to set. + * @return the VoiceAgentMcpTool object itself. + */ + @Generated + public VoiceAgentMcpTool setResponseScheduling(VoiceAgentToolResponseScheduling responseScheduling) { + this.responseScheduling = responseScheduling; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("server_label", this.serverLabel); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("authorization", this.authorization); + jsonWriter.writeStringField("server_description", this.serverDescription); + jsonWriter.writeMapField("headers", this.headers, (writer, element) -> writer.writeString(element)); + if (this.allowedTools != null) { + jsonWriter.writeFieldName("allowed_tools"); + this.allowedTools.writeTo(jsonWriter); + } + jsonWriter.writeArrayField("allowed_callers", this.allowedCallers, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + if (this.requireApproval != null) { + jsonWriter.writeFieldName("require_approval"); + this.requireApproval.writeTo(jsonWriter); + } + jsonWriter.writeBooleanField("defer_loading", this.deferLoading); + jsonWriter.writeStringField("project_connection_id", this.projectConnectionId); + jsonWriter.writeMapField("tool_configs", this.toolConfigs, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeStringField("server_url", this.serverUrl); + jsonWriter.writeStringField("response_scheduling", + this.responseScheduling == null ? null : this.responseScheduling.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentMcpTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentMcpTool if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentMcpTool. + */ + @Generated + public static VoiceAgentMcpTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String serverLabel = null; + String type = "mcp"; + String authorization = null; + String serverDescription = null; + Map headers = null; + BinaryData allowedTools = null; + List allowedCallers = null; + BinaryData requireApproval = null; + Boolean deferLoading = null; + String projectConnectionId = null; + Map toolConfigs = null; + String serverUrl = null; + VoiceAgentToolResponseScheduling responseScheduling = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else if ("authorization".equals(fieldName)) { + authorization = reader.getString(); + } else if ("server_description".equals(fieldName)) { + serverDescription = reader.getString(); + } else if ("headers".equals(fieldName)) { + headers = reader.readMap(reader1 -> reader1.getString()); + } else if ("allowed_tools".equals(fieldName)) { + allowedTools + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else if ("allowed_callers".equals(fieldName)) { + allowedCallers + = reader.readArray(reader1 -> CallableToolAllowedCaller.fromString(reader1.getString())); + } else if ("require_approval".equals(fieldName)) { + requireApproval + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else if ("defer_loading".equals(fieldName)) { + deferLoading = reader.getNullable(JsonReader::getBoolean); + } else if ("project_connection_id".equals(fieldName)) { + projectConnectionId = reader.getString(); + } else if ("tool_configs".equals(fieldName)) { + toolConfigs = reader.readMap(reader1 -> ToolConfig.fromJson(reader1)); + } else if ("server_url".equals(fieldName)) { + serverUrl = reader.getString(); + } else if ("response_scheduling".equals(fieldName)) { + responseScheduling = VoiceAgentToolResponseScheduling.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + VoiceAgentMcpTool deserializedVoiceAgentMcpTool = new VoiceAgentMcpTool(serverLabel); + deserializedVoiceAgentMcpTool.type = type; + deserializedVoiceAgentMcpTool.authorization = authorization; + deserializedVoiceAgentMcpTool.serverDescription = serverDescription; + deserializedVoiceAgentMcpTool.headers = headers; + deserializedVoiceAgentMcpTool.allowedTools = allowedTools; + deserializedVoiceAgentMcpTool.allowedCallers = allowedCallers; + deserializedVoiceAgentMcpTool.requireApproval = requireApproval; + deserializedVoiceAgentMcpTool.deferLoading = deferLoading; + deserializedVoiceAgentMcpTool.projectConnectionId = projectConnectionId; + deserializedVoiceAgentMcpTool.toolConfigs = toolConfigs; + deserializedVoiceAgentMcpTool.serverUrl = serverUrl; + deserializedVoiceAgentMcpTool.responseScheduling = responseScheduling; + return deserializedVoiceAgentMcpTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java new file mode 100644 index 000000000000..5f7a4bb04075 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Input audio noise reduction configuration. + */ +@Immutable +public final class VoiceAgentNoiseReduction implements JsonSerializable { + + /* + * The noise reduction mode. + */ + @Generated + private final VoiceAgentNoiseReductionType type; + + /** + * Creates an instance of VoiceAgentNoiseReduction class. + * + * @param type the type value to set. + */ + @Generated + public VoiceAgentNoiseReduction(VoiceAgentNoiseReductionType type) { + this.type = type; + } + + /** + * Get the type property: The noise reduction mode. + * + * @return the type value. + */ + @Generated + public VoiceAgentNoiseReductionType getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentNoiseReduction from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentNoiseReduction if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentNoiseReduction. + */ + @Generated + public static VoiceAgentNoiseReduction fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentNoiseReductionType type = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + type = VoiceAgentNoiseReductionType.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + return new VoiceAgentNoiseReduction(type); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java new file mode 100644 index 000000000000..fd5a38bfcf81 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java @@ -0,0 +1,64 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The input audio noise reduction mode. + */ +public final class VoiceAgentNoiseReductionType extends ExpandableStringEnum { + + /** + * Static value near_field for VoiceAgentNoiseReductionType. + */ + @Generated + public static final VoiceAgentNoiseReductionType NEAR_FIELD = fromString("near_field"); + + /** + * Static value far_field for VoiceAgentNoiseReductionType. + */ + @Generated + public static final VoiceAgentNoiseReductionType FAR_FIELD = fromString("far_field"); + + /** + * Azure deep noise suppression. + */ + @Generated + public static final VoiceAgentNoiseReductionType AZURE_DEEP_NOISE_SUPPRESSION + = fromString("azure_deep_noise_suppression"); + + /** + * Creates a new instance of VoiceAgentNoiseReductionType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentNoiseReductionType() { + } + + /** + * Creates or finds a VoiceAgentNoiseReductionType from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentNoiseReductionType. + */ + @Generated + public static VoiceAgentNoiseReductionType fromString(String name) { + return fromString(name, VoiceAgentNoiseReductionType.class); + } + + /** + * Gets known VoiceAgentNoiseReductionType values. + * + * @return known VoiceAgentNoiseReductionType values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentNoiseReductionType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java new file mode 100644 index 000000000000..6b8168238be7 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java @@ -0,0 +1,190 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * OpenAI semantic VAD turn-detection settings. + */ +@Fluent +public final class VoiceAgentSemanticVadTurnDetection extends VoiceAgentTurnDetectionConfig { + + /* + * The turn-detection strategy. + */ + @Generated + private VoiceAgentTurnDetectionType type = VoiceAgentTurnDetectionType.SEMANTIC_VAD; + + /* + * The eagerness property. + */ + @Generated + private VoiceAgentSemanticVadTurnDetectionEagerness eagerness; + + /* + * The create_response property. + */ + @Generated + private Boolean createResponse; + + /* + * The interrupt_response property. + */ + @Generated + private Boolean interruptResponse; + + /** + * Creates an instance of VoiceAgentSemanticVadTurnDetection class. + */ + @Generated + public VoiceAgentSemanticVadTurnDetection() { + } + + /** + * Get the type property: The turn-detection strategy. + * + * @return the type value. + */ + @Generated + @Override + public VoiceAgentTurnDetectionType getType() { + return this.type; + } + + /** + * Get the eagerness property: The eagerness property. + * + * @return the eagerness value. + */ + @Generated + public VoiceAgentSemanticVadTurnDetectionEagerness getEagerness() { + return this.eagerness; + } + + /** + * Set the eagerness property: The eagerness property. + * + * @param eagerness the eagerness value to set. + * @return the VoiceAgentSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentSemanticVadTurnDetection setEagerness(VoiceAgentSemanticVadTurnDetectionEagerness eagerness) { + this.eagerness = eagerness; + return this; + } + + /** + * Get the createResponse property: The create_response property. + * + * @return the createResponse value. + */ + @Generated + public Boolean isCreateResponse() { + return this.createResponse; + } + + /** + * Set the createResponse property: The create_response property. + * + * @param createResponse the createResponse value to set. + * @return the VoiceAgentSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentSemanticVadTurnDetection setCreateResponse(Boolean createResponse) { + this.createResponse = createResponse; + return this; + } + + /** + * Get the interruptResponse property: The interrupt_response property. + * + * @return the interruptResponse value. + */ + @Generated + public Boolean isInterruptResponse() { + return this.interruptResponse; + } + + /** + * Set the interruptResponse property: The interrupt_response property. + * + * @param interruptResponse the interruptResponse value to set. + * @return the VoiceAgentSemanticVadTurnDetection object itself. + */ + @Generated + public VoiceAgentSemanticVadTurnDetection setInterruptResponse(Boolean interruptResponse) { + this.interruptResponse = interruptResponse; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentSemanticVadTurnDetection setAutoTruncate(Boolean autoTruncate) { + super.setAutoTruncate(autoTruncate); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("auto_truncate", isAutoTruncate()); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("eagerness", this.eagerness == null ? null : this.eagerness.toString()); + jsonWriter.writeBooleanField("create_response", this.createResponse); + jsonWriter.writeBooleanField("interrupt_response", this.interruptResponse); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentSemanticVadTurnDetection from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentSemanticVadTurnDetection if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentSemanticVadTurnDetection. + */ + @Generated + public static VoiceAgentSemanticVadTurnDetection fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentSemanticVadTurnDetection deserializedVoiceAgentSemanticVadTurnDetection + = new VoiceAgentSemanticVadTurnDetection(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("auto_truncate".equals(fieldName)) { + deserializedVoiceAgentSemanticVadTurnDetection + .setAutoTruncate(reader.getNullable(JsonReader::getBoolean)); + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentSemanticVadTurnDetection.type + = VoiceAgentTurnDetectionType.fromString(reader.getString()); + } else if ("eagerness".equals(fieldName)) { + deserializedVoiceAgentSemanticVadTurnDetection.eagerness + = VoiceAgentSemanticVadTurnDetectionEagerness.fromString(reader.getString()); + } else if ("create_response".equals(fieldName)) { + deserializedVoiceAgentSemanticVadTurnDetection.createResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("interrupt_response".equals(fieldName)) { + deserializedVoiceAgentSemanticVadTurnDetection.interruptResponse + = reader.getNullable(JsonReader::getBoolean); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentSemanticVadTurnDetection; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java new file mode 100644 index 000000000000..eb3931a64ff0 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java @@ -0,0 +1,66 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for VoiceAgentSemanticVadTurnDetectionEagerness. + */ +public enum VoiceAgentSemanticVadTurnDetectionEagerness { + /** + * Enum value low. + */ + LOW("low"), + + /** + * Enum value medium. + */ + MEDIUM("medium"), + + /** + * Enum value high. + */ + HIGH("high"), + + /** + * Enum value auto. + */ + AUTO("auto"); + + /** + * The actual serialized value for a VoiceAgentSemanticVadTurnDetectionEagerness instance. + */ + private final String value; + + VoiceAgentSemanticVadTurnDetectionEagerness(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceAgentSemanticVadTurnDetectionEagerness instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceAgentSemanticVadTurnDetectionEagerness object, or null if unable to parse. + */ + public static VoiceAgentSemanticVadTurnDetectionEagerness fromString(String value) { + if (value == null) { + return null; + } + VoiceAgentSemanticVadTurnDetectionEagerness[] items = VoiceAgentSemanticVadTurnDetectionEagerness.values(); + for (VoiceAgentSemanticVadTurnDetectionEagerness item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java new file mode 100644 index 000000000000..adde9f01d982 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java @@ -0,0 +1,360 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Server-side voice activity detection. + */ +@Fluent +public final class VoiceAgentServerVadTurnDetection extends VoiceAgentTurnDetectionConfig { + + /* + * The turn-detection strategy. + */ + @Generated + private VoiceAgentTurnDetectionType type = VoiceAgentTurnDetectionType.SERVER_VAD; + + /* + * The threshold property. + */ + @Generated + private Double threshold; + + /* + * The prefix_padding_ms property. + */ + @Generated + private Long prefixPaddingMs; + + /* + * The silence_duration_ms property. + */ + @Generated + private Long silenceDurationMs; + + /* + * The create_response property. + */ + @Generated + private Boolean createResponse; + + /* + * The interrupt_response property. + */ + @Generated + private Boolean interruptResponse; + + /* + * The idle_timeout_ms property. + */ + @Generated + private Long idleTimeoutMs; + + /* + * Minimum speech duration required to trigger detection, in milliseconds. + */ + @Generated + private Long speechDurationMs; + + /* + * Semantic end-of-utterance detection configuration. Set to null to disable it. + */ + @Generated + private VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection; + + /** + * Creates an instance of VoiceAgentServerVadTurnDetection class. + */ + @Generated + public VoiceAgentServerVadTurnDetection() { + } + + /** + * Get the type property: The turn-detection strategy. + * + * @return the type value. + */ + @Generated + @Override + public VoiceAgentTurnDetectionType getType() { + return this.type; + } + + /** + * Get the threshold property: The threshold property. + * + * @return the threshold value. + */ + @Generated + public Double getThreshold() { + return this.threshold; + } + + /** + * Set the threshold property: The threshold property. + * + * @param threshold the threshold value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setThreshold(Double threshold) { + this.threshold = threshold; + return this; + } + + /** + * Get the prefixPaddingMs property: The prefix_padding_ms property. + * + * @return the prefixPaddingMs value. + */ + @Generated + public Long getPrefixPaddingMs() { + return this.prefixPaddingMs; + } + + /** + * Set the prefixPaddingMs property: The prefix_padding_ms property. + * + * @param prefixPaddingMs the prefixPaddingMs value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setPrefixPaddingMs(Long prefixPaddingMs) { + this.prefixPaddingMs = prefixPaddingMs; + return this; + } + + /** + * Get the silenceDurationMs property: The silence_duration_ms property. + * + * @return the silenceDurationMs value. + */ + @Generated + public Long getSilenceDurationMs() { + return this.silenceDurationMs; + } + + /** + * Set the silenceDurationMs property: The silence_duration_ms property. + * + * @param silenceDurationMs the silenceDurationMs value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setSilenceDurationMs(Long silenceDurationMs) { + this.silenceDurationMs = silenceDurationMs; + return this; + } + + /** + * Get the createResponse property: The create_response property. + * + * @return the createResponse value. + */ + @Generated + public Boolean isCreateResponse() { + return this.createResponse; + } + + /** + * Set the createResponse property: The create_response property. + * + * @param createResponse the createResponse value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setCreateResponse(Boolean createResponse) { + this.createResponse = createResponse; + return this; + } + + /** + * Get the interruptResponse property: The interrupt_response property. + * + * @return the interruptResponse value. + */ + @Generated + public Boolean isInterruptResponse() { + return this.interruptResponse; + } + + /** + * Set the interruptResponse property: The interrupt_response property. + * + * @param interruptResponse the interruptResponse value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setInterruptResponse(Boolean interruptResponse) { + this.interruptResponse = interruptResponse; + return this; + } + + /** + * Get the idleTimeoutMs property: The idle_timeout_ms property. + * + * @return the idleTimeoutMs value. + */ + @Generated + public Long getIdleTimeoutMs() { + return this.idleTimeoutMs; + } + + /** + * Set the idleTimeoutMs property: The idle_timeout_ms property. + * + * @param idleTimeoutMs the idleTimeoutMs value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setIdleTimeoutMs(Long idleTimeoutMs) { + this.idleTimeoutMs = idleTimeoutMs; + return this; + } + + /** + * Get the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @return the speechDurationMs value. + */ + @Generated + public Duration getSpeechDurationMs() { + if (this.speechDurationMs == null) { + return null; + } + return Duration.ofMillis(this.speechDurationMs); + } + + /** + * Set the speechDurationMs property: Minimum speech duration required to trigger detection, in milliseconds. + * + * @param speechDurationMs the speechDurationMs value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection setSpeechDurationMs(Duration speechDurationMs) { + if (speechDurationMs == null) { + this.speechDurationMs = null; + } else { + this.speechDurationMs = speechDurationMs.toMillis(); + } + return this; + } + + /** + * Get the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @return the endOfUtteranceDetection value. + */ + @Generated + public VoiceAgentEndOfUtteranceDetection getEndOfUtteranceDetection() { + return this.endOfUtteranceDetection; + } + + /** + * Set the endOfUtteranceDetection property: Semantic end-of-utterance detection configuration. Set to null to + * disable it. + * + * @param endOfUtteranceDetection the endOfUtteranceDetection value to set. + * @return the VoiceAgentServerVadTurnDetection object itself. + */ + @Generated + public VoiceAgentServerVadTurnDetection + setEndOfUtteranceDetection(VoiceAgentEndOfUtteranceDetection endOfUtteranceDetection) { + this.endOfUtteranceDetection = endOfUtteranceDetection; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentServerVadTurnDetection setAutoTruncate(Boolean autoTruncate) { + super.setAutoTruncate(autoTruncate); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("auto_truncate", isAutoTruncate()); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeNumberField("threshold", this.threshold); + jsonWriter.writeNumberField("prefix_padding_ms", this.prefixPaddingMs); + jsonWriter.writeNumberField("silence_duration_ms", this.silenceDurationMs); + jsonWriter.writeBooleanField("create_response", this.createResponse); + jsonWriter.writeBooleanField("interrupt_response", this.interruptResponse); + jsonWriter.writeNumberField("idle_timeout_ms", this.idleTimeoutMs); + jsonWriter.writeNumberField("speech_duration_ms", this.speechDurationMs); + jsonWriter.writeJsonField("end_of_utterance_detection", this.endOfUtteranceDetection); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentServerVadTurnDetection from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentServerVadTurnDetection if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentServerVadTurnDetection. + */ + @Generated + public static VoiceAgentServerVadTurnDetection fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentServerVadTurnDetection deserializedVoiceAgentServerVadTurnDetection + = new VoiceAgentServerVadTurnDetection(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("auto_truncate".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection + .setAutoTruncate(reader.getNullable(JsonReader::getBoolean)); + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.type + = VoiceAgentTurnDetectionType.fromString(reader.getString()); + } else if ("threshold".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.threshold = reader.getNullable(JsonReader::getDouble); + } else if ("prefix_padding_ms".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.prefixPaddingMs + = reader.getNullable(JsonReader::getLong); + } else if ("silence_duration_ms".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.silenceDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("create_response".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.createResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("interrupt_response".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.interruptResponse + = reader.getNullable(JsonReader::getBoolean); + } else if ("idle_timeout_ms".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.idleTimeoutMs + = reader.getNullable(JsonReader::getLong); + } else if ("speech_duration_ms".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.speechDurationMs + = reader.getNullable(JsonReader::getLong); + } else if ("end_of_utterance_detection".equals(fieldName)) { + deserializedVoiceAgentServerVadTurnDetection.endOfUtteranceDetection + = VoiceAgentEndOfUtteranceDetection.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentServerVadTurnDetection; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java new file mode 100644 index 000000000000..6492cafa88f7 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Additional fields that a voice-agent session may include in service outputs. + */ +public enum VoiceAgentSessionIncludeOption { + /** + * Enum value item.input_audio_transcription.logprobs. + */ + INPUT_AUDIO_TRANSCRIPTION_LOGPROBS("item.input_audio_transcription.logprobs"), + + /** + * Enum value item.input_audio_transcription.phrases. + */ + INPUT_AUDIO_TRANSCRIPTION_PHRASES("item.input_audio_transcription.phrases"), + + /** + * Enum value file_search_call.results. + */ + FILE_SEARCH_CALL_RESULTS("file_search_call.results"); + + /** + * The actual serialized value for a VoiceAgentSessionIncludeOption instance. + */ + private final String value; + + VoiceAgentSessionIncludeOption(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceAgentSessionIncludeOption instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceAgentSessionIncludeOption object, or null if unable to parse. + */ + public static VoiceAgentSessionIncludeOption fromString(String value) { + if (value == null) { + return null; + } + VoiceAgentSessionIncludeOption[] items = VoiceAgentSessionIncludeOption.values(); + for (VoiceAgentSessionIncludeOption item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java new file mode 100644 index 000000000000..8ce6b201a71e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.util.List; + +/** + * A static interim response selected from configured text. + */ +@Fluent +public final class VoiceAgentStaticInterimResponseConfig extends VoiceAgentInterimResponseConfig { + + /* + * The interim-response implementation. + */ + @Generated + private String type = "static_interim_response"; + + /* + * Candidate text values for the interim response. + */ + @Generated + private List texts; + + /** + * Creates an instance of VoiceAgentStaticInterimResponseConfig class. + */ + @Generated + public VoiceAgentStaticInterimResponseConfig() { + } + + /** + * Get the type property: The interim-response implementation. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the texts property: Candidate text values for the interim response. + * + * @return the texts value. + */ + @Generated + public List getTexts() { + return this.texts; + } + + /** + * Set the texts property: Candidate text values for the interim response. + * + * @param texts the texts value to set. + * @return the VoiceAgentStaticInterimResponseConfig object itself. + */ + @Generated + public VoiceAgentStaticInterimResponseConfig setTexts(List texts) { + this.texts = texts; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentStaticInterimResponseConfig setTriggers(List triggers) { + super.setTriggers(triggers); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public VoiceAgentStaticInterimResponseConfig setLatencyThresholdMs(Duration latencyThresholdMs) { + super.setLatencyThresholdMs(latencyThresholdMs); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("triggers", getTriggers(), + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + if (getLatencyThresholdMs() != null) { + jsonWriter.writeNumberField("latency_threshold_ms", getLatencyThresholdMs().toMillis()); + } + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeArrayField("texts", this.texts, (writer, element) -> writer.writeString(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentStaticInterimResponseConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentStaticInterimResponseConfig if the JsonReader was pointing to an instance of it, + * or null if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentStaticInterimResponseConfig. + */ + @Generated + public static VoiceAgentStaticInterimResponseConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentStaticInterimResponseConfig deserializedVoiceAgentStaticInterimResponseConfig + = new VoiceAgentStaticInterimResponseConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("triggers".equals(fieldName)) { + List triggers + = reader.readArray(reader1 -> VoiceAgentInterimResponseTrigger.fromString(reader1.getString())); + deserializedVoiceAgentStaticInterimResponseConfig.setTriggers(triggers); + } else if ("latency_threshold_ms".equals(fieldName)) { + Long latencyThresholdMsHolder = reader.getNullable(JsonReader::getLong); + if (latencyThresholdMsHolder != null) { + deserializedVoiceAgentStaticInterimResponseConfig + .setLatencyThresholdMs(Duration.ofMillis(latencyThresholdMsHolder)); + } + } else if ("type".equals(fieldName)) { + deserializedVoiceAgentStaticInterimResponseConfig.type = reader.getString(); + } else if ("texts".equals(fieldName)) { + List texts = reader.readArray(reader1 -> reader1.getString()); + deserializedVoiceAgentStaticInterimResponseConfig.texts = texts; + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentStaticInterimResponseConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java new file mode 100644 index 000000000000..2c8445869052 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java @@ -0,0 +1,138 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A service-managed control that acts on the active voice session without customer code or external authentication. + */ +@Fluent +public final class VoiceAgentSystemTool extends VoiceAgentTool { + + /* + * The tool kind. + */ + @Generated + private String type = "system"; + + /* + * The service-managed control action. Known values are stable; additional values may be added over time. + */ + @Generated + private final VoiceAgentSystemToolName name; + + /* + * An optional description of the system tool. + */ + @Generated + private String description; + + /** + * Creates an instance of VoiceAgentSystemTool class. + * + * @param name the name value to set. + */ + @Generated + public VoiceAgentSystemTool(VoiceAgentSystemToolName name) { + this.name = name; + } + + /** + * Get the type property: The tool kind. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the name property: The service-managed control action. Known values are stable; additional values may be + * added over time. + * + * @return the name value. + */ + @Generated + public VoiceAgentSystemToolName getName() { + return this.name; + } + + /** + * Get the description property: An optional description of the system tool. + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Set the description property: An optional description of the system tool. + * + * @param description the description value to set. + * @return the VoiceAgentSystemTool object itself. + */ + @Generated + public VoiceAgentSystemTool setDescription(String description) { + this.description = description; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name == null ? null : this.name.toString()); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("description", this.description); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentSystemTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentSystemTool if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentSystemTool. + */ + @Generated + public static VoiceAgentSystemTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentSystemToolName name = null; + String type = "system"; + String description = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = VoiceAgentSystemToolName.fromString(reader.getString()); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else if ("description".equals(fieldName)) { + description = reader.getString(); + } else { + reader.skipChildren(); + } + } + VoiceAgentSystemTool deserializedVoiceAgentSystemTool = new VoiceAgentSystemTool(name); + deserializedVoiceAgentSystemTool.type = type; + deserializedVoiceAgentSystemTool.description = description; + return deserializedVoiceAgentSystemTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java new file mode 100644 index 000000000000..caa0a2d02ced --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * A service-managed voice-session control action. Known values are stable; additional values may be added over time. + */ +public final class VoiceAgentSystemToolName extends ExpandableStringEnum { + + /** + * Ends the active conversation. + */ + @Generated + public static final VoiceAgentSystemToolName END_CONVERSATION = fromString("end_conversation"); + + /** + * Creates a new instance of VoiceAgentSystemToolName value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentSystemToolName() { + } + + /** + * Creates or finds a VoiceAgentSystemToolName from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentSystemToolName. + */ + @Generated + public static VoiceAgentSystemToolName fromString(String name) { + return fromString(name, VoiceAgentSystemToolName.class); + } + + /** + * Gets known VoiceAgentSystemToolName values. + * + * @return known VoiceAgentSystemToolName values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentSystemToolName.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java new file mode 100644 index 000000000000..2fcde0868bfa --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A deterministic greeting rendered with the voice agent's structured inputs and synthesized without model-authored + * generation. + */ +@Immutable +public final class VoiceAgentTemplateGreetingConfig extends VoiceAgentGreetingConfig { + + /* + * The greeting mode. + */ + @Generated + private String type = "template"; + + /* + * The Handlebars text template spoken at session start. + */ + @Generated + private final String text; + + /** + * Creates an instance of VoiceAgentTemplateGreetingConfig class. + * + * @param text the text value to set. + */ + @Generated + public VoiceAgentTemplateGreetingConfig(String text) { + this.text = text; + } + + /** + * Get the type property: The greeting mode. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the text property: The Handlebars text template spoken at session start. + * + * @return the text value. + */ + @Generated + public String getText() { + return this.text; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("text", this.text); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentTemplateGreetingConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentTemplateGreetingConfig if the JsonReader was pointing to an instance of it, or + * null if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentTemplateGreetingConfig. + */ + @Generated + public static VoiceAgentTemplateGreetingConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String text = null; + String type = "template"; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("text".equals(fieldName)) { + text = reader.getString(); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else { + reader.skipChildren(); + } + } + VoiceAgentTemplateGreetingConfig deserializedVoiceAgentTemplateGreetingConfig + = new VoiceAgentTemplateGreetingConfig(text); + deserializedVoiceAgentTemplateGreetingConfig.type = type; + return deserializedVoiceAgentTemplateGreetingConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java new file mode 100644 index 000000000000..9cebd8904b37 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A tool usable by a voice agent. + */ +@Immutable +public class VoiceAgentTool implements JsonSerializable { + + /* + * The tool kind. + */ + @Generated + private String type = "VoiceAgentTool"; + + /** + * Creates an instance of VoiceAgentTool class. + */ + @Generated + public VoiceAgentTool() { + } + + /** + * Get the type property: The tool kind. + * + * @return the type value. + */ + @Generated + public String getType() { + return this.type; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentTool if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentTool. + */ + @Generated + public static VoiceAgentTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("function".equals(discriminatorValue)) { + return VoiceAgentFunctionTool.fromJson(readerToUse.reset()); + } else if ("mcp".equals(discriminatorValue)) { + return VoiceAgentMcpTool.fromJson(readerToUse.reset()); + } else if ("system".equals(discriminatorValue)) { + return VoiceAgentSystemTool.fromJson(readerToUse.reset()); + } else if ("toolbox".equals(discriminatorValue)) { + return VoiceAgentToolboxTool.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static VoiceAgentTool fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentTool deserializedVoiceAgentTool = new VoiceAgentTool(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedVoiceAgentTool.type = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java new file mode 100644 index 000000000000..3b84befe8ac2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * When a tool invocation creates a follow-up response. Additional values may be added over time. + */ +public final class VoiceAgentToolResponseScheduling extends ExpandableStringEnum { + + /** + * Do not create a follow-up response after the service-executed tool invocation completes. + */ + @Generated + public static final VoiceAgentToolResponseScheduling SILENT = fromString("silent"); + + /** + * Create a follow-up response when the conversation is idle. + */ + @Generated + public static final VoiceAgentToolResponseScheduling WHEN_IDLE = fromString("when_idle"); + + /** + * Interrupt the active response and create a follow-up response. + */ + @Generated + public static final VoiceAgentToolResponseScheduling INTERRUPT = fromString("interrupt"); + + /** + * Create a follow-up response only when no response is active. + */ + @Generated + public static final VoiceAgentToolResponseScheduling SKIP_IF_BUSY = fromString("skip_if_busy"); + + /** + * Creates a new instance of VoiceAgentToolResponseScheduling value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentToolResponseScheduling() { + } + + /** + * Creates or finds a VoiceAgentToolResponseScheduling from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentToolResponseScheduling. + */ + @Generated + public static VoiceAgentToolResponseScheduling fromString(String name) { + return fromString(name, VoiceAgentToolResponseScheduling.class); + } + + /** + * Gets known VoiceAgentToolResponseScheduling values. + * + * @return known VoiceAgentToolResponseScheduling values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentToolResponseScheduling.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java new file mode 100644 index 000000000000..2657c577ca27 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A reference to a Foundry toolbox, which is a versioned bundle of tools executed through its MCP endpoint. + */ +@Fluent +public final class VoiceAgentToolboxTool extends VoiceAgentTool { + + /* + * The tool kind. + */ + @Generated + private String type = "toolbox"; + + /* + * The name of the toolbox to attach. + */ + @Generated + private final String toolboxName; + + /* + * The immutable version of the toolbox to attach. + */ + @Generated + private final String toolboxVersion; + + /* + * When the toolbox invocation creates a follow-up response. Defaults to `when_idle`. + */ + @Generated + private VoiceAgentToolResponseScheduling responseScheduling; + + /** + * Creates an instance of VoiceAgentToolboxTool class. + * + * @param toolboxName the toolboxName value to set. + * @param toolboxVersion the toolboxVersion value to set. + */ + @Generated + public VoiceAgentToolboxTool(String toolboxName, String toolboxVersion) { + this.toolboxName = toolboxName; + this.toolboxVersion = toolboxVersion; + } + + /** + * Get the type property: The tool kind. + * + * @return the type value. + */ + @Generated + @Override + public String getType() { + return this.type; + } + + /** + * Get the toolboxName property: The name of the toolbox to attach. + * + * @return the toolboxName value. + */ + @Generated + public String getToolboxName() { + return this.toolboxName; + } + + /** + * Get the toolboxVersion property: The immutable version of the toolbox to attach. + * + * @return the toolboxVersion value. + */ + @Generated + public String getToolboxVersion() { + return this.toolboxVersion; + } + + /** + * Get the responseScheduling property: When the toolbox invocation creates a follow-up response. Defaults to + * `when_idle`. + * + * @return the responseScheduling value. + */ + @Generated + public VoiceAgentToolResponseScheduling getResponseScheduling() { + return this.responseScheduling; + } + + /** + * Set the responseScheduling property: When the toolbox invocation creates a follow-up response. Defaults to + * `when_idle`. + * + * @param responseScheduling the responseScheduling value to set. + * @return the VoiceAgentToolboxTool object itself. + */ + @Generated + public VoiceAgentToolboxTool setResponseScheduling(VoiceAgentToolResponseScheduling responseScheduling) { + this.responseScheduling = responseScheduling; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("toolbox_name", this.toolboxName); + jsonWriter.writeStringField("toolbox_version", this.toolboxVersion); + jsonWriter.writeStringField("type", this.type); + jsonWriter.writeStringField("response_scheduling", + this.responseScheduling == null ? null : this.responseScheduling.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentToolboxTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentToolboxTool if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceAgentToolboxTool. + */ + @Generated + public static VoiceAgentToolboxTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String toolboxName = null; + String toolboxVersion = null; + String type = "toolbox"; + VoiceAgentToolResponseScheduling responseScheduling = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("toolbox_name".equals(fieldName)) { + toolboxName = reader.getString(); + } else if ("toolbox_version".equals(fieldName)) { + toolboxVersion = reader.getString(); + } else if ("type".equals(fieldName)) { + type = reader.getString(); + } else if ("response_scheduling".equals(fieldName)) { + responseScheduling = VoiceAgentToolResponseScheduling.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + VoiceAgentToolboxTool deserializedVoiceAgentToolboxTool + = new VoiceAgentToolboxTool(toolboxName, toolboxVersion); + deserializedVoiceAgentToolboxTool.type = type; + deserializedVoiceAgentToolboxTool.responseScheduling = responseScheduling; + return deserializedVoiceAgentToolboxTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java new file mode 100644 index 000000000000..71717fc8338e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Turn-detection configuration for a voice agent. + */ +@Fluent +public class VoiceAgentTurnDetectionConfig implements JsonSerializable { + + /* + * The turn-detection strategy. + */ + @Generated + private VoiceAgentTurnDetectionType type = VoiceAgentTurnDetectionType.fromString("VoiceAgentTurnDetectionConfig"); + + /* + * Whether the input audio buffer is truncated automatically when speech stops. + */ + @Generated + private Boolean autoTruncate; + + /** + * Creates an instance of VoiceAgentTurnDetectionConfig class. + */ + @Generated + public VoiceAgentTurnDetectionConfig() { + } + + /** + * Get the type property: The turn-detection strategy. + * + * @return the type value. + */ + @Generated + public VoiceAgentTurnDetectionType getType() { + return this.type; + } + + /** + * Get the autoTruncate property: Whether the input audio buffer is truncated automatically when speech stops. + * + * @return the autoTruncate value. + */ + @Generated + public Boolean isAutoTruncate() { + return this.autoTruncate; + } + + /** + * Set the autoTruncate property: Whether the input audio buffer is truncated automatically when speech stops. + * + * @param autoTruncate the autoTruncate value to set. + * @return the VoiceAgentTurnDetectionConfig object itself. + */ + @Generated + public VoiceAgentTurnDetectionConfig setAutoTruncate(Boolean autoTruncate) { + this.autoTruncate = autoTruncate; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeBooleanField("auto_truncate", this.autoTruncate); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentTurnDetectionConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentTurnDetectionConfig if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceAgentTurnDetectionConfig. + */ + @Generated + public static VoiceAgentTurnDetectionConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String discriminatorValue = null; + try (JsonReader readerToUse = reader.bufferObject()) { + // Prepare for reading + readerToUse.nextToken(); + while (readerToUse.nextToken() != JsonToken.END_OBJECT) { + String fieldName = readerToUse.getFieldName(); + readerToUse.nextToken(); + if ("type".equals(fieldName)) { + discriminatorValue = readerToUse.getString(); + break; + } else { + readerToUse.skipChildren(); + } + } + // Use the discriminator value to determine which subtype should be deserialized. + if ("server_vad".equals(discriminatorValue)) { + return VoiceAgentServerVadTurnDetection.fromJson(readerToUse.reset()); + } else if ("azure_semantic_vad".equals(discriminatorValue)) { + return VoiceAgentAzureSemanticVadTurnDetection.fromJson(readerToUse.reset()); + } else if ("azure_semantic_vad_en".equals(discriminatorValue)) { + return VoiceAgentAzureSemanticVadEnTurnDetection.fromJson(readerToUse.reset()); + } else if ("azure_semantic_vad_multilingual".equals(discriminatorValue)) { + return VoiceAgentAzureSemanticVadMultilingualTurnDetection.fromJson(readerToUse.reset()); + } else if ("semantic_vad".equals(discriminatorValue)) { + return VoiceAgentSemanticVadTurnDetection.fromJson(readerToUse.reset()); + } else { + return fromJsonKnownDiscriminator(readerToUse.reset()); + } + } + }); + } + + @Generated + static VoiceAgentTurnDetectionConfig fromJsonKnownDiscriminator(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentTurnDetectionConfig deserializedVoiceAgentTurnDetectionConfig + = new VoiceAgentTurnDetectionConfig(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("type".equals(fieldName)) { + deserializedVoiceAgentTurnDetectionConfig.type + = VoiceAgentTurnDetectionType.fromString(reader.getString()); + } else if ("auto_truncate".equals(fieldName)) { + deserializedVoiceAgentTurnDetectionConfig.autoTruncate = reader.getNullable(JsonReader::getBoolean); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceAgentTurnDetectionConfig; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java new file mode 100644 index 000000000000..b15546ec36da --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The turn-detection strategy. Additional values may be added over time. + */ +public final class VoiceAgentTurnDetectionType extends ExpandableStringEnum { + + /** + * Server-side voice activity detection. + */ + @Generated + public static final VoiceAgentTurnDetectionType SERVER_VAD = fromString("server_vad"); + + /** + * Semantic voice activity detection. + */ + @Generated + public static final VoiceAgentTurnDetectionType SEMANTIC_VAD = fromString("semantic_vad"); + + /** + * Azure semantic voice activity detection. + */ + @Generated + public static final VoiceAgentTurnDetectionType AZURE_SEMANTIC_VAD = fromString("azure_semantic_vad"); + + /** + * English-optimized Azure semantic voice activity detection. + */ + @Generated + public static final VoiceAgentTurnDetectionType AZURE_SEMANTIC_VAD_EN = fromString("azure_semantic_vad_en"); + + /** + * Multilingual Azure semantic voice activity detection. + */ + @Generated + public static final VoiceAgentTurnDetectionType AZURE_SEMANTIC_VAD_MULTILINGUAL + = fromString("azure_semantic_vad_multilingual"); + + /** + * Creates a new instance of VoiceAgentTurnDetectionType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentTurnDetectionType() { + } + + /** + * Creates or finds a VoiceAgentTurnDetectionType from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentTurnDetectionType. + */ + @Generated + public static VoiceAgentTurnDetectionType fromString(String name) { + return fromString(name, VoiceAgentTurnDetectionType.class); + } + + /** + * Gets known VoiceAgentTurnDetectionType values. + * + * @return known VoiceAgentTurnDetectionType values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentTurnDetectionType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java new file mode 100644 index 000000000000..84111c703be4 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * The WebSocket subprotocol supported by a voice-agent connection. + */ +public enum VoiceAgentWebSocketSubprotocol { + /** + * Enum value realtime. + */ + REALTIME("realtime"); + + /** + * The actual serialized value for a VoiceAgentWebSocketSubprotocol instance. + */ + private final String value; + + VoiceAgentWebSocketSubprotocol(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceAgentWebSocketSubprotocol instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceAgentWebSocketSubprotocol object, or null if unable to parse. + */ + public static VoiceAgentWebSocketSubprotocol fromString(String value) { + if (value == null) { + return null; + } + VoiceAgentWebSocketSubprotocol[] items = VoiceAgentWebSocketSubprotocol.values(); + for (VoiceAgentWebSocketSubprotocol item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java new file mode 100644 index 000000000000..c05d9e6dbc2c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * An audio codec. Additional values may be added over time. + */ +public final class VoiceAudioCodec extends ExpandableStringEnum { + + /** + * 16-bit pulse-code modulation. + */ + @Generated + public static final VoiceAudioCodec PCM16 = fromString("pcm16"); + + /** + * G.711 mu-law. + */ + @Generated + public static final VoiceAudioCodec PCMU = fromString("pcmu"); + + /** + * G.711 A-law. + */ + @Generated + public static final VoiceAudioCodec PCMA = fromString("pcma"); + + /** + * Creates a new instance of VoiceAudioCodec value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAudioCodec() { + } + + /** + * Creates or finds a VoiceAudioCodec from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAudioCodec. + */ + @Generated + public static VoiceAudioCodec fromString(String name) { + return fromString(name, VoiceAudioCodec.class); + } + + /** + * Gets known VoiceAudioCodec values. + * + * @return known VoiceAudioCodec values. + */ + @Generated + public static Collection values() { + return values(VoiceAudioCodec.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java new file mode 100644 index 000000000000..1987a8364d62 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * An audio container format. Additional values may be added over time. + */ +public final class VoiceAudioContainerFormat extends ExpandableStringEnum { + + /** + * Waveform Audio File Format. + */ + @Generated + public static final VoiceAudioContainerFormat WAV = fromString("wav"); + + /** + * Creates a new instance of VoiceAudioContainerFormat value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAudioContainerFormat() { + } + + /** + * Creates or finds a VoiceAudioContainerFormat from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAudioContainerFormat. + */ + @Generated + public static VoiceAudioContainerFormat fromString(String name) { + return fromString(name, VoiceAudioContainerFormat.class); + } + + /** + * Gets known VoiceAudioContainerFormat values. + * + * @return known VoiceAudioContainerFormat values. + */ + @Generated + public static Collection values() { + return values(VoiceAudioContainerFormat.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java new file mode 100644 index 000000000000..358e59272178 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * A voice-audio participant role. Additional values may be added over time. + */ +public final class VoiceAudioRole extends ExpandableStringEnum { + + /** + * Audio produced by the user. + */ + @Generated + public static final VoiceAudioRole USER = fromString("user"); + + /** + * Audio produced by the agent. + */ + @Generated + public static final VoiceAudioRole AGENT = fromString("agent"); + + /** + * Creates a new instance of VoiceAudioRole value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAudioRole() { + } + + /** + * Creates or finds a VoiceAudioRole from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAudioRole. + */ + @Generated + public static VoiceAudioRole fromString(String name) { + return fromString(name, VoiceAudioRole.class); + } + + /** + * Gets known VoiceAudioRole values. + * + * @return known VoiceAudioRole values. + */ + @Generated + public static Collection values() { + return values(VoiceAudioRole.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversation.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversation.java new file mode 100644 index 000000000000..dc71ae3c02f8 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversation.java @@ -0,0 +1,249 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Map; + +/** + * A persisted voice conversation. The Foundry envelope that owns a voice agent's stored + * transcript, responses, per-turn metrics, and audio. It is the parent, retention, and delete boundary: + * deleting it cascades to its responses, items, metrics, and audio. When finalization fails, any partial persisted + * responses, items, and item audio remain readable. + */ +@Immutable +public final class VoiceConversation implements JsonSerializable { + + /* + * The unique id of the conversation. + */ + @Generated + private final String id; + + /* + * The object type. Always `voice.conversation`. + */ + @Generated + private final String object = "voice.conversation"; + + /* + * The lifecycle status of the conversation. + */ + @Generated + private final VoiceConversationStatus status; + + /* + * The Unix timestamp (in seconds) for when the conversation was created. + */ + @Generated + private final long createdAt; + + /* + * The Unix timestamp (in seconds) for when session and persistence finalization reached the terminal `completed` or + * `failed` status. Absent while `status` is `in_progress`. + */ + @Generated + private Long completedAt; + + /* + * A set of key-value pairs attached to the conversation. + */ + @Generated + private Map metadata; + + /* + * 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. + */ + @Generated + private RealtimeResponseUsage usage; + + /* + * The terminal error that prevented persistence finalization. Present only when `status` is `failed`. + */ + @Generated + private ApiError lastError; + + /** + * Creates an instance of VoiceConversation class. + * + * @param id the id value to set. + * @param status the status value to set. + * @param createdAt the createdAt value to set. + */ + @Generated + private VoiceConversation(String id, VoiceConversationStatus status, OffsetDateTime createdAt) { + this.id = id; + this.status = status; + if (createdAt == null) { + this.createdAt = 0L; + } else { + this.createdAt = createdAt.toEpochSecond(); + } + } + + /** + * Get the id property: The unique id of the conversation. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the object property: The object type. Always `voice.conversation`. + * + * @return the object value. + */ + @Generated + public String getObject() { + return this.object; + } + + /** + * Get the status property: The lifecycle status of the conversation. + * + * @return the status value. + */ + @Generated + public VoiceConversationStatus getStatus() { + return this.status; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the conversation was created. + * + * @return the createdAt value. + */ + @Generated + public OffsetDateTime getCreatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.createdAt), ZoneOffset.UTC); + } + + /** + * Get the completedAt property: The Unix timestamp (in seconds) for when session and persistence finalization + * reached the terminal `completed` or `failed` status. Absent while `status` is `in_progress`. + * + * @return the completedAt value. + */ + @Generated + public OffsetDateTime getCompletedAt() { + if (this.completedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.completedAt), ZoneOffset.UTC); + } + + /** + * Get the metadata property: A set of key-value pairs attached to the conversation. + * + * @return the metadata value. + */ + @Generated + public Map getMetadata() { + return this.metadata; + } + + /** + * Get the usage property: 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. + * + * @return the usage value. + */ + @Generated + public RealtimeResponseUsage getUsage() { + return this.usage; + } + + /** + * Get the lastError property: The terminal error that prevented persistence finalization. Present only when + * `status` is `failed`. + * + * @return the lastError value. + */ + @Generated + public ApiError getLastError() { + return this.lastError; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("object", this.object); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeLongField("created_at", this.createdAt); + jsonWriter.writeNumberField("completed_at", this.completedAt); + jsonWriter.writeMapField("metadata", this.metadata, (writer, element) -> writer.writeString(element)); + jsonWriter.writeJsonField("usage", this.usage); + jsonWriter.writeJsonField("last_error", this.lastError); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceConversation from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceConversation if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceConversation. + */ + @Generated + public static VoiceConversation fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + VoiceConversationStatus status = null; + OffsetDateTime createdAt = null; + Long completedAt = null; + Map metadata = null; + RealtimeResponseUsage usage = null; + ApiError lastError = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("status".equals(fieldName)) { + status = VoiceConversationStatus.fromString(reader.getString()); + } else if ("created_at".equals(fieldName)) { + createdAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else if ("completed_at".equals(fieldName)) { + completedAt = reader.getNullable(JsonReader::getLong); + } else if ("metadata".equals(fieldName)) { + metadata = reader.readMap(reader1 -> reader1.getString()); + } else if ("usage".equals(fieldName)) { + usage = RealtimeResponseUsage.fromJson(reader); + } else if ("last_error".equals(fieldName)) { + lastError = ApiError.fromJson(reader); + } else { + reader.skipChildren(); + } + } + VoiceConversation deserializedVoiceConversation = new VoiceConversation(id, status, createdAt); + deserializedVoiceConversation.completedAt = completedAt; + deserializedVoiceConversation.metadata = metadata; + deserializedVoiceConversation.usage = usage; + deserializedVoiceConversation.lastError = lastError; + return deserializedVoiceConversation; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java new file mode 100644 index 000000000000..2ec5dae1b324 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The lifecycle status of a persisted voice conversation: + * - `in_progress`: the live session is active, or post-session persistence finalization is pending. + * - `completed`: finalization succeeded after normal or client close, `end_conversation`, a max-duration `1001` + * close, or a client or network disconnect that the service can still finalize. + * - `failed`: a terminal service, bridge, storage, or unrecoverable transport failure prevented finalization. + */ +public final class VoiceConversationStatus extends ExpandableStringEnum { + + /** + * The live session is active, or post-session persistence finalization is still pending. + */ + @Generated + public static final VoiceConversationStatus IN_PROGRESS = fromString("in_progress"); + + /** + * Persistence finalization succeeded. This includes normal or client-initiated close, the `end_conversation` system + * tool, a max-duration `1001` close, and client or network disconnects that the service can still finalize. + */ + @Generated + public static final VoiceConversationStatus COMPLETED = fromString("completed"); + + /** + * A terminal service, bridge, storage, or unrecoverable transport failure prevented persistence finalization. + */ + @Generated + public static final VoiceConversationStatus FAILED = fromString("failed"); + + /** + * Creates a new instance of VoiceConversationStatus value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceConversationStatus() { + } + + /** + * Creates or finds a VoiceConversationStatus from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceConversationStatus. + */ + @Generated + public static VoiceConversationStatus fromString(String name) { + return fromString(name, VoiceConversationStatus.class); + } + + /** + * Gets known VoiceConversationStatus values. + * + * @return known VoiceConversationStatus values. + */ + @Generated + public static Collection values() { + return values(VoiceConversationStatus.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java new file mode 100644 index 000000000000..04c5a3752194 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java @@ -0,0 +1,288 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Metadata for a single conversation item's audio segment. For bring-your-own-storage (BYOS), the response includes + * `blob_uri`, a direct customer-storage URI without a SAS token, that the customer accesses with their own + * credentials. For Foundry-managed storage, `blob_uri` is absent and the bytes are streamed through the item's + * `/audio/content` route. + */ +@Immutable +public final class VoiceItemAudioResponse implements JsonSerializable { + + /* + * The id of the conversation the item belongs to. + */ + @Generated + private final String conversationId; + + /* + * The id of the item this audio belongs to. + */ + @Generated + private final String itemId; + + /* + * The role the audio belongs to. + */ + @Generated + private VoiceAudioRole role; + + /* + * The container format of the audio. + */ + @Generated + private VoiceAudioContainerFormat format; + + /* + * The audio codec. + */ + @Generated + private VoiceAudioCodec codec; + + /* + * The sample rate in Hz. + */ + @Generated + private Integer sampleRate; + + /* + * The number of audio channels. + */ + @Generated + private Integer channels; + + /* + * The offset from the session start at which this segment begins. + */ + @Generated + private Long startOffsetMs; + + /* + * The duration of the audio segment. + */ + @Generated + private Long durationMs; + + /* + * 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. + */ + @Generated + private String blobUri; + + /** + * Creates an instance of VoiceItemAudioResponse class. + * + * @param conversationId the conversationId value to set. + * @param itemId the itemId value to set. + */ + @Generated + private VoiceItemAudioResponse(String conversationId, String itemId) { + this.conversationId = conversationId; + this.itemId = itemId; + } + + /** + * Get the conversationId property: The id of the conversation the item belongs to. + * + * @return the conversationId value. + */ + @Generated + public String getConversationId() { + return this.conversationId; + } + + /** + * Get the itemId property: The id of the item this audio belongs to. + * + * @return the itemId value. + */ + @Generated + public String getItemId() { + return this.itemId; + } + + /** + * Get the role property: The role the audio belongs to. + * + * @return the role value. + */ + @Generated + public VoiceAudioRole getRole() { + return this.role; + } + + /** + * Get the format property: The container format of the audio. + * + * @return the format value. + */ + @Generated + public VoiceAudioContainerFormat getFormat() { + return this.format; + } + + /** + * Get the codec property: The audio codec. + * + * @return the codec value. + */ + @Generated + public VoiceAudioCodec getCodec() { + return this.codec; + } + + /** + * Get the sampleRate property: The sample rate in Hz. + * + * @return the sampleRate value. + */ + @Generated + public Integer getSampleRate() { + return this.sampleRate; + } + + /** + * Get the channels property: The number of audio channels. + * + * @return the channels value. + */ + @Generated + public Integer getChannels() { + return this.channels; + } + + /** + * Get the startOffsetMs property: The offset from the session start at which this segment begins. + * + * @return the startOffsetMs value. + */ + @Generated + public Duration getStartOffsetMs() { + if (this.startOffsetMs == null) { + return null; + } + return Duration.ofMillis(this.startOffsetMs); + } + + /** + * Get the durationMs property: The duration of the audio segment. + * + * @return the durationMs value. + */ + @Generated + public Duration getDurationMs() { + if (this.durationMs == null) { + return null; + } + return Duration.ofMillis(this.durationMs); + } + + /** + * Get the blobUri property: 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. + * + * @return the blobUri value. + */ + @Generated + public String getBlobUri() { + return this.blobUri; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("conversation_id", this.conversationId); + jsonWriter.writeStringField("item_id", this.itemId); + jsonWriter.writeStringField("role", this.role == null ? null : this.role.toString()); + jsonWriter.writeStringField("format", this.format == null ? null : this.format.toString()); + jsonWriter.writeStringField("codec", this.codec == null ? null : this.codec.toString()); + jsonWriter.writeNumberField("sample_rate", this.sampleRate); + jsonWriter.writeNumberField("channels", this.channels); + jsonWriter.writeNumberField("start_offset_ms", this.startOffsetMs); + jsonWriter.writeNumberField("duration_ms", this.durationMs); + jsonWriter.writeStringField("blob_uri", this.blobUri); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceItemAudioResponse from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceItemAudioResponse if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceItemAudioResponse. + */ + @Generated + public static VoiceItemAudioResponse fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String conversationId = null; + String itemId = null; + VoiceAudioRole role = null; + VoiceAudioContainerFormat format = null; + VoiceAudioCodec codec = null; + Integer sampleRate = null; + Integer channels = null; + Long startOffsetMs = null; + Long durationMs = null; + String blobUri = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("conversation_id".equals(fieldName)) { + conversationId = reader.getString(); + } else if ("item_id".equals(fieldName)) { + itemId = reader.getString(); + } else if ("role".equals(fieldName)) { + role = VoiceAudioRole.fromString(reader.getString()); + } else if ("format".equals(fieldName)) { + format = VoiceAudioContainerFormat.fromString(reader.getString()); + } else if ("codec".equals(fieldName)) { + codec = VoiceAudioCodec.fromString(reader.getString()); + } else if ("sample_rate".equals(fieldName)) { + sampleRate = reader.getNullable(JsonReader::getInt); + } else if ("channels".equals(fieldName)) { + channels = reader.getNullable(JsonReader::getInt); + } else if ("start_offset_ms".equals(fieldName)) { + startOffsetMs = reader.getNullable(JsonReader::getLong); + } else if ("duration_ms".equals(fieldName)) { + durationMs = reader.getNullable(JsonReader::getLong); + } else if ("blob_uri".equals(fieldName)) { + blobUri = reader.getString(); + } else { + reader.skipChildren(); + } + } + VoiceItemAudioResponse deserializedVoiceItemAudioResponse + = new VoiceItemAudioResponse(conversationId, itemId); + deserializedVoiceItemAudioResponse.role = role; + deserializedVoiceItemAudioResponse.format = format; + deserializedVoiceItemAudioResponse.codec = codec; + deserializedVoiceItemAudioResponse.sampleRate = sampleRate; + deserializedVoiceItemAudioResponse.channels = channels; + deserializedVoiceItemAudioResponse.startOffsetMs = startOffsetMs; + deserializedVoiceItemAudioResponse.durationMs = durationMs; + deserializedVoiceItemAudioResponse.blobUri = blobUri; + return deserializedVoiceItemAudioResponse; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java new file mode 100644 index 000000000000..4a469e25bacf --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * How the model backing a voice agent is served. This is independent of the architecture (realtime or cascaded), + * which the service derives from the selected model. + */ +public final class VoiceModelType extends ExpandableStringEnum { + + /** + * The service hosts and manages the named model, for example `gpt-realtime`. + */ + @Generated + public static final VoiceModelType MANAGED = fromString("managed"); + + /** + * The service uses the customer's own Foundry deployment named by `model`. + */ + @Generated + public static final VoiceModelType SELF_DEPLOYED = fromString("self_deployed"); + + /** + * Creates a new instance of VoiceModelType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceModelType() { + } + + /** + * Creates or finds a VoiceModelType from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceModelType. + */ + @Generated + public static VoiceModelType fromString(String name) { + return fromString(name, VoiceModelType.class); + } + + /** + * Gets known VoiceModelType values. + * + * @return known VoiceModelType values. + */ + @Generated + public static Collection values() { + return values(VoiceModelType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java new file mode 100644 index 000000000000..a010889d41bd --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * An output modality the agent may produce. `animation` and `avatar` are used when an avatar is configured. + */ +public final class VoiceOutputModality extends ExpandableStringEnum { + + /** + * Static value text for VoiceOutputModality. + */ + @Generated + public static final VoiceOutputModality TEXT = fromString("text"); + + /** + * Static value audio for VoiceOutputModality. + */ + @Generated + public static final VoiceOutputModality AUDIO = fromString("audio"); + + /** + * Static value animation for VoiceOutputModality. + */ + @Generated + public static final VoiceOutputModality ANIMATION = fromString("animation"); + + /** + * Static value avatar for VoiceOutputModality. + */ + @Generated + public static final VoiceOutputModality AVATAR = fromString("avatar"); + + /** + * Creates a new instance of VoiceOutputModality value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceOutputModality() { + } + + /** + * Creates or finds a VoiceOutputModality from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceOutputModality. + */ + @Generated + public static VoiceOutputModality fromString(String name) { + return fromString(name, VoiceOutputModality.class); + } + + /** + * Gets known VoiceOutputModality values. + * + * @return known VoiceOutputModality values. + */ + @Generated + public static Collection values() { + return values(VoiceOutputModality.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java new file mode 100644 index 000000000000..c89a05547b12 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java @@ -0,0 +1,92 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The role assigned to each channel of a merged stereo voice recording. + */ +@Immutable +public final class VoiceRecordingChannelLayout implements JsonSerializable { + + /* + * The role carried on the left channel. Always `user`. + */ + @Generated + private final String left = "user"; + + /* + * The role carried on the right channel. Always `agent`. + */ + @Generated + private final String right = "agent"; + + /** + * Creates an instance of VoiceRecordingChannelLayout class. + */ + @Generated + private VoiceRecordingChannelLayout() { + } + + /** + * Get the left property: The role carried on the left channel. Always `user`. + * + * @return the left value. + */ + @Generated + public String getLeft() { + return this.left; + } + + /** + * Get the right property: The role carried on the right channel. Always `agent`. + * + * @return the right value. + */ + @Generated + public String getRight() { + return this.right; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("left", this.left); + jsonWriter.writeStringField("right", this.right); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceRecordingChannelLayout from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceRecordingChannelLayout if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceRecordingChannelLayout. + */ + @Generated + public static VoiceRecordingChannelLayout fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceRecordingChannelLayout deserializedVoiceRecordingChannelLayout = new VoiceRecordingChannelLayout(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + reader.skipChildren(); + } + return deserializedVoiceRecordingChannelLayout; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java new file mode 100644 index 000000000000..f03335b7b6f2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java @@ -0,0 +1,231 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Metadata for the merged, whole-call stereo recording of a voice conversation (user audio on the left channel, + * agent audio on the right). Built once from the per-turn segments after the session ends and durably cached. + * The common metadata (format, sample rate, channels, channel layout, duration) is returned for both + * Foundry-managed and bring-your-own-storage (BYOS) recordings. For BYOS the response also includes `blob_uri`, + * the URI of the recording in the customer's own storage (no SAS token), which the customer downloads using their + * own storage credentials. For Foundry-managed storage `blob_uri` is absent and the bytes are streamed via the + * `/audio/content` route instead. + */ +@Immutable +public final class VoiceRecordingResponse implements JsonSerializable { + + /* + * The id of the conversation this recording belongs to. + */ + @Generated + private final String conversationId; + + /* + * The container format of the recording. + */ + @Generated + private final VoiceAudioContainerFormat format; + + /* + * The sample rate of the recording in Hz, e.g. 24000. + */ + @Generated + private final int sampleRate; + + /* + * The number of audio channels. The merged recording is stereo (`2`). + */ + @Generated + private final int channels; + + /* + * The role assigned to each stereo channel. + */ + @Generated + private final VoiceRecordingChannelLayout channelLayout; + + /* + * The total duration of the recording. + */ + @Generated + private final long durationMs; + + /* + * 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. + */ + @Generated + private String blobUri; + + /** + * Creates an instance of VoiceRecordingResponse class. + * + * @param conversationId the conversationId value to set. + * @param format the format value to set. + * @param sampleRate the sampleRate value to set. + * @param channels the channels value to set. + * @param channelLayout the channelLayout value to set. + * @param durationMs the durationMs value to set. + */ + @Generated + private VoiceRecordingResponse(String conversationId, VoiceAudioContainerFormat format, int sampleRate, + int channels, VoiceRecordingChannelLayout channelLayout, Duration durationMs) { + this.conversationId = conversationId; + this.format = format; + this.sampleRate = sampleRate; + this.channels = channels; + this.channelLayout = channelLayout; + if (durationMs == null) { + this.durationMs = 0L; + } else { + this.durationMs = durationMs.toMillis(); + } + } + + /** + * Get the conversationId property: The id of the conversation this recording belongs to. + * + * @return the conversationId value. + */ + @Generated + public String getConversationId() { + return this.conversationId; + } + + /** + * Get the format property: The container format of the recording. + * + * @return the format value. + */ + @Generated + public VoiceAudioContainerFormat getFormat() { + return this.format; + } + + /** + * Get the sampleRate property: The sample rate of the recording in Hz, e.g. 24000. + * + * @return the sampleRate value. + */ + @Generated + public int getSampleRate() { + return this.sampleRate; + } + + /** + * Get the channels property: The number of audio channels. The merged recording is stereo (`2`). + * + * @return the channels value. + */ + @Generated + public int getChannels() { + return this.channels; + } + + /** + * Get the channelLayout property: The role assigned to each stereo channel. + * + * @return the channelLayout value. + */ + @Generated + public VoiceRecordingChannelLayout getChannelLayout() { + return this.channelLayout; + } + + /** + * Get the durationMs property: The total duration of the recording. + * + * @return the durationMs value. + */ + @Generated + public Duration getDurationMs() { + return Duration.ofMillis(this.durationMs); + } + + /** + * Get the blobUri property: 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. + * + * @return the blobUri value. + */ + @Generated + public String getBlobUri() { + return this.blobUri; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("conversation_id", this.conversationId); + jsonWriter.writeStringField("format", this.format == null ? null : this.format.toString()); + jsonWriter.writeIntField("sample_rate", this.sampleRate); + jsonWriter.writeIntField("channels", this.channels); + jsonWriter.writeJsonField("channel_layout", this.channelLayout); + jsonWriter.writeLongField("duration_ms", this.durationMs); + jsonWriter.writeStringField("blob_uri", this.blobUri); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceRecordingResponse from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceRecordingResponse if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceRecordingResponse. + */ + @Generated + public static VoiceRecordingResponse fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String conversationId = null; + VoiceAudioContainerFormat format = null; + int sampleRate = 0; + int channels = 0; + VoiceRecordingChannelLayout channelLayout = null; + Duration durationMs = null; + String blobUri = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("conversation_id".equals(fieldName)) { + conversationId = reader.getString(); + } else if ("format".equals(fieldName)) { + format = VoiceAudioContainerFormat.fromString(reader.getString()); + } else if ("sample_rate".equals(fieldName)) { + sampleRate = reader.getInt(); + } else if ("channels".equals(fieldName)) { + channels = reader.getInt(); + } else if ("channel_layout".equals(fieldName)) { + channelLayout = VoiceRecordingChannelLayout.fromJson(reader); + } else if ("duration_ms".equals(fieldName)) { + durationMs = Duration.ofMillis(reader.getLong()); + } else if ("blob_uri".equals(fieldName)) { + blobUri = reader.getString(); + } else { + reader.skipChildren(); + } + } + VoiceRecordingResponse deserializedVoiceRecordingResponse + = new VoiceRecordingResponse(conversationId, format, sampleRate, channels, channelLayout, durationMs); + deserializedVoiceRecordingResponse.blobUri = blobUri; + return deserializedVoiceRecordingResponse; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponse.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponse.java new file mode 100644 index 000000000000..362741e66903 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponse.java @@ -0,0 +1,406 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; +import java.util.Map; + +/** + * A persisted voice response representing one model inference turn within a conversation. In list results the + * `output` projection may be omitted; retrieve the + * full response (`GET .../responses/{response_id}`) or the paged response-items route + * (`GET .../responses/{response_id}/items`) for its output items. `created_at`/`completed_at` are Foundry + * durable ordering extensions. + */ +@Immutable +public final class VoiceResponse extends VoiceResponseBase { + + /* + * The unique id of the response. + */ + @Generated + private final String id; + + /* + * 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. + */ + @Generated + private List output; + + /* + * The id of the conversation this response belongs to. + */ + @Generated + private final String conversationId; + + /* + * The audio configuration used for the response, including the voice and audio format used for output. + */ + @Generated + private VoiceResponseAudio audio; + + /* + * A set of key-value pairs attached to the response. + */ + @Generated + private Map metadata; + + /* + * The sampling temperature used for the response. + */ + @Generated + private Double temperature; + + /* + * The Unix timestamp (in seconds) for when the response was created. + */ + @Generated + private Long createdAt; + + /* + * The Unix timestamp (in seconds) for when the response completed. + */ + @Generated + private Long completedAt; + + /* + * Maximum number of output tokens for a single assistant response, + * inclusive of tool calls, that was used in this response. + */ + @Generated + private BinaryData maxOutputTokens; + + /* + * The set of modalities the model used to respond, currently the only possible values are + * `[\"audio\"]`, `[\"text\"]`. Audio output always include a text transcript. Setting the + * output to mode `text` will disable audio output from the model. + */ + @Generated + private List outputModalities; + + /* + * Usage statistics for the Response, this will correspond to billing. A + * Realtime API session will maintain a conversation context and append new + * Items to the Conversation, thus output from previous turns (text and + * audio tokens) will become the input for later turns. + */ + @Generated + private RealtimeResponseUsage usage; + + /* + * Additional details about the status. + */ + @Generated + private RealtimeResponseStatusDetails statusDetails; + + /* + * The final status of the response (`completed`, `cancelled`, `failed`, or + * `incomplete`, `in_progress`). + */ + @Generated + private VoiceResponseBaseStatus status; + + /* + * The object type, must be `realtime.response`. + */ + @Generated + private VoiceResponseBaseObject object; + + /** + * Creates an instance of VoiceResponse class. + * + * @param id the id value to set. + * @param conversationId the conversationId value to set. + */ + @Generated + private VoiceResponse(String id, String conversationId) { + this.id = id; + this.conversationId = conversationId; + } + + /** + * Get the id property: The unique id of the response. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the output property: 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. + * + * @return the output value. + */ + @Generated + public List getOutput() { + return this.output; + } + + /** + * Get the conversationId property: The id of the conversation this response belongs to. + * + * @return the conversationId value. + */ + @Generated + public String getConversationId() { + return this.conversationId; + } + + /** + * Get the audio property: The audio configuration used for the response, including the voice and audio format used + * for output. + * + * @return the audio value. + */ + @Generated + public VoiceResponseAudio getAudio() { + return this.audio; + } + + /** + * Get the metadata property: A set of key-value pairs attached to the response. + * + * @return the metadata value. + */ + @Generated + public Map getMetadata() { + return this.metadata; + } + + /** + * Get the temperature property: The sampling temperature used for the response. + * + * @return the temperature value. + */ + @Generated + public Double getTemperature() { + return this.temperature; + } + + /** + * Get the createdAt property: The Unix timestamp (in seconds) for when the response was created. + * + * @return the createdAt value. + */ + @Generated + public OffsetDateTime getCreatedAt() { + if (this.createdAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.createdAt), ZoneOffset.UTC); + } + + /** + * Get the completedAt property: The Unix timestamp (in seconds) for when the response completed. + * + * @return the completedAt value. + */ + @Generated + public OffsetDateTime getCompletedAt() { + if (this.completedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.completedAt), ZoneOffset.UTC); + } + + /** + * Get the maxOutputTokens property: Maximum number of output tokens for a single assistant response, + * inclusive of tool calls, that was used in this response. + * + * @return the maxOutputTokens value. + */ + @Generated + @Override + public BinaryData getMaxOutputTokens() { + return this.maxOutputTokens; + } + + /** + * Get the outputModalities property: The set of modalities the model used to respond, currently the only possible + * values are + * `[\"audio\"]`, `[\"text\"]`. Audio output always include a text transcript. Setting the + * output to mode `text` will disable audio output from the model. + * + * @return the outputModalities value. + */ + @Generated + @Override + public List getOutputModalities() { + return this.outputModalities; + } + + /** + * Get the usage property: Usage statistics for the Response, this will correspond to billing. A + * Realtime API session will maintain a conversation context and append new + * Items to the Conversation, thus output from previous turns (text and + * audio tokens) will become the input for later turns. + * + * @return the usage value. + */ + @Generated + @Override + public RealtimeResponseUsage getUsage() { + return this.usage; + } + + /** + * Get the statusDetails property: Additional details about the status. + * + * @return the statusDetails value. + */ + @Generated + @Override + public RealtimeResponseStatusDetails getStatusDetails() { + return this.statusDetails; + } + + /** + * Get the status property: The final status of the response (`completed`, `cancelled`, `failed`, or + * `incomplete`, `in_progress`). + * + * @return the status value. + */ + @Generated + @Override + public VoiceResponseBaseStatus getStatus() { + return this.status; + } + + /** + * Get the object property: The object type, must be `realtime.response`. + * + * @return the object value. + */ + @Generated + @Override + public VoiceResponseBaseObject getObject() { + return this.object; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("object", getObject() == null ? null : getObject().toString()); + jsonWriter.writeStringField("status", getStatus() == null ? null : getStatus().toString()); + jsonWriter.writeJsonField("status_details", getStatusDetails()); + jsonWriter.writeJsonField("usage", getUsage()); + jsonWriter.writeArrayField("output_modalities", getOutputModalities(), + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + if (getMaxOutputTokens() != null) { + jsonWriter.writeFieldName("max_output_tokens"); + getMaxOutputTokens().writeTo(jsonWriter); + } + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("conversation_id", this.conversationId); + jsonWriter.writeArrayField("output", this.output, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeJsonField("audio", this.audio); + jsonWriter.writeMapField("metadata", this.metadata, (writer, element) -> writer.writeString(element)); + jsonWriter.writeNumberField("temperature", this.temperature); + jsonWriter.writeNumberField("created_at", this.createdAt); + jsonWriter.writeNumberField("completed_at", this.completedAt); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceResponse from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceResponse if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the VoiceResponse. + */ + @Generated + public static VoiceResponse fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceResponseBaseObject object = null; + VoiceResponseBaseStatus status = null; + RealtimeResponseStatusDetails statusDetails = null; + RealtimeResponseUsage usage = null; + List outputModalities = null; + BinaryData maxOutputTokens = null; + String id = null; + String conversationId = null; + List output = null; + VoiceResponseAudio audio = null; + Map metadata = null; + Double temperature = null; + Long createdAt = null; + Long completedAt = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("object".equals(fieldName)) { + object = VoiceResponseBaseObject.fromString(reader.getString()); + } else if ("status".equals(fieldName)) { + status = VoiceResponseBaseStatus.fromString(reader.getString()); + } else if ("status_details".equals(fieldName)) { + statusDetails = RealtimeResponseStatusDetails.fromJson(reader); + } else if ("usage".equals(fieldName)) { + usage = RealtimeResponseUsage.fromJson(reader); + } else if ("output_modalities".equals(fieldName)) { + outputModalities + = reader.readArray(reader1 -> VoiceResponseBaseOutputModality.fromString(reader1.getString())); + } else if ("max_output_tokens".equals(fieldName)) { + maxOutputTokens + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("conversation_id".equals(fieldName)) { + conversationId = reader.getString(); + } else if ("output".equals(fieldName)) { + output = reader.readArray(reader1 -> RealtimeConversationItem.fromJson(reader1)); + } else if ("audio".equals(fieldName)) { + audio = VoiceResponseAudio.fromJson(reader); + } else if ("metadata".equals(fieldName)) { + metadata = reader.readMap(reader1 -> reader1.getString()); + } else if ("temperature".equals(fieldName)) { + temperature = reader.getNullable(JsonReader::getDouble); + } else if ("created_at".equals(fieldName)) { + createdAt = reader.getNullable(JsonReader::getLong); + } else if ("completed_at".equals(fieldName)) { + completedAt = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + VoiceResponse deserializedVoiceResponse = new VoiceResponse(id, conversationId); + deserializedVoiceResponse.object = object; + deserializedVoiceResponse.status = status; + deserializedVoiceResponse.statusDetails = statusDetails; + deserializedVoiceResponse.usage = usage; + deserializedVoiceResponse.outputModalities = outputModalities; + deserializedVoiceResponse.maxOutputTokens = maxOutputTokens; + deserializedVoiceResponse.output = output; + deserializedVoiceResponse.audio = audio; + deserializedVoiceResponse.metadata = metadata; + deserializedVoiceResponse.temperature = temperature; + deserializedVoiceResponse.createdAt = createdAt; + deserializedVoiceResponse.completedAt = completedAt; + return deserializedVoiceResponse; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java new file mode 100644 index 000000000000..1040f142017d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Audio configuration for a response. Follows the OpenAI Realtime GA `audio` object shape. + */ +@Immutable +public final class VoiceResponseAudio implements JsonSerializable { + + /* + * The audio output configuration used for the response. + */ + @Generated + private VoiceResponseAudioOutput output; + + /** + * Creates an instance of VoiceResponseAudio class. + */ + @Generated + private VoiceResponseAudio() { + } + + /** + * Get the output property: The audio output configuration used for the response. + * + * @return the output value. + */ + @Generated + public VoiceResponseAudioOutput getOutput() { + return this.output; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("output", this.output); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceResponseAudio from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceResponseAudio if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceResponseAudio. + */ + @Generated + public static VoiceResponseAudio fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceResponseAudio deserializedVoiceResponseAudio = new VoiceResponseAudio(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("output".equals(fieldName)) { + deserializedVoiceResponseAudio.output = VoiceResponseAudioOutput.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceResponseAudio; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java new file mode 100644 index 000000000000..153ff4284f08 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The flat response audio-output projection, with optional `voice`, `voice_type`, `voice_locale`, and `format` fields. + */ +@Immutable +public final class VoiceResponseAudioOutput implements JsonSerializable { + + /* + * The voice name used for the response's audio output. + */ + @Generated + private String voice; + + /* + * The extensible provider/type of the voice used for the response's audio output. + */ + @Generated + private VoiceType voiceType; + + /* + * The BCP-47 locale of the voice used for the response's audio output. + */ + @Generated + private String voiceLocale; + + /* + * The audio format used for the response's audio output. + */ + @Generated + private RealtimeAudioFormats format; + + /** + * Creates an instance of VoiceResponseAudioOutput class. + */ + @Generated + private VoiceResponseAudioOutput() { + } + + /** + * Get the voice property: The voice name used for the response's audio output. + * + * @return the voice value. + */ + @Generated + public String getVoice() { + return this.voice; + } + + /** + * Get the voiceType property: The extensible provider/type of the voice used for the response's audio output. + * + * @return the voiceType value. + */ + @Generated + public VoiceType getVoiceType() { + return this.voiceType; + } + + /** + * Get the voiceLocale property: The BCP-47 locale of the voice used for the response's audio output. + * + * @return the voiceLocale value. + */ + @Generated + public String getVoiceLocale() { + return this.voiceLocale; + } + + /** + * Get the format property: The audio format used for the response's audio output. + * + * @return the format value. + */ + @Generated + public RealtimeAudioFormats getFormat() { + return this.format; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("voice", this.voice); + jsonWriter.writeStringField("voice_type", this.voiceType == null ? null : this.voiceType.toString()); + jsonWriter.writeStringField("voice_locale", this.voiceLocale); + jsonWriter.writeJsonField("format", this.format); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceResponseAudioOutput from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceResponseAudioOutput if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceResponseAudioOutput. + */ + @Generated + public static VoiceResponseAudioOutput fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceResponseAudioOutput deserializedVoiceResponseAudioOutput = new VoiceResponseAudioOutput(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("voice".equals(fieldName)) { + deserializedVoiceResponseAudioOutput.voice = reader.getString(); + } else if ("voice_type".equals(fieldName)) { + deserializedVoiceResponseAudioOutput.voiceType = VoiceType.fromString(reader.getString()); + } else if ("voice_locale".equals(fieldName)) { + deserializedVoiceResponseAudioOutput.voiceLocale = reader.getString(); + } else if ("format".equals(fieldName)) { + deserializedVoiceResponseAudioOutput.format = RealtimeAudioFormats.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceResponseAudioOutput; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java new file mode 100644 index 000000000000..11b924216008 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java @@ -0,0 +1,354 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Properties shared by persisted voice responses. + */ +@Immutable +public class VoiceResponseBase implements JsonSerializable { + + /* + * The unique ID of the response, will look like `resp_1234`. + */ + @Generated + private String id; + + /* + * The object type, must be `realtime.response`. + */ + @Generated + private VoiceResponseBaseObject object; + + /* + * The final status of the response (`completed`, `cancelled`, `failed`, or + * `incomplete`, `in_progress`). + */ + @Generated + private VoiceResponseBaseStatus status; + + /* + * Additional details about the status. + */ + @Generated + private RealtimeResponseStatusDetails statusDetails; + + /* + * Usage statistics for the Response, this will correspond to billing. A + * Realtime API session will maintain a conversation context and append new + * Items to the Conversation, thus output from previous turns (text and + * audio tokens) will become the input for later turns. + */ + @Generated + private RealtimeResponseUsage usage; + + /* + * Which conversation the response is added to, determined by the `conversation` + * field in the `response.create` event. If `auto`, the response will be added to + * the default conversation and the value of `conversation_id` will be an id like + * `conv_1234`. If `none`, the response will not be added to any conversation and + * the value of `conversation_id` will be `null`. If responses are being triggered + * automatically by VAD the response will be added to the default conversation + */ + @Generated + private String conversationId; + + /* + * The set of modalities the model used to respond, currently the only possible values are + * `[\"audio\"]`, `[\"text\"]`. Audio output always include a text transcript. Setting the + * output to mode `text` will disable audio output from the model. + */ + @Generated + private List outputModalities; + + /* + * Maximum number of output tokens for a single assistant response, + * inclusive of tool calls, that was used in this response. + */ + @Generated + private BinaryData maxOutputTokens; + + /** + * Creates an instance of VoiceResponseBase class. + */ + @Generated + protected VoiceResponseBase() { + } + + /** + * Get the id property: The unique ID of the response, will look like `resp_1234`. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Set the id property: The unique ID of the response, will look like `resp_1234`. + * + * @param id the id value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setId(String id) { + this.id = id; + return this; + } + + /** + * Get the object property: The object type, must be `realtime.response`. + * + * @return the object value. + */ + @Generated + public VoiceResponseBaseObject getObject() { + return this.object; + } + + /** + * Set the object property: The object type, must be `realtime.response`. + * + * @param object the object value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setObject(VoiceResponseBaseObject object) { + this.object = object; + return this; + } + + /** + * Get the status property: The final status of the response (`completed`, `cancelled`, `failed`, or + * `incomplete`, `in_progress`). + * + * @return the status value. + */ + @Generated + public VoiceResponseBaseStatus getStatus() { + return this.status; + } + + /** + * Set the status property: The final status of the response (`completed`, `cancelled`, `failed`, or + * `incomplete`, `in_progress`). + * + * @param status the status value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setStatus(VoiceResponseBaseStatus status) { + this.status = status; + return this; + } + + /** + * Get the statusDetails property: Additional details about the status. + * + * @return the statusDetails value. + */ + @Generated + public RealtimeResponseStatusDetails getStatusDetails() { + return this.statusDetails; + } + + /** + * Set the statusDetails property: Additional details about the status. + * + * @param statusDetails the statusDetails value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setStatusDetails(RealtimeResponseStatusDetails statusDetails) { + this.statusDetails = statusDetails; + return this; + } + + /** + * Get the usage property: Usage statistics for the Response, this will correspond to billing. A + * Realtime API session will maintain a conversation context and append new + * Items to the Conversation, thus output from previous turns (text and + * audio tokens) will become the input for later turns. + * + * @return the usage value. + */ + @Generated + public RealtimeResponseUsage getUsage() { + return this.usage; + } + + /** + * Set the usage property: Usage statistics for the Response, this will correspond to billing. A + * Realtime API session will maintain a conversation context and append new + * Items to the Conversation, thus output from previous turns (text and + * audio tokens) will become the input for later turns. + * + * @param usage the usage value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setUsage(RealtimeResponseUsage usage) { + this.usage = usage; + return this; + } + + /** + * Get the conversationId property: Which conversation the response is added to, determined by the `conversation` + * field in the `response.create` event. If `auto`, the response will be added to + * the default conversation and the value of `conversation_id` will be an id like + * `conv_1234`. If `none`, the response will not be added to any conversation and + * the value of `conversation_id` will be `null`. If responses are being triggered + * automatically by VAD the response will be added to the default conversation. + * + * @return the conversationId value. + */ + @Generated + public String getConversationId() { + return this.conversationId; + } + + /** + * Set the conversationId property: Which conversation the response is added to, determined by the `conversation` + * field in the `response.create` event. If `auto`, the response will be added to + * the default conversation and the value of `conversation_id` will be an id like + * `conv_1234`. If `none`, the response will not be added to any conversation and + * the value of `conversation_id` will be `null`. If responses are being triggered + * automatically by VAD the response will be added to the default conversation. + * + * @param conversationId the conversationId value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setConversationId(String conversationId) { + this.conversationId = conversationId; + return this; + } + + /** + * Get the outputModalities property: The set of modalities the model used to respond, currently the only possible + * values are + * `[\"audio\"]`, `[\"text\"]`. Audio output always include a text transcript. Setting the + * output to mode `text` will disable audio output from the model. + * + * @return the outputModalities value. + */ + @Generated + public List getOutputModalities() { + return this.outputModalities; + } + + /** + * Set the outputModalities property: The set of modalities the model used to respond, currently the only possible + * values are + * `[\"audio\"]`, `[\"text\"]`. Audio output always include a text transcript. Setting the + * output to mode `text` will disable audio output from the model. + * + * @param outputModalities the outputModalities value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setOutputModalities(List outputModalities) { + this.outputModalities = outputModalities; + return this; + } + + /** + * Get the maxOutputTokens property: Maximum number of output tokens for a single assistant response, + * inclusive of tool calls, that was used in this response. + * + * @return the maxOutputTokens value. + */ + @Generated + public BinaryData getMaxOutputTokens() { + return this.maxOutputTokens; + } + + /** + * Set the maxOutputTokens property: Maximum number of output tokens for a single assistant response, + * inclusive of tool calls, that was used in this response. + * + * @param maxOutputTokens the maxOutputTokens value to set. + * @return the VoiceResponseBase object itself. + */ + @Generated + VoiceResponseBase setMaxOutputTokens(BinaryData maxOutputTokens) { + this.maxOutputTokens = maxOutputTokens; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("object", this.object == null ? null : this.object.toString()); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeJsonField("status_details", this.statusDetails); + jsonWriter.writeJsonField("usage", this.usage); + jsonWriter.writeStringField("conversation_id", this.conversationId); + jsonWriter.writeArrayField("output_modalities", this.outputModalities, + (writer, element) -> writer.writeString(element == null ? null : element.toString())); + if (this.maxOutputTokens != null) { + jsonWriter.writeFieldName("max_output_tokens"); + this.maxOutputTokens.writeTo(jsonWriter); + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceResponseBase from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceResponseBase if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the VoiceResponseBase. + */ + @Generated + public static VoiceResponseBase fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceResponseBase deserializedVoiceResponseBase = new VoiceResponseBase(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("id".equals(fieldName)) { + deserializedVoiceResponseBase.id = reader.getString(); + } else if ("object".equals(fieldName)) { + deserializedVoiceResponseBase.object = VoiceResponseBaseObject.fromString(reader.getString()); + } else if ("status".equals(fieldName)) { + deserializedVoiceResponseBase.status = VoiceResponseBaseStatus.fromString(reader.getString()); + } else if ("status_details".equals(fieldName)) { + deserializedVoiceResponseBase.statusDetails = RealtimeResponseStatusDetails.fromJson(reader); + } else if ("usage".equals(fieldName)) { + deserializedVoiceResponseBase.usage = RealtimeResponseUsage.fromJson(reader); + } else if ("conversation_id".equals(fieldName)) { + deserializedVoiceResponseBase.conversationId = reader.getString(); + } else if ("output_modalities".equals(fieldName)) { + List outputModalities + = reader.readArray(reader1 -> VoiceResponseBaseOutputModality.fromString(reader1.getString())); + deserializedVoiceResponseBase.outputModalities = outputModalities; + } else if ("max_output_tokens".equals(fieldName)) { + deserializedVoiceResponseBase.maxOutputTokens + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else { + reader.skipChildren(); + } + } + return deserializedVoiceResponseBase; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java new file mode 100644 index 000000000000..c3a9280afb1a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java @@ -0,0 +1,51 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for VoiceResponseBaseObject. + */ +public enum VoiceResponseBaseObject { + /** + * Enum value realtime.response. + */ + REALTIME_RESPONSE("realtime.response"); + + /** + * The actual serialized value for a VoiceResponseBaseObject instance. + */ + private final String value; + + VoiceResponseBaseObject(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceResponseBaseObject instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceResponseBaseObject object, or null if unable to parse. + */ + public static VoiceResponseBaseObject fromString(String value) { + if (value == null) { + return null; + } + VoiceResponseBaseObject[] items = VoiceResponseBaseObject.values(); + for (VoiceResponseBaseObject item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java new file mode 100644 index 000000000000..727de9980c43 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for VoiceResponseBaseOutputModality. + */ +public enum VoiceResponseBaseOutputModality { + /** + * Enum value text. + */ + TEXT("text"), + + /** + * Enum value audio. + */ + AUDIO("audio"); + + /** + * The actual serialized value for a VoiceResponseBaseOutputModality instance. + */ + private final String value; + + VoiceResponseBaseOutputModality(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceResponseBaseOutputModality instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceResponseBaseOutputModality object, or null if unable to parse. + */ + public static VoiceResponseBaseOutputModality fromString(String value) { + if (value == null) { + return null; + } + VoiceResponseBaseOutputModality[] items = VoiceResponseBaseOutputModality.values(); + for (VoiceResponseBaseOutputModality item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java new file mode 100644 index 000000000000..e9e70f231ddb --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java @@ -0,0 +1,71 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +/** + * Defines values for VoiceResponseBaseStatus. + */ +public enum VoiceResponseBaseStatus { + /** + * Enum value completed. + */ + COMPLETED("completed"), + + /** + * Enum value cancelled. + */ + CANCELLED("cancelled"), + + /** + * Enum value failed. + */ + FAILED("failed"), + + /** + * Enum value incomplete. + */ + INCOMPLETE("incomplete"), + + /** + * Enum value in_progress. + */ + IN_PROGRESS("in_progress"); + + /** + * The actual serialized value for a VoiceResponseBaseStatus instance. + */ + private final String value; + + VoiceResponseBaseStatus(String value) { + this.value = value; + } + + /** + * Parses a serialized value to a VoiceResponseBaseStatus instance. + * + * @param value the serialized value to parse. + * @return the parsed VoiceResponseBaseStatus object, or null if unable to parse. + */ + public static VoiceResponseBaseStatus fromString(String value) { + if (value == null) { + return null; + } + VoiceResponseBaseStatus[] items = VoiceResponseBaseStatus.values(); + for (VoiceResponseBaseStatus item : items) { + if (item.toString().equalsIgnoreCase(value)) { + return item; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + return this.value; + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceType.java new file mode 100644 index 000000000000..268b5ad44bd2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceType.java @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The voice implementation. Additional values may be added over time. + */ +public final class VoiceType extends ExpandableStringEnum { + + /** + * An OpenAI voice. + */ + @Generated + public static final VoiceType OPENAI = fromString("openai"); + + /** + * An Azure standard voice. + */ + @Generated + public static final VoiceType AZURE_STANDARD = fromString("azure-standard"); + + /** + * An Azure custom voice. + */ + @Generated + public static final VoiceType AZURE_CUSTOM = fromString("azure-custom"); + + /** + * An Azure personal voice. + */ + @Generated + public static final VoiceType AZURE_PERSONAL = fromString("azure-personal"); + + /** + * A voice synchronized with an avatar. + */ + @Generated + public static final VoiceType AVATAR_VOICE_SYNC = fromString("avatar-voice-sync"); + + /** + * An Azure native realtime voice. + */ + @Generated + public static final VoiceType AZURE_REALTIME_NATIVE = fromString("azure-realtime-native"); + + /** + * Creates a new instance of VoiceType value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceType() { + } + + /** + * Creates or finds a VoiceType from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceType. + */ + @Generated + public static VoiceType fromString(String name) { + return fromString(name, VoiceType.class); + } + + /** + * Gets known VoiceType values. + * + * @return known VoiceType values. + */ + @Generated + public static Collection values() { + return values(VoiceType.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java new file mode 100644 index 000000000000..fbc3725a4375 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java @@ -0,0 +1,180 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A WebIQ server-side tool. + */ +@Fluent +public final class WebIqPreviewTool extends Tool { + + /* + * The type property. + */ + @Generated + private ToolType type = ToolType.WEB_IQ_PREVIEW; + + /* + * The ID of the WebIQ project connection. + */ + @Generated + private final String projectConnectionId; + + /* + * The label of the WebIQ MCP server to connect to. When omitted, the service defaults to connection name extracted + * from project_connection_id. + */ + @Generated + private String serverLabel; + + /* + * Whether the agent requires approval before executing actions. When omitted, the service defaults to "always". + */ + @Generated + private BinaryData requireApproval; + + /** + * Creates an instance of WebIqPreviewTool class. + * + * @param projectConnectionId the projectConnectionId value to set. + */ + @Generated + public WebIqPreviewTool(String projectConnectionId) { + this.projectConnectionId = projectConnectionId; + } + + /** + * Get the type property: The type property. + * + * @return the type value. + */ + @Generated + @Override + public ToolType getType() { + return this.type; + } + + /** + * Get the projectConnectionId property: The ID of the WebIQ project connection. + * + * @return the projectConnectionId value. + */ + @Generated + public String getProjectConnectionId() { + return this.projectConnectionId; + } + + /** + * Get the serverLabel property: The label of the WebIQ MCP server to connect to. When omitted, the service defaults + * to connection name extracted from project_connection_id. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Set the serverLabel property: The label of the WebIQ MCP server to connect to. When omitted, the service defaults + * to connection name extracted from project_connection_id. + * + * @param serverLabel the serverLabel value to set. + * @return the WebIqPreviewTool object itself. + */ + @Generated + public WebIqPreviewTool setServerLabel(String serverLabel) { + this.serverLabel = serverLabel; + return this; + } + + /** + * Get the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @return the requireApproval value. + */ + @Generated + public BinaryData getRequireApproval() { + return this.requireApproval; + } + + /** + * Set the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @param requireApproval the requireApproval value to set. + * @return the WebIqPreviewTool object itself. + */ + @Generated + public WebIqPreviewTool setRequireApproval(BinaryData requireApproval) { + this.requireApproval = requireApproval; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("project_connection_id", this.projectConnectionId); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("server_label", this.serverLabel); + if (this.requireApproval != null) { + jsonWriter.writeFieldName("require_approval"); + this.requireApproval.writeTo(jsonWriter); + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of WebIqPreviewTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of WebIqPreviewTool if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the WebIqPreviewTool. + */ + @Generated + public static WebIqPreviewTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String projectConnectionId = null; + ToolType type = ToolType.WEB_IQ_PREVIEW; + String serverLabel = null; + BinaryData requireApproval = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("project_connection_id".equals(fieldName)) { + projectConnectionId = reader.getString(); + } else if ("type".equals(fieldName)) { + type = ToolType.fromString(reader.getString()); + } else if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("require_approval".equals(fieldName)) { + requireApproval + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else { + reader.skipChildren(); + } + } + WebIqPreviewTool deserializedWebIqPreviewTool = new WebIqPreviewTool(projectConnectionId); + deserializedWebIqPreviewTool.type = type; + deserializedWebIqPreviewTool.serverLabel = serverLabel; + deserializedWebIqPreviewTool.requireApproval = requireApproval; + return deserializedWebIqPreviewTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java new file mode 100644 index 000000000000..f0104352b792 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java @@ -0,0 +1,227 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.Map; + +/** + * A WebIQ tool stored in a toolbox. + */ +@Fluent +public final class WebIqPreviewToolboxTool extends ToolboxTool { + + /* + * The type of tool. + */ + @Generated + private ToolboxToolType type = ToolboxToolType.WEB_IQ_PREVIEW; + + /* + * The ID of the WebIQ project connection. + */ + @Generated + private final String projectConnectionId; + + /* + * The label of the WebIQ MCP server to connect to. When omitted, the service defaults to connection name extracted + * from project_connection_id. + */ + @Generated + private String serverLabel; + + /* + * Whether the agent requires approval before executing actions. When omitted, the service defaults to "always". + */ + @Generated + private BinaryData requireApproval; + + /** + * Creates an instance of WebIqPreviewToolboxTool class. + * + * @param projectConnectionId the projectConnectionId value to set. + */ + @Generated + public WebIqPreviewToolboxTool(String projectConnectionId) { + this.projectConnectionId = projectConnectionId; + } + + /** + * Get the type property: The type of tool. + * + * @return the type value. + */ + @Generated + @Override + public ToolboxToolType getType() { + return this.type; + } + + /** + * Get the projectConnectionId property: The ID of the WebIQ project connection. + * + * @return the projectConnectionId value. + */ + @Generated + public String getProjectConnectionId() { + return this.projectConnectionId; + } + + /** + * Get the serverLabel property: The label of the WebIQ MCP server to connect to. When omitted, the service defaults + * to connection name extracted from project_connection_id. + * + * @return the serverLabel value. + */ + @Generated + public String getServerLabel() { + return this.serverLabel; + } + + /** + * Set the serverLabel property: The label of the WebIQ MCP server to connect to. When omitted, the service defaults + * to connection name extracted from project_connection_id. + * + * @param serverLabel the serverLabel value to set. + * @return the WebIqPreviewToolboxTool object itself. + */ + @Generated + public WebIqPreviewToolboxTool setServerLabel(String serverLabel) { + this.serverLabel = serverLabel; + return this; + } + + /** + * Get the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @return the requireApproval value. + */ + @Generated + public BinaryData getRequireApproval() { + return this.requireApproval; + } + + /** + * Set the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @param requireApproval the requireApproval value to set. + * @return the WebIqPreviewToolboxTool object itself. + */ + @Generated + public WebIqPreviewToolboxTool setRequireApproval(BinaryData requireApproval) { + this.requireApproval = requireApproval; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public WebIqPreviewToolboxTool setName(String name) { + super.setName(name); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public WebIqPreviewToolboxTool setDescription(String description) { + super.setDescription(description); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public WebIqPreviewToolboxTool setToolConfigs(Map toolConfigs) { + super.setToolConfigs(toolConfigs); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", getName()); + jsonWriter.writeStringField("description", getDescription()); + jsonWriter.writeMapField("tool_configs", getToolConfigs(), (writer, element) -> writer.writeJson(element)); + jsonWriter.writeStringField("project_connection_id", this.projectConnectionId); + jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeStringField("server_label", this.serverLabel); + if (this.requireApproval != null) { + jsonWriter.writeFieldName("require_approval"); + this.requireApproval.writeTo(jsonWriter); + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of WebIqPreviewToolboxTool from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of WebIqPreviewToolboxTool if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the WebIqPreviewToolboxTool. + */ + @Generated + public static WebIqPreviewToolboxTool fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + String description = null; + Map toolConfigs = null; + String projectConnectionId = null; + ToolboxToolType type = ToolboxToolType.WEB_IQ_PREVIEW; + String serverLabel = null; + BinaryData requireApproval = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("description".equals(fieldName)) { + description = reader.getString(); + } else if ("tool_configs".equals(fieldName)) { + toolConfigs = reader.readMap(reader1 -> ToolConfig.fromJson(reader1)); + } else if ("project_connection_id".equals(fieldName)) { + projectConnectionId = reader.getString(); + } else if ("type".equals(fieldName)) { + type = ToolboxToolType.fromString(reader.getString()); + } else if ("server_label".equals(fieldName)) { + serverLabel = reader.getString(); + } else if ("require_approval".equals(fieldName)) { + requireApproval + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else { + reader.skipChildren(); + } + } + WebIqPreviewToolboxTool deserializedWebIqPreviewToolboxTool + = new WebIqPreviewToolboxTool(projectConnectionId); + deserializedWebIqPreviewToolboxTool.setName(name); + deserializedWebIqPreviewToolboxTool.setDescription(description); + deserializedWebIqPreviewToolboxTool.setToolConfigs(toolConfigs); + deserializedWebIqPreviewToolboxTool.type = type; + deserializedWebIqPreviewToolboxTool.serverLabel = serverLabel; + deserializedWebIqPreviewToolboxTool.requireApproval = requireApproval; + return deserializedWebIqPreviewToolboxTool; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java index 0e99baaab6bc..a7054f970ad2 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java @@ -3,6 +3,7 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; +import com.azure.ai.agents.implementation.models.ApproximateLocation; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java index bb3fcf2fc741..8fe53b4b2b72 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java @@ -3,6 +3,7 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; +import com.azure.ai.agents.implementation.models.WebSearchApproximateLocation; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; @@ -172,6 +173,7 @@ public WebSearchTool setCustomSearchConfiguration(WebSearchConfiguration customS public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeBooleanField("external_web_access", this.externalWebAccess); jsonWriter.writeJsonField("filters", this.filters); jsonWriter.writeJsonField("user_location", this.userLocation); jsonWriter.writeStringField("search_context_size", @@ -200,6 +202,8 @@ public static WebSearchTool fromJson(JsonReader jsonReader) throws IOException { reader.nextToken(); if ("type".equals(fieldName)) { deserializedWebSearchTool.type = ToolType.fromString(reader.getString()); + } else if ("external_web_access".equals(fieldName)) { + deserializedWebSearchTool.externalWebAccess = reader.getNullable(JsonReader::getBoolean); } else if ("filters".equals(fieldName)) { deserializedWebSearchTool.filters = WebSearchToolFilters.fromJson(reader); } else if ("user_location".equals(fieldName)) { @@ -307,4 +311,35 @@ public WebSearchTool setToolConfigs(Map toolConfigs) { this.toolConfigs = toolConfigs; return this; } + + /* + * 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. + */ + @Generated + private Boolean externalWebAccess; + + /** + * Get the externalWebAccess property: 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. + * + * @return the externalWebAccess value. + */ + @Generated + public Boolean isExternalWebAccess() { + return this.externalWebAccess; + } + + /** + * Set the externalWebAccess property: 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. + * + * @param externalWebAccess the externalWebAccess value to set. + * @return the WebSearchTool object itself. + */ + @Generated + public WebSearchTool setExternalWebAccess(Boolean externalWebAccess) { + this.externalWebAccess = externalWebAccess; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java index 0e12f26b25bd..548a749e358e 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java @@ -3,6 +3,7 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; +import com.azure.ai.agents.implementation.models.WebSearchApproximateLocation; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; @@ -202,6 +203,7 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStringField("description", getDescription()); jsonWriter.writeMapField("tool_configs", getToolConfigs(), (writer, element) -> writer.writeJson(element)); jsonWriter.writeStringField("type", this.type == null ? null : this.type.toString()); + jsonWriter.writeBooleanField("external_web_access", this.externalWebAccess); jsonWriter.writeJsonField("filters", this.filters); jsonWriter.writeJsonField("user_location", this.userLocation); jsonWriter.writeStringField("search_context_size", @@ -234,6 +236,8 @@ public static WebSearchToolboxTool fromJson(JsonReader jsonReader) throws IOExce deserializedWebSearchToolboxTool.setToolConfigs(toolConfigs); } else if ("type".equals(fieldName)) { deserializedWebSearchToolboxTool.type = ToolboxToolType.fromString(reader.getString()); + } else if ("external_web_access".equals(fieldName)) { + deserializedWebSearchToolboxTool.externalWebAccess = reader.getNullable(JsonReader::getBoolean); } else if ("filters".equals(fieldName)) { deserializedWebSearchToolboxTool.filters = WebSearchToolFilters.fromJson(reader); } else if ("user_location".equals(fieldName)) { @@ -251,4 +255,35 @@ public static WebSearchToolboxTool fromJson(JsonReader jsonReader) throws IOExce return deserializedWebSearchToolboxTool; }); } + + /* + * 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. + */ + @Generated + private Boolean externalWebAccess; + + /** + * Get the externalWebAccess property: 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. + * + * @return the externalWebAccess value. + */ + @Generated + public Boolean isExternalWebAccess() { + return this.externalWebAccess; + } + + /** + * Set the externalWebAccess property: 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. + * + * @param externalWebAccess the externalWebAccess value to set. + * @return the WebSearchToolboxTool object itself. + */ + @Generated + public WebSearchToolboxTool setExternalWebAccess(Boolean externalWebAccess) { + this.externalWebAccess = externalWebAccess; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json b/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json index 9fbbd14cb600..2891abd711fd 100644 --- a/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json +++ b/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json @@ -1 +1 @@ -{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"aded27afff20","crossLanguageDefinitions":{"com.azure.ai.agents.AgentsAsyncClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsAsyncClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsAsyncClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsAsyncClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsAsyncClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsAsyncClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsAsyncClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClientBuilder":"Azure.AI.Projects","com.azure.ai.agents.BetaAgentsAsyncClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaAgentsClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaMemoryStoresAsyncClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.ToolboxesAsyncClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesAsyncClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesAsyncClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys":"Azure.AI.Projects.AgentDefinitionOptInKeys","com.azure.ai.agents.implementation.models.CreateAgentFromCodeContent":"Azure.AI.Projects.CreateAgentFromCodeContent","com.azure.ai.agents.implementation.models.CreateAgentFromManifestRequest":"Azure.AI.Projects.createAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentOptions":null,"com.azure.ai.agents.implementation.models.CreateAgentRequest":"Azure.AI.Projects.createAgent.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest":"Azure.AI.Projects.createAgentVersionFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionRequest":"Azure.AI.Projects.createAgentVersion.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryRequest":"Azure.AI.Projects.createMemory.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryStoreRequest":"Azure.AI.Projects.createMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.CreateSessionRequest":"Azure.AI.Projects.createSession.Request.anonymous","com.azure.ai.agents.implementation.models.CreateToolboxVersionRequest":"Azure.AI.Projects.createToolboxVersion.Request.anonymous","com.azure.ai.agents.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.agents.implementation.models.ListMemoriesRequest":"Azure.AI.Projects.listMemories.Request.anonymous","com.azure.ai.agents.implementation.models.SearchMemoriesRequest":"Azure.AI.Projects.searchMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest":"Azure.AI.Projects.updateAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentRequest":"Azure.AI.Projects.updateAgent.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoriesRequest":"Azure.AI.Projects.updateMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryRequest":"Azure.AI.Projects.updateMemory.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryStoreRequest":"Azure.AI.Projects.updateMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateToolboxInput":"Azure.AI.Projects.UpdateToolboxRequest","com.azure.ai.agents.implementation.models.UpdateToolboxRequest":"Azure.AI.Projects.updateToolbox.Request.anonymous","com.azure.ai.agents.models.A2APreviewTool":"Azure.AI.Projects.A2APreviewTool","com.azure.ai.agents.models.A2APreviewToolboxTool":"Azure.AI.Projects.A2APreviewToolboxTool","com.azure.ai.agents.models.A2AProtocolConfiguration":"Azure.AI.Projects.A2AProtocolConfiguration","com.azure.ai.agents.models.A2AProtocolVersion":"Azure.AI.Projects.A2AProtocolVersion","com.azure.ai.agents.models.A2ATool":"Azure.AI.Projects.A2ATool","com.azure.ai.agents.models.A2AToolCall":"Azure.AI.Projects.A2AToolCall","com.azure.ai.agents.models.A2AToolCallOutput":"Azure.AI.Projects.A2AToolCallOutput","com.azure.ai.agents.models.A2AToolboxTool":"Azure.AI.Projects.A2AToolboxTool","com.azure.ai.agents.models.AISearchIndexResource":"Azure.AI.Projects.AISearchIndexResource","com.azure.ai.agents.models.ActivityProtocolConfiguration":"Azure.AI.Projects.ActivityProtocolConfiguration","com.azure.ai.agents.models.AgentBlueprintReference":"Azure.AI.Projects.AgentBlueprintReference","com.azure.ai.agents.models.AgentBlueprintReferenceType":"Azure.AI.Projects.AgentBlueprintReferenceType","com.azure.ai.agents.models.AgentCard":"Azure.AI.Projects.AgentCard","com.azure.ai.agents.models.AgentCardSkill":"Azure.AI.Projects.AgentCardSkill","com.azure.ai.agents.models.AgentDefinition":"Azure.AI.Projects.AgentDefinition","com.azure.ai.agents.models.AgentDetails":"Azure.AI.Projects.AgentObject","com.azure.ai.agents.models.AgentDetailsVersions":"Azure.AI.Projects.AgentObject.versions.anonymous","com.azure.ai.agents.models.AgentEndpointAuthorizationScheme":"Azure.AI.Projects.AgentEndpointAuthorizationScheme","com.azure.ai.agents.models.AgentEndpointAuthorizationSchemeType":"Azure.AI.Projects.AgentEndpointAuthorizationSchemeType","com.azure.ai.agents.models.AgentEndpointConfig":"Azure.AI.Projects.AgentEndpointConfig","com.azure.ai.agents.models.AgentEndpointProtocol":"Azure.AI.Projects.AgentEndpointProtocol","com.azure.ai.agents.models.AgentIdentity":"Azure.AI.Projects.AgentIdentity","com.azure.ai.agents.models.AgentIdentityStatus":"Azure.AI.Projects.AgentIdentityStatus","com.azure.ai.agents.models.AgentKind":"Azure.AI.Projects.AgentKind","com.azure.ai.agents.models.AgentObjectType":"Azure.AI.Projects.AgentObjectType","com.azure.ai.agents.models.AgentOptimizationCandidate":"Azure.AI.Projects.AgentOptimizationCandidate","com.azure.ai.agents.models.AgentOptimizationDatasetCriterion":"Azure.AI.Projects.AgentOptimizationDatasetCriterion","com.azure.ai.agents.models.AgentOptimizationDatasetInput":"Azure.AI.Projects.AgentOptimizationDatasetInput","com.azure.ai.agents.models.AgentOptimizationDatasetInputType":"Azure.AI.Projects.AgentOptimizationDatasetInputType","com.azure.ai.agents.models.AgentOptimizationDatasetItem":"Azure.AI.Projects.AgentOptimizationDatasetItem","com.azure.ai.agents.models.AgentOptimizationEvaluatorRef":"Azure.AI.Projects.AgentOptimizationEvaluatorRef","com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput":"Azure.AI.Projects.AgentOptimizationInlineDatasetInput","com.azure.ai.agents.models.AgentOptimizationJob":"Azure.AI.Projects.AgentOptimizationJob","com.azure.ai.agents.models.AgentOptimizationJobInputs":"Azure.AI.Projects.AgentOptimizationJobInputs","com.azure.ai.agents.models.AgentOptimizationJobListItem":"Azure.AI.Projects.AgentOptimizationJobListItem","com.azure.ai.agents.models.AgentOptimizationJobProgress":"Azure.AI.Projects.AgentOptimizationJobProgress","com.azure.ai.agents.models.AgentOptimizationJobResult":"Azure.AI.Projects.AgentOptimizationJobResult","com.azure.ai.agents.models.AgentOptimizationOptions":"Azure.AI.Projects.AgentOptimizationOptions","com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput":"Azure.AI.Projects.AgentOptimizationReferenceDatasetInput","com.azure.ai.agents.models.AgentReference":"Azure.AI.Projects.AgentReference","com.azure.ai.agents.models.AgentSessionResource":"Azure.AI.Projects.AgentSessionResource","com.azure.ai.agents.models.AgentSessionStatus":"Azure.AI.Projects.AgentSessionStatus","com.azure.ai.agents.models.AgentState":"Azure.AI.Projects.AgentState","com.azure.ai.agents.models.AgentStateSource":"Azure.AI.Projects.AgentStateSource","com.azure.ai.agents.models.AgentVersionDetails":"Azure.AI.Projects.AgentVersionObject","com.azure.ai.agents.models.AgentVersionStatus":"Azure.AI.Projects.AgentVersionStatus","com.azure.ai.agents.models.ApiError":"OpenAI.Error","com.azure.ai.agents.models.ApplyPatchToolParameter":"OpenAI.ApplyPatchToolParam","com.azure.ai.agents.models.ApproximateLocation":"OpenAI.ApproximateLocation","com.azure.ai.agents.models.AutoCodeInterpreterToolParameter":"OpenAI.AutoCodeInterpreterToolParam","com.azure.ai.agents.models.AzureAISearchQueryType":"Azure.AI.Projects.AzureAISearchQueryType","com.azure.ai.agents.models.AzureAISearchTool":"Azure.AI.Projects.AzureAISearchTool","com.azure.ai.agents.models.AzureAISearchToolCall":"Azure.AI.Projects.AzureAISearchToolCall","com.azure.ai.agents.models.AzureAISearchToolCallOutput":"Azure.AI.Projects.AzureAISearchToolCallOutput","com.azure.ai.agents.models.AzureAISearchToolResource":"Azure.AI.Projects.AzureAISearchToolResource","com.azure.ai.agents.models.AzureAISearchToolboxTool":"Azure.AI.Projects.AzureAISearchToolboxTool","com.azure.ai.agents.models.AzureCreateResponseDetails":"Azure.AI.Projects.AzureCreateResponseDetails","com.azure.ai.agents.models.AzureCreateResponseOptions":"Azure.AI.Projects.AzureCreateResponseOptions","com.azure.ai.agents.models.AzureFunctionBinding":"Azure.AI.Projects.AzureFunctionBinding","com.azure.ai.agents.models.AzureFunctionDefinition":"Azure.AI.Projects.AzureFunctionDefinition","com.azure.ai.agents.models.AzureFunctionDefinitionDetails":"Azure.AI.Projects.AzureFunctionDefinition.function.anonymous","com.azure.ai.agents.models.AzureFunctionStorageQueue":"Azure.AI.Projects.AzureFunctionStorageQueue","com.azure.ai.agents.models.AzureFunctionTool":"Azure.AI.Projects.AzureFunctionTool","com.azure.ai.agents.models.AzureFunctionToolCall":"Azure.AI.Projects.AzureFunctionToolCall","com.azure.ai.agents.models.AzureFunctionToolCallOutput":"Azure.AI.Projects.AzureFunctionToolCallOutput","com.azure.ai.agents.models.AzureUserSecurityContext":"Azure.AI.Projects.AzureUserSecurityContext","com.azure.ai.agents.models.BingCustomSearchConfiguration":"Azure.AI.Projects.BingCustomSearchConfiguration","com.azure.ai.agents.models.BingCustomSearchPreviewTool":"Azure.AI.Projects.BingCustomSearchPreviewTool","com.azure.ai.agents.models.BingCustomSearchToolCall":"Azure.AI.Projects.BingCustomSearchToolCall","com.azure.ai.agents.models.BingCustomSearchToolCallOutput":"Azure.AI.Projects.BingCustomSearchToolCallOutput","com.azure.ai.agents.models.BingCustomSearchToolParameters":"Azure.AI.Projects.BingCustomSearchToolParameters","com.azure.ai.agents.models.BingGroundingSearchConfiguration":"Azure.AI.Projects.BingGroundingSearchConfiguration","com.azure.ai.agents.models.BingGroundingSearchToolParameters":"Azure.AI.Projects.BingGroundingSearchToolParameters","com.azure.ai.agents.models.BingGroundingTool":"Azure.AI.Projects.BingGroundingTool","com.azure.ai.agents.models.BingGroundingToolCall":"Azure.AI.Projects.BingGroundingToolCall","com.azure.ai.agents.models.BingGroundingToolCallOutput":"Azure.AI.Projects.BingGroundingToolCallOutput","com.azure.ai.agents.models.BotServiceAuthorizationScheme":"Azure.AI.Projects.BotServiceAuthorizationScheme","com.azure.ai.agents.models.BotServiceRbacAuthorizationScheme":"Azure.AI.Projects.BotServiceRbacAuthorizationScheme","com.azure.ai.agents.models.BotServiceTenantAuthorizationScheme":"Azure.AI.Projects.BotServiceTenantAuthorizationScheme","com.azure.ai.agents.models.BrowserAutomationPreviewTool":"Azure.AI.Projects.BrowserAutomationPreviewTool","com.azure.ai.agents.models.BrowserAutomationPreviewToolboxTool":"Azure.AI.Projects.BrowserAutomationPreviewToolboxTool","com.azure.ai.agents.models.BrowserAutomationToolCall":"Azure.AI.Projects.BrowserAutomationToolCall","com.azure.ai.agents.models.BrowserAutomationToolCallOutput":"Azure.AI.Projects.BrowserAutomationToolCallOutput","com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters":"Azure.AI.Projects.BrowserAutomationToolConnectionParameters","com.azure.ai.agents.models.BrowserAutomationToolParameters":"Azure.AI.Projects.BrowserAutomationToolParameters","com.azure.ai.agents.models.CallableToolAllowedCaller":"OpenAI.CallableToolAllowedCaller","com.azure.ai.agents.models.CaptureStructuredOutputsTool":"Azure.AI.Projects.CaptureStructuredOutputsTool","com.azure.ai.agents.models.ChatSummaryMemoryItem":"Azure.AI.Projects.ChatSummaryMemoryItem","com.azure.ai.agents.models.CodeConfiguration":"Azure.AI.Projects.CodeConfiguration","com.azure.ai.agents.models.CodeDependencyResolution":"Azure.AI.Projects.CodeDependencyResolution","com.azure.ai.agents.models.CodeFileDetails":null,"com.azure.ai.agents.models.CodeInterpreterTool":"OpenAI.CodeInterpreterTool","com.azure.ai.agents.models.CodeInterpreterToolboxTool":"Azure.AI.Projects.CodeInterpreterToolboxTool","com.azure.ai.agents.models.ComputerEnvironment":"ComputerEnvironmentExpandable","com.azure.ai.agents.models.ComputerTool":"OpenAI.ComputerTool","com.azure.ai.agents.models.ComputerUsePreviewTool":"OpenAI.ComputerUsePreviewTool","com.azure.ai.agents.models.ContainerAutoParameter":"OpenAI.ContainerAutoParam","com.azure.ai.agents.models.ContainerConfiguration":"Azure.AI.Projects.ContainerConfiguration","com.azure.ai.agents.models.ContainerMemoryLimit":"ContainerMemoryLimitExpandable","com.azure.ai.agents.models.ContainerNetworkPolicyAllowlistParameter":"OpenAI.ContainerNetworkPolicyAllowlistParam","com.azure.ai.agents.models.ContainerNetworkPolicyDisabledParameter":"OpenAI.ContainerNetworkPolicyDisabledParam","com.azure.ai.agents.models.ContainerNetworkPolicyDomainSecretParameter":"OpenAI.ContainerNetworkPolicyDomainSecretParam","com.azure.ai.agents.models.ContainerNetworkPolicyParamType":"OpenAI.ContainerNetworkPolicyParamType","com.azure.ai.agents.models.ContainerNetworkPolicyParameter":"OpenAI.ContainerNetworkPolicyParam","com.azure.ai.agents.models.ContainerSkill":"OpenAI.ContainerSkill","com.azure.ai.agents.models.ContainerSkillType":"OpenAI.ContainerSkillType","com.azure.ai.agents.models.CreateAgentVersionFromCodeContent":"Azure.AI.Projects.CreateAgentVersionFromCodeContent","com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata":"Azure.AI.Projects.CreateAgentVersionFromCodeMetadata","com.azure.ai.agents.models.CreateAgentVersionInput":"Azure.AI.Projects.CreateAgentVersionRequest","com.azure.ai.agents.models.CustomGrammarFormatParameter":"OpenAI.CustomGrammarFormatParam","com.azure.ai.agents.models.CustomTextFormatParameter":"OpenAI.CustomTextFormatParam","com.azure.ai.agents.models.CustomToolParamFormat":"OpenAI.CustomToolParamFormat","com.azure.ai.agents.models.CustomToolParamFormatType":"OpenAI.CustomToolParamFormatType","com.azure.ai.agents.models.CustomToolParameter":"OpenAI.CustomToolParam","com.azure.ai.agents.models.EntraAuthorizationScheme":"Azure.AI.Projects.EntraAuthorizationScheme","com.azure.ai.agents.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.agents.models.ExternalAgentDefinition":"Azure.AI.Projects.ExternalAgentDefinition","com.azure.ai.agents.models.FabricDataAgentToolCall":"Azure.AI.Projects.FabricDataAgentToolCall","com.azure.ai.agents.models.FabricDataAgentToolCallOutput":"Azure.AI.Projects.FabricDataAgentToolCallOutput","com.azure.ai.agents.models.FabricDataAgentToolParameters":"Azure.AI.Projects.FabricDataAgentToolParameters","com.azure.ai.agents.models.FabricIqPreviewTool":"Azure.AI.Projects.FabricIQPreviewTool","com.azure.ai.agents.models.FabricIqPreviewToolboxTool":"Azure.AI.Projects.FabricIQPreviewToolboxTool","com.azure.ai.agents.models.FileSearchTool":"OpenAI.FileSearchTool","com.azure.ai.agents.models.FileSearchToolboxTool":"Azure.AI.Projects.FileSearchToolboxTool","com.azure.ai.agents.models.FixedRatioVersionSelectionRule":"Azure.AI.Projects.FixedRatioVersionSelectionRule","com.azure.ai.agents.models.FunctionShellToolParamEnvironment":"OpenAI.FunctionShellToolParamEnvironment","com.azure.ai.agents.models.FunctionShellToolParamEnvironmentType":"OpenAI.FunctionShellToolParamEnvironmentType","com.azure.ai.agents.models.FunctionShellToolParameter":"OpenAI.FunctionShellToolParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentContainerReferenceParameter":"OpenAI.FunctionShellToolParamEnvironmentContainerReferenceParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentLocalEnvironmentParameter":"OpenAI.FunctionShellToolParamEnvironmentLocalEnvironmentParam","com.azure.ai.agents.models.FunctionTool":"OpenAI.FunctionTool","com.azure.ai.agents.models.GrammarSyntax":"GrammarSyntaxExpandable","com.azure.ai.agents.models.HeaderTelemetryEndpointAuth":"Azure.AI.Projects.HeaderTelemetryEndpointAuth","com.azure.ai.agents.models.HostedAgentDefinition":"Azure.AI.Projects.HostedAgentDefinition","com.azure.ai.agents.models.HybridSearchOptions":"OpenAI.HybridSearchOptions","com.azure.ai.agents.models.ImageGenActionEnum":"ImageGenActionEnumExpandable","com.azure.ai.agents.models.ImageGenTool":"OpenAI.ImageGenTool","com.azure.ai.agents.models.ImageGenToolBackground":"ImageGenToolBackgroundExpandable","com.azure.ai.agents.models.ImageGenToolInputImageMask":"OpenAI.ImageGenToolInputImageMask","com.azure.ai.agents.models.ImageGenToolModel":"OpenAI.ImageGenTool.model.anonymous","com.azure.ai.agents.models.ImageGenToolModeration":"ImageGenToolModerationExpandable","com.azure.ai.agents.models.ImageGenToolOutputFormat":"ImageGenToolOutputFormatExpandable","com.azure.ai.agents.models.ImageGenToolQuality":"ImageGenToolQualityExpandable","com.azure.ai.agents.models.ImageGenToolSize":"ImageGenToolSizeExpandable","com.azure.ai.agents.models.IncludeEnum":"OpenAI.IncludeEnum","com.azure.ai.agents.models.InlineSkillParameter":"OpenAI.InlineSkillParam","com.azure.ai.agents.models.InlineSkillSourceParameter":"OpenAI.InlineSkillSourceParam","com.azure.ai.agents.models.InputFidelity":"InputFidelityExpandable","com.azure.ai.agents.models.InvocationsProtocolConfiguration":"Azure.AI.Projects.InvocationsProtocolConfiguration","com.azure.ai.agents.models.InvocationsWsProtocolConfiguration":"Azure.AI.Projects.InvocationsWsProtocolConfiguration","com.azure.ai.agents.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.agents.models.ListMemoriesOptions":null,"com.azure.ai.agents.models.LocalShellToolParameter":"OpenAI.LocalShellToolParam","com.azure.ai.agents.models.LocalSkillParameter":"OpenAI.LocalSkillParam","com.azure.ai.agents.models.ManagedAgentIdentityBlueprintReference":"Azure.AI.Projects.ManagedAgentIdentityBlueprintReference","com.azure.ai.agents.models.McpProtocolConfiguration":"Azure.AI.Projects.McpProtocolConfiguration","com.azure.ai.agents.models.McpTool":"OpenAI.MCPTool","com.azure.ai.agents.models.McpToolConnectorId":"McpToolConnectorIdExpandable","com.azure.ai.agents.models.McpToolFilter":"OpenAI.MCPToolFilter","com.azure.ai.agents.models.McpToolRequireApproval":"OpenAI.MCPToolRequireApproval","com.azure.ai.agents.models.McpToolboxTool":"Azure.AI.Projects.MCPToolboxTool","com.azure.ai.agents.models.MemoryCommandToolCall":"Azure.AI.Projects.MemoryCommandToolCall","com.azure.ai.agents.models.MemoryCommandToolCallOutput":"Azure.AI.Projects.MemoryCommandToolCallOutput","com.azure.ai.agents.models.MemoryItem":"Azure.AI.Projects.MemoryItem","com.azure.ai.agents.models.MemoryItemKind":"Azure.AI.Projects.MemoryItemKind","com.azure.ai.agents.models.MemoryOperation":"Azure.AI.Projects.MemoryOperation","com.azure.ai.agents.models.MemoryOperationKind":"Azure.AI.Projects.MemoryOperationKind","com.azure.ai.agents.models.MemorySearchItem":"Azure.AI.Projects.MemorySearchItem","com.azure.ai.agents.models.MemorySearchOptions":"Azure.AI.Projects.MemorySearchOptions","com.azure.ai.agents.models.MemorySearchPreviewTool":"Azure.AI.Projects.MemorySearchPreviewTool","com.azure.ai.agents.models.MemorySearchToolCall":"Azure.AI.Projects.MemorySearchToolCall","com.azure.ai.agents.models.MemoryStoreDefaultDefinition":"Azure.AI.Projects.MemoryStoreDefaultDefinition","com.azure.ai.agents.models.MemoryStoreDefaultOptions":"Azure.AI.Projects.MemoryStoreDefaultOptions","com.azure.ai.agents.models.MemoryStoreDefinition":"Azure.AI.Projects.MemoryStoreDefinition","com.azure.ai.agents.models.MemoryStoreDetails":"Azure.AI.Projects.MemoryStoreObject","com.azure.ai.agents.models.MemoryStoreKind":"Azure.AI.Projects.MemoryStoreKind","com.azure.ai.agents.models.MemoryStoreObjectType":"Azure.AI.Projects.MemoryStoreObjectType","com.azure.ai.agents.models.MemoryStoreOperationUsage":"Azure.AI.Projects.MemoryStoreOperationUsage","com.azure.ai.agents.models.MemoryStoreSearchResponse":"Azure.AI.Projects.MemoryStoreSearchResponse","com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult":"Azure.AI.Projects.MemoryStoreUpdateCompletedResult","com.azure.ai.agents.models.MemoryStoreUpdateResponse":"Azure.AI.Projects.MemoryStoreUpdateResponse","com.azure.ai.agents.models.MemoryStoreUpdateStatus":"Azure.AI.Projects.MemoryStoreUpdateStatus","com.azure.ai.agents.models.MicrosoftFabricPreviewTool":"Azure.AI.Projects.MicrosoftFabricPreviewTool","com.azure.ai.agents.models.NamespaceTool":"OpenAI.NamespaceToolParam","com.azure.ai.agents.models.OpenApiAnonymousAuthDetails":"Azure.AI.Projects.OpenApiAnonymousAuthDetails","com.azure.ai.agents.models.OpenApiAuthDetails":"Azure.AI.Projects.OpenApiAuthDetails","com.azure.ai.agents.models.OpenApiAuthType":"Azure.AI.Projects.OpenApiAuthType","com.azure.ai.agents.models.OpenApiFunctionDefinition":"Azure.AI.Projects.OpenApiFunctionDefinition","com.azure.ai.agents.models.OpenApiFunctionDefinitionFunction":"Azure.AI.Projects.OpenApiFunctionDefinition.function.anonymous","com.azure.ai.agents.models.OpenApiManagedAuthDetails":"Azure.AI.Projects.OpenApiManagedAuthDetails","com.azure.ai.agents.models.OpenApiManagedSecurityScheme":"Azure.AI.Projects.OpenApiManagedSecurityScheme","com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails":"Azure.AI.Projects.OpenApiProjectConnectionAuthDetails","com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme":"Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme","com.azure.ai.agents.models.OpenApiTool":"Azure.AI.Projects.OpenApiTool","com.azure.ai.agents.models.OpenApiToolCall":"Azure.AI.Projects.OpenApiToolCall","com.azure.ai.agents.models.OpenApiToolCallOutput":"Azure.AI.Projects.OpenApiToolCallOutput","com.azure.ai.agents.models.OpenApiToolboxTool":"Azure.AI.Projects.OpenApiToolboxTool","com.azure.ai.agents.models.OptimizedAgentIdentifier":"Azure.AI.Projects.OptimizedAgentIdentifier","com.azure.ai.agents.models.OtlpTelemetryEndpoint":"Azure.AI.Projects.OtlpTelemetryEndpoint","com.azure.ai.agents.models.PageOrder":"Azure.AI.Projects.PageOrder","com.azure.ai.agents.models.ProceduralMemoryItem":"Azure.AI.Projects.ProceduralMemoryItem","com.azure.ai.agents.models.ProgrammaticToolCallingParameter":"OpenAI.ProgrammaticToolCallingParam","com.azure.ai.agents.models.PromotionInfo":"Azure.AI.Projects.PromotionInfo","com.azure.ai.agents.models.PromptAgentDefinition":"Azure.AI.Projects.PromptAgentDefinition","com.azure.ai.agents.models.PromptAgentDefinitionTextOptions":"Azure.AI.Projects.PromptAgentDefinitionTextOptions","com.azure.ai.agents.models.ProtocolConfiguration":"Azure.AI.Projects.ProtocolConfiguration","com.azure.ai.agents.models.ProtocolVersionRecord":"Azure.AI.Projects.ProtocolVersionRecord","com.azure.ai.agents.models.RaiConfig":"Azure.AI.Projects.RaiConfig","com.azure.ai.agents.models.RankerVersionType":"RankerVersionTypeExpandable","com.azure.ai.agents.models.RankingOptions":"OpenAI.RankingOptions","com.azure.ai.agents.models.ReminderPreviewToolboxTool":"Azure.AI.Projects.ReminderPreviewToolboxTool","com.azure.ai.agents.models.ResponseFormatJsonSchemaInner":"OpenAI.ResponseFormatJsonSchemaSchema","com.azure.ai.agents.models.ResponseUsageInputTokensDetails":"OpenAI.ResponseUsageInputTokensDetails","com.azure.ai.agents.models.ResponseUsageOutputTokensDetails":"OpenAI.ResponseUsageOutputTokensDetails","com.azure.ai.agents.models.ResponsesProtocolConfiguration":"Azure.AI.Projects.ResponsesProtocolConfiguration","com.azure.ai.agents.models.SearchContentType":"OpenAI.SearchContentType","com.azure.ai.agents.models.SearchContextSize":"SearchContextSizeExpandable","com.azure.ai.agents.models.SessionDirectoryEntry":"Azure.AI.Projects.SessionDirectoryEntry","com.azure.ai.agents.models.SessionFileWriteResult":"Azure.AI.Projects.SessionFileWriteResponse","com.azure.ai.agents.models.SessionLogEvent":"Azure.AI.Projects.SessionLogEvent","com.azure.ai.agents.models.SessionLogEventType":"Azure.AI.Projects.SessionLogEventType","com.azure.ai.agents.models.SharepointGroundingToolCall":"Azure.AI.Projects.SharepointGroundingToolCall","com.azure.ai.agents.models.SharepointGroundingToolCallOutput":"Azure.AI.Projects.SharepointGroundingToolCallOutput","com.azure.ai.agents.models.SharepointGroundingToolParameters":"Azure.AI.Projects.SharepointGroundingToolParameters","com.azure.ai.agents.models.SharepointPreviewTool":"Azure.AI.Projects.SharepointPreviewTool","com.azure.ai.agents.models.SkillReferenceParameter":"OpenAI.SkillReferenceParam","com.azure.ai.agents.models.StructuredInputDefinition":"Azure.AI.Projects.StructuredInputDefinition","com.azure.ai.agents.models.StructuredOutputDefinition":"Azure.AI.Projects.StructuredOutputDefinition","com.azure.ai.agents.models.TelemetryConfig":"Azure.AI.Projects.TelemetryConfig","com.azure.ai.agents.models.TelemetryDataKind":"Azure.AI.Projects.TelemetryDataKind","com.azure.ai.agents.models.TelemetryEndpoint":"Azure.AI.Projects.TelemetryEndpoint","com.azure.ai.agents.models.TelemetryEndpointAuth":"Azure.AI.Projects.TelemetryEndpointAuth","com.azure.ai.agents.models.TelemetryEndpointAuthType":"Azure.AI.Projects.TelemetryEndpointAuthType","com.azure.ai.agents.models.TelemetryEndpointKind":"Azure.AI.Projects.TelemetryEndpointKind","com.azure.ai.agents.models.TelemetryTransportProtocol":"Azure.AI.Projects.TelemetryTransportProtocol","com.azure.ai.agents.models.TextResponseFormatConfiguration":"OpenAI.TextResponseFormatConfiguration","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatJsonObject":"OpenAI.TextResponseFormatConfigurationResponseFormatJsonObject","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatText":"OpenAI.TextResponseFormatConfigurationResponseFormatText","com.azure.ai.agents.models.TextResponseFormatConfigurationType":"OpenAI.TextResponseFormatConfigurationType","com.azure.ai.agents.models.TextResponseFormatJsonSchema":"OpenAI.TextResponseFormatJsonSchema","com.azure.ai.agents.models.Tool":"OpenAI.Tool","com.azure.ai.agents.models.ToolCallStatus":"Azure.AI.Projects.ToolCallStatus","com.azure.ai.agents.models.ToolConfig":"Azure.AI.Projects.ToolConfig","com.azure.ai.agents.models.ToolProjectConnection":"Azure.AI.Projects.ToolProjectConnection","com.azure.ai.agents.models.ToolSearchExecutionType":"OpenAI.ToolSearchExecutionType","com.azure.ai.agents.models.ToolSearchTool":"OpenAI.ToolSearchToolParam","com.azure.ai.agents.models.ToolSearchToolboxTool":"Azure.AI.Projects.ToolSearchToolboxTool","com.azure.ai.agents.models.ToolType":"OpenAI.ToolType","com.azure.ai.agents.models.ToolboxDetails":"Azure.AI.Projects.ToolboxObject","com.azure.ai.agents.models.ToolboxPolicies":"Azure.AI.Projects.ToolboxPolicies","com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool":"Azure.AI.Projects.ToolboxSearchPreviewToolboxTool","com.azure.ai.agents.models.ToolboxSkill":"Azure.AI.Projects.ToolboxSkill","com.azure.ai.agents.models.ToolboxSkillReference":"Azure.AI.Projects.ToolboxSkillReference","com.azure.ai.agents.models.ToolboxTool":"Azure.AI.Projects.ToolboxTool","com.azure.ai.agents.models.ToolboxToolType":"ToolboxToolTypeJava","com.azure.ai.agents.models.ToolboxVersionDetails":"Azure.AI.Projects.ToolboxVersionObject","com.azure.ai.agents.models.UpdateAgentDetailsOptions":"Azure.AI.Projects.patchAgentObject.Request.anonymous","com.azure.ai.agents.models.UserProfileMemoryItem":"Azure.AI.Projects.UserProfileMemoryItem","com.azure.ai.agents.models.VersionIndicator":"Azure.AI.Projects.VersionIndicator","com.azure.ai.agents.models.VersionIndicatorType":"Azure.AI.Projects.VersionIndicatorType","com.azure.ai.agents.models.VersionRefIndicator":"Azure.AI.Projects.VersionRefIndicator","com.azure.ai.agents.models.VersionSelectionRule":"Azure.AI.Projects.VersionSelectionRule","com.azure.ai.agents.models.VersionSelector":"Azure.AI.Projects.VersionSelector","com.azure.ai.agents.models.VersionSelectorType":"Azure.AI.Projects.VersionSelectorType","com.azure.ai.agents.models.WebSearchApproximateLocation":"OpenAI.WebSearchApproximateLocation","com.azure.ai.agents.models.WebSearchConfiguration":"Azure.AI.Projects.WebSearchConfiguration","com.azure.ai.agents.models.WebSearchPreviewTool":"OpenAI.WebSearchPreviewTool","com.azure.ai.agents.models.WebSearchTool":"OpenAI.WebSearchTool","com.azure.ai.agents.models.WebSearchToolFilters":"OpenAI.WebSearchToolFilters","com.azure.ai.agents.models.WebSearchToolSearchContextSize":"WebSearchToolSearchContextSizeExpandable","com.azure.ai.agents.models.WebSearchToolboxTool":"Azure.AI.Projects.WebSearchToolboxTool","com.azure.ai.agents.models.WorkIqPreviewTool":"Azure.AI.Projects.WorkIQPreviewTool","com.azure.ai.agents.models.WorkIqPreviewToolboxTool":"Azure.AI.Projects.WorkIQPreviewToolboxTool","com.azure.ai.agents.models.WorkflowAgentDefinition":"Azure.AI.Projects.WorkflowAgentDefinition"},"generatedFiles":["src/main/java/com/azure/ai/agents/AgentsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentsClient.java","src/main/java/com/azure/ai/agents/AgentsClientBuilder.java","src/main/java/com/azure/ai/agents/AgentsServiceVersion.java","src/main/java/com/azure/ai/agents/BetaAgentsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentsClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresAsyncClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresClient.java","src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java","src/main/java/com/azure/ai/agents/ToolboxesClient.java","src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaMemoryStoresImpl.java","src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/agents/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/PollingUtils.java","src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java","src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromCodeContent.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateSessionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateToolboxVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/ListMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/SearchMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxInput.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxRequest.java","src/main/java/com/azure/ai/agents/implementation/models/package-info.java","src/main/java/com/azure/ai/agents/implementation/package-info.java","src/main/java/com/azure/ai/agents/models/A2APreviewTool.java","src/main/java/com/azure/ai/agents/models/A2APreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/A2AProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/A2AProtocolVersion.java","src/main/java/com/azure/ai/agents/models/A2ATool.java","src/main/java/com/azure/ai/agents/models/A2AToolCall.java","src/main/java/com/azure/ai/agents/models/A2AToolCallOutput.java","src/main/java/com/azure/ai/agents/models/A2AToolboxTool.java","src/main/java/com/azure/ai/agents/models/AISearchIndexResource.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReference.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReferenceType.java","src/main/java/com/azure/ai/agents/models/AgentCard.java","src/main/java/com/azure/ai/agents/models/AgentCardSkill.java","src/main/java/com/azure/ai/agents/models/AgentDefinition.java","src/main/java/com/azure/ai/agents/models/AgentDetails.java","src/main/java/com/azure/ai/agents/models/AgentDetailsVersions.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationSchemeType.java","src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java","src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java","src/main/java/com/azure/ai/agents/models/AgentIdentity.java","src/main/java/com/azure/ai/agents/models/AgentIdentityStatus.java","src/main/java/com/azure/ai/agents/models/AgentKind.java","src/main/java/com/azure/ai/agents/models/AgentObjectType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationCandidate.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetCriterion.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInputType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationInlineDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJob.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobListItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobResult.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationOptions.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationReferenceDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentReference.java","src/main/java/com/azure/ai/agents/models/AgentSessionResource.java","src/main/java/com/azure/ai/agents/models/AgentSessionStatus.java","src/main/java/com/azure/ai/agents/models/AgentState.java","src/main/java/com/azure/ai/agents/models/AgentStateSource.java","src/main/java/com/azure/ai/agents/models/AgentVersionDetails.java","src/main/java/com/azure/ai/agents/models/AgentVersionStatus.java","src/main/java/com/azure/ai/agents/models/ApiError.java","src/main/java/com/azure/ai/agents/models/ApplyPatchToolParameter.java","src/main/java/com/azure/ai/agents/models/ApproximateLocation.java","src/main/java/com/azure/ai/agents/models/AutoCodeInterpreterToolParameter.java","src/main/java/com/azure/ai/agents/models/AzureAISearchQueryType.java","src/main/java/com/azure/ai/agents/models/AzureAISearchTool.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCall.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolResource.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java","src/main/java/com/azure/ai/agents/models/AzureFunctionBinding.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinitionDetails.java","src/main/java/com/azure/ai/agents/models/AzureFunctionStorageQueue.java","src/main/java/com/azure/ai/agents/models/AzureFunctionTool.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCall.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureUserSecurityContext.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCall.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingTool.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BotServiceAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceRbacAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceTenantAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCall.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolConnectionParameters.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolParameters.java","src/main/java/com/azure/ai/agents/models/CallableToolAllowedCaller.java","src/main/java/com/azure/ai/agents/models/CaptureStructuredOutputsTool.java","src/main/java/com/azure/ai/agents/models/ChatSummaryMemoryItem.java","src/main/java/com/azure/ai/agents/models/CodeConfiguration.java","src/main/java/com/azure/ai/agents/models/CodeDependencyResolution.java","src/main/java/com/azure/ai/agents/models/CodeFileDetails.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterTool.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterToolboxTool.java","src/main/java/com/azure/ai/agents/models/ComputerEnvironment.java","src/main/java/com/azure/ai/agents/models/ComputerTool.java","src/main/java/com/azure/ai/agents/models/ComputerUsePreviewTool.java","src/main/java/com/azure/ai/agents/models/ContainerAutoParameter.java","src/main/java/com/azure/ai/agents/models/ContainerConfiguration.java","src/main/java/com/azure/ai/agents/models/ContainerMemoryLimit.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyAllowlistParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDisabledParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDomainSecretParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParamType.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParameter.java","src/main/java/com/azure/ai/agents/models/ContainerSkill.java","src/main/java/com/azure/ai/agents/models/ContainerSkillType.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeContent.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeMetadata.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java","src/main/java/com/azure/ai/agents/models/CustomGrammarFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomTextFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormat.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormatType.java","src/main/java/com/azure/ai/agents/models/CustomToolParameter.java","src/main/java/com/azure/ai/agents/models/EntraAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/EvaluationLevel.java","src/main/java/com/azure/ai/agents/models/ExternalAgentDefinition.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCall.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCallOutput.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolParameters.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/FileSearchTool.java","src/main/java/com/azure/ai/agents/models/FileSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/FixedRatioVersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironment.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironmentType.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentContainerReferenceParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentLocalEnvironmentParameter.java","src/main/java/com/azure/ai/agents/models/FunctionTool.java","src/main/java/com/azure/ai/agents/models/GrammarSyntax.java","src/main/java/com/azure/ai/agents/models/HeaderTelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java","src/main/java/com/azure/ai/agents/models/HybridSearchOptions.java","src/main/java/com/azure/ai/agents/models/ImageGenActionEnum.java","src/main/java/com/azure/ai/agents/models/ImageGenTool.java","src/main/java/com/azure/ai/agents/models/ImageGenToolBackground.java","src/main/java/com/azure/ai/agents/models/ImageGenToolInputImageMask.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModel.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModeration.java","src/main/java/com/azure/ai/agents/models/ImageGenToolOutputFormat.java","src/main/java/com/azure/ai/agents/models/ImageGenToolQuality.java","src/main/java/com/azure/ai/agents/models/ImageGenToolSize.java","src/main/java/com/azure/ai/agents/models/IncludeEnum.java","src/main/java/com/azure/ai/agents/models/InlineSkillParameter.java","src/main/java/com/azure/ai/agents/models/InlineSkillSourceParameter.java","src/main/java/com/azure/ai/agents/models/InputFidelity.java","src/main/java/com/azure/ai/agents/models/InvocationsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/InvocationsWsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/JobStatus.java","src/main/java/com/azure/ai/agents/models/ListMemoriesOptions.java","src/main/java/com/azure/ai/agents/models/LocalShellToolParameter.java","src/main/java/com/azure/ai/agents/models/LocalSkillParameter.java","src/main/java/com/azure/ai/agents/models/ManagedAgentIdentityBlueprintReference.java","src/main/java/com/azure/ai/agents/models/McpProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/McpTool.java","src/main/java/com/azure/ai/agents/models/McpToolConnectorId.java","src/main/java/com/azure/ai/agents/models/McpToolFilter.java","src/main/java/com/azure/ai/agents/models/McpToolRequireApproval.java","src/main/java/com/azure/ai/agents/models/McpToolboxTool.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCallOutput.java","src/main/java/com/azure/ai/agents/models/MemoryItem.java","src/main/java/com/azure/ai/agents/models/MemoryItemKind.java","src/main/java/com/azure/ai/agents/models/MemoryOperation.java","src/main/java/com/azure/ai/agents/models/MemoryOperationKind.java","src/main/java/com/azure/ai/agents/models/MemorySearchItem.java","src/main/java/com/azure/ai/agents/models/MemorySearchOptions.java","src/main/java/com/azure/ai/agents/models/MemorySearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/MemorySearchToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultOptions.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDetails.java","src/main/java/com/azure/ai/agents/models/MemoryStoreKind.java","src/main/java/com/azure/ai/agents/models/MemoryStoreObjectType.java","src/main/java/com/azure/ai/agents/models/MemoryStoreOperationUsage.java","src/main/java/com/azure/ai/agents/models/MemoryStoreSearchResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateCompletedResult.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateStatus.java","src/main/java/com/azure/ai/agents/models/MicrosoftFabricPreviewTool.java","src/main/java/com/azure/ai/agents/models/NamespaceTool.java","src/main/java/com/azure/ai/agents/models/OpenApiAnonymousAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthType.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinitionFunction.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiTool.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCall.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCallOutput.java","src/main/java/com/azure/ai/agents/models/OpenApiToolboxTool.java","src/main/java/com/azure/ai/agents/models/OptimizedAgentIdentifier.java","src/main/java/com/azure/ai/agents/models/OtlpTelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/PageOrder.java","src/main/java/com/azure/ai/agents/models/ProceduralMemoryItem.java","src/main/java/com/azure/ai/agents/models/ProgrammaticToolCallingParameter.java","src/main/java/com/azure/ai/agents/models/PromotionInfo.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionTextOptions.java","src/main/java/com/azure/ai/agents/models/ProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/ProtocolVersionRecord.java","src/main/java/com/azure/ai/agents/models/RaiConfig.java","src/main/java/com/azure/ai/agents/models/RankerVersionType.java","src/main/java/com/azure/ai/agents/models/RankingOptions.java","src/main/java/com/azure/ai/agents/models/ReminderPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ResponseFormatJsonSchemaInner.java","src/main/java/com/azure/ai/agents/models/ResponseUsageInputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponseUsageOutputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponsesProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/SearchContentType.java","src/main/java/com/azure/ai/agents/models/SearchContextSize.java","src/main/java/com/azure/ai/agents/models/SessionDirectoryEntry.java","src/main/java/com/azure/ai/agents/models/SessionFileWriteResult.java","src/main/java/com/azure/ai/agents/models/SessionLogEvent.java","src/main/java/com/azure/ai/agents/models/SessionLogEventType.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolParameters.java","src/main/java/com/azure/ai/agents/models/SharepointPreviewTool.java","src/main/java/com/azure/ai/agents/models/SkillReferenceParameter.java","src/main/java/com/azure/ai/agents/models/StructuredInputDefinition.java","src/main/java/com/azure/ai/agents/models/StructuredOutputDefinition.java","src/main/java/com/azure/ai/agents/models/TelemetryConfig.java","src/main/java/com/azure/ai/agents/models/TelemetryDataKind.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuthType.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointKind.java","src/main/java/com/azure/ai/agents/models/TelemetryTransportProtocol.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfiguration.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatJsonObject.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatText.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationType.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatJsonSchema.java","src/main/java/com/azure/ai/agents/models/Tool.java","src/main/java/com/azure/ai/agents/models/ToolCallStatus.java","src/main/java/com/azure/ai/agents/models/ToolConfig.java","src/main/java/com/azure/ai/agents/models/ToolProjectConnection.java","src/main/java/com/azure/ai/agents/models/ToolSearchExecutionType.java","src/main/java/com/azure/ai/agents/models/ToolSearchTool.java","src/main/java/com/azure/ai/agents/models/ToolSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxDetails.java","src/main/java/com/azure/ai/agents/models/ToolboxPolicies.java","src/main/java/com/azure/ai/agents/models/ToolboxSearchPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxSkill.java","src/main/java/com/azure/ai/agents/models/ToolboxSkillReference.java","src/main/java/com/azure/ai/agents/models/ToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxVersionDetails.java","src/main/java/com/azure/ai/agents/models/UpdateAgentDetailsOptions.java","src/main/java/com/azure/ai/agents/models/UserProfileMemoryItem.java","src/main/java/com/azure/ai/agents/models/VersionIndicator.java","src/main/java/com/azure/ai/agents/models/VersionIndicatorType.java","src/main/java/com/azure/ai/agents/models/VersionRefIndicator.java","src/main/java/com/azure/ai/agents/models/VersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/VersionSelector.java","src/main/java/com/azure/ai/agents/models/VersionSelectorType.java","src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java","src/main/java/com/azure/ai/agents/models/WebSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebSearchTool.java","src/main/java/com/azure/ai/agents/models/WebSearchToolFilters.java","src/main/java/com/azure/ai/agents/models/WebSearchToolSearchContextSize.java","src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkflowAgentDefinition.java","src/main/java/com/azure/ai/agents/models/package-info.java","src/main/java/com/azure/ai/agents/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file +{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"75d42fd49a1c","crossLanguageDefinitions":{"com.azure.ai.agents.AgentsAsyncClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsAsyncClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsAsyncClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsAsyncClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsAsyncClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsAsyncClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClientBuilder":"Azure.AI.Projects","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentsAsyncClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaAgentsClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaMemoryStoresAsyncClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.ToolboxesAsyncClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesAsyncClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesAsyncClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys":"Azure.AI.Projects.AgentDefinitionOptInKeys","com.azure.ai.agents.implementation.models.ApproximateLocation":"OpenAI.ApproximateLocation","com.azure.ai.agents.implementation.models.CreateAgentFromCodeContent":"Azure.AI.Projects.CreateAgentFromCodeContent","com.azure.ai.agents.implementation.models.CreateAgentFromManifestRequest":"Azure.AI.Projects.createAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentOptions":null,"com.azure.ai.agents.implementation.models.CreateAgentRequest":"Azure.AI.Projects.createAgent.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest":"Azure.AI.Projects.createAgentVersionFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionRequest":"Azure.AI.Projects.createAgentVersion.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryRequest":"Azure.AI.Projects.createMemory.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryStoreRequest":"Azure.AI.Projects.createMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.CreateSessionRequest":"Azure.AI.Projects.createSession.Request.anonymous","com.azure.ai.agents.implementation.models.CreateToolboxVersionRequest":"Azure.AI.Projects.createToolboxVersion.Request.anonymous","com.azure.ai.agents.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest":"Azure.AI.Projects.getMicrosoft365AppPackage.Request.anonymous","com.azure.ai.agents.implementation.models.ListMemoriesRequest":"Azure.AI.Projects.listMemories.Request.anonymous","com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request":"Azure.AI.Projects.publishAgentToMicrosoft365.Request.anonymous","com.azure.ai.agents.implementation.models.SearchMemoriesRequest":"Azure.AI.Projects.searchMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest":"Azure.AI.Projects.updateAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentRequest":"Azure.AI.Projects.updateAgent.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoriesRequest":"Azure.AI.Projects.updateMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryRequest":"Azure.AI.Projects.updateMemory.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryStoreRequest":"Azure.AI.Projects.updateMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateToolboxInput":"Azure.AI.Projects.UpdateToolboxRequest","com.azure.ai.agents.implementation.models.UpdateToolboxRequest":"Azure.AI.Projects.updateToolbox.Request.anonymous","com.azure.ai.agents.implementation.models.WebSearchApproximateLocation":"OpenAI.WebSearchApproximateLocation","com.azure.ai.agents.models.A2APreviewTool":"Azure.AI.Projects.A2APreviewTool","com.azure.ai.agents.models.A2APreviewToolboxTool":"Azure.AI.Projects.A2APreviewToolboxTool","com.azure.ai.agents.models.A2AProtocolConfiguration":"Azure.AI.Projects.A2AProtocolConfiguration","com.azure.ai.agents.models.A2AProtocolVersion":"Azure.AI.Projects.A2AProtocolVersion","com.azure.ai.agents.models.A2ATool":"Azure.AI.Projects.A2ATool","com.azure.ai.agents.models.A2AToolCall":"Azure.AI.Projects.A2AToolCall","com.azure.ai.agents.models.A2AToolCallOutput":"Azure.AI.Projects.A2AToolCallOutput","com.azure.ai.agents.models.A2AToolboxTool":"Azure.AI.Projects.A2AToolboxTool","com.azure.ai.agents.models.AISearchIndexResource":"Azure.AI.Projects.AISearchIndexResource","com.azure.ai.agents.models.ActivityProtocolAccessBoundary":"Azure.AI.Projects.ActivityProtocolAccessBoundary","com.azure.ai.agents.models.ActivityProtocolConfiguration":"Azure.AI.Projects.ActivityProtocolConfiguration","com.azure.ai.agents.models.AgentBlueprintReference":"Azure.AI.Projects.AgentBlueprintReference","com.azure.ai.agents.models.AgentBlueprintReferenceType":"Azure.AI.Projects.AgentBlueprintReferenceType","com.azure.ai.agents.models.AgentCard":"Azure.AI.Projects.AgentCard","com.azure.ai.agents.models.AgentCardSkill":"Azure.AI.Projects.AgentCardSkill","com.azure.ai.agents.models.AgentDefinition":"Azure.AI.Projects.AgentDefinition","com.azure.ai.agents.models.AgentDetails":"Azure.AI.Projects.AgentObject","com.azure.ai.agents.models.AgentDetailsVersions":"Azure.AI.Projects.AgentObject.versions.anonymous","com.azure.ai.agents.models.AgentEndpointAuthorizationScheme":"Azure.AI.Projects.AgentEndpointAuthorizationScheme","com.azure.ai.agents.models.AgentEndpointAuthorizationSchemeType":"Azure.AI.Projects.AgentEndpointAuthorizationSchemeType","com.azure.ai.agents.models.AgentEndpointConfig":"Azure.AI.Projects.AgentEndpointConfig","com.azure.ai.agents.models.AgentEndpointProtocol":"Azure.AI.Projects.AgentEndpointProtocol","com.azure.ai.agents.models.AgentIdentity":"Azure.AI.Projects.AgentIdentity","com.azure.ai.agents.models.AgentIdentityStatus":"Azure.AI.Projects.AgentIdentityStatus","com.azure.ai.agents.models.AgentKind":"Azure.AI.Projects.AgentKind","com.azure.ai.agents.models.AgentObjectType":"Azure.AI.Projects.AgentObjectType","com.azure.ai.agents.models.AgentOptimizationCandidate":"Azure.AI.Projects.AgentOptimizationCandidate","com.azure.ai.agents.models.AgentOptimizationDatasetCriterion":"Azure.AI.Projects.AgentOptimizationDatasetCriterion","com.azure.ai.agents.models.AgentOptimizationDatasetInput":"Azure.AI.Projects.AgentOptimizationDatasetInput","com.azure.ai.agents.models.AgentOptimizationDatasetInputType":"Azure.AI.Projects.AgentOptimizationDatasetInputType","com.azure.ai.agents.models.AgentOptimizationDatasetItem":"Azure.AI.Projects.AgentOptimizationDatasetItem","com.azure.ai.agents.models.AgentOptimizationEvaluatorRef":"Azure.AI.Projects.AgentOptimizationEvaluatorRef","com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput":"Azure.AI.Projects.AgentOptimizationInlineDatasetInput","com.azure.ai.agents.models.AgentOptimizationJob":"Azure.AI.Projects.AgentOptimizationJob","com.azure.ai.agents.models.AgentOptimizationJobInputs":"Azure.AI.Projects.AgentOptimizationJobInputs","com.azure.ai.agents.models.AgentOptimizationJobListItem":"Azure.AI.Projects.AgentOptimizationJobListItem","com.azure.ai.agents.models.AgentOptimizationJobProgress":"Azure.AI.Projects.AgentOptimizationJobProgress","com.azure.ai.agents.models.AgentOptimizationJobResult":"Azure.AI.Projects.AgentOptimizationJobResult","com.azure.ai.agents.models.AgentOptimizationOptions":"Azure.AI.Projects.AgentOptimizationOptions","com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput":"Azure.AI.Projects.AgentOptimizationReferenceDatasetInput","com.azure.ai.agents.models.AgentReference":"Azure.AI.Projects.AgentReference","com.azure.ai.agents.models.AgentSessionResource":"Azure.AI.Projects.AgentSessionResource","com.azure.ai.agents.models.AgentSessionStatus":"Azure.AI.Projects.AgentSessionStatus","com.azure.ai.agents.models.AgentState":"Azure.AI.Projects.AgentState","com.azure.ai.agents.models.AgentStateSource":"Azure.AI.Projects.AgentStateSource","com.azure.ai.agents.models.AgentVersionDetails":"Azure.AI.Projects.AgentVersionObject","com.azure.ai.agents.models.AgentVersionStatus":"Azure.AI.Projects.AgentVersionStatus","com.azure.ai.agents.models.ApiError":"OpenAI.Error","com.azure.ai.agents.models.ApplyPatchToolParameter":"OpenAI.ApplyPatchToolParam","com.azure.ai.agents.models.AutoCodeInterpreterToolParameter":"OpenAI.AutoCodeInterpreterToolParam","com.azure.ai.agents.models.AzureAISearchQueryType":"Azure.AI.Projects.AzureAISearchQueryType","com.azure.ai.agents.models.AzureAISearchTool":"Azure.AI.Projects.AzureAISearchTool","com.azure.ai.agents.models.AzureAISearchToolCall":"Azure.AI.Projects.AzureAISearchToolCall","com.azure.ai.agents.models.AzureAISearchToolCallOutput":"Azure.AI.Projects.AzureAISearchToolCallOutput","com.azure.ai.agents.models.AzureAISearchToolResource":"Azure.AI.Projects.AzureAISearchToolResource","com.azure.ai.agents.models.AzureAISearchToolboxTool":"Azure.AI.Projects.AzureAISearchToolboxTool","com.azure.ai.agents.models.AzureCreateResponseDetails":"Azure.AI.Projects.AzureCreateResponseDetails","com.azure.ai.agents.models.AzureCreateResponseOptions":"Azure.AI.Projects.AzureCreateResponseOptions","com.azure.ai.agents.models.AzureFunctionBinding":"Azure.AI.Projects.AzureFunctionBinding","com.azure.ai.agents.models.AzureFunctionDefinition":"Azure.AI.Projects.AzureFunctionDefinition","com.azure.ai.agents.models.AzureFunctionDefinitionDetails":"Azure.AI.Projects.AzureFunctionDefinition.function.anonymous","com.azure.ai.agents.models.AzureFunctionStorageQueue":"Azure.AI.Projects.AzureFunctionStorageQueue","com.azure.ai.agents.models.AzureFunctionTool":"Azure.AI.Projects.AzureFunctionTool","com.azure.ai.agents.models.AzureFunctionToolCall":"Azure.AI.Projects.AzureFunctionToolCall","com.azure.ai.agents.models.AzureFunctionToolCallOutput":"Azure.AI.Projects.AzureFunctionToolCallOutput","com.azure.ai.agents.models.AzureUserSecurityContext":"Azure.AI.Projects.AzureUserSecurityContext","com.azure.ai.agents.models.BingCustomSearchConfiguration":"Azure.AI.Projects.BingCustomSearchConfiguration","com.azure.ai.agents.models.BingCustomSearchPreviewTool":"Azure.AI.Projects.BingCustomSearchPreviewTool","com.azure.ai.agents.models.BingCustomSearchToolCall":"Azure.AI.Projects.BingCustomSearchToolCall","com.azure.ai.agents.models.BingCustomSearchToolCallOutput":"Azure.AI.Projects.BingCustomSearchToolCallOutput","com.azure.ai.agents.models.BingCustomSearchToolParameters":"Azure.AI.Projects.BingCustomSearchToolParameters","com.azure.ai.agents.models.BingGroundingSearchConfiguration":"Azure.AI.Projects.BingGroundingSearchConfiguration","com.azure.ai.agents.models.BingGroundingSearchToolParameters":"Azure.AI.Projects.BingGroundingSearchToolParameters","com.azure.ai.agents.models.BingGroundingTool":"Azure.AI.Projects.BingGroundingTool","com.azure.ai.agents.models.BingGroundingToolCall":"Azure.AI.Projects.BingGroundingToolCall","com.azure.ai.agents.models.BingGroundingToolCallOutput":"Azure.AI.Projects.BingGroundingToolCallOutput","com.azure.ai.agents.models.BotServiceAuthorizationScheme":"Azure.AI.Projects.BotServiceAuthorizationScheme","com.azure.ai.agents.models.BotServiceRbacAuthorizationScheme":"Azure.AI.Projects.BotServiceRbacAuthorizationScheme","com.azure.ai.agents.models.BotServiceTenantAuthorizationScheme":"Azure.AI.Projects.BotServiceTenantAuthorizationScheme","com.azure.ai.agents.models.BrowserAutomationPreviewTool":"Azure.AI.Projects.BrowserAutomationPreviewTool","com.azure.ai.agents.models.BrowserAutomationPreviewToolboxTool":"Azure.AI.Projects.BrowserAutomationPreviewToolboxTool","com.azure.ai.agents.models.BrowserAutomationToolCall":"Azure.AI.Projects.BrowserAutomationToolCall","com.azure.ai.agents.models.BrowserAutomationToolCallOutput":"Azure.AI.Projects.BrowserAutomationToolCallOutput","com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters":"Azure.AI.Projects.BrowserAutomationToolConnectionParameters","com.azure.ai.agents.models.BrowserAutomationToolParameters":"Azure.AI.Projects.BrowserAutomationToolParameters","com.azure.ai.agents.models.CallableToolAllowedCaller":"OpenAI.CallableToolAllowedCaller","com.azure.ai.agents.models.CaptureStructuredOutputsTool":"Azure.AI.Projects.CaptureStructuredOutputsTool","com.azure.ai.agents.models.ChatSummaryMemoryItem":"Azure.AI.Projects.ChatSummaryMemoryItem","com.azure.ai.agents.models.CodeConfiguration":"Azure.AI.Projects.CodeConfiguration","com.azure.ai.agents.models.CodeDependencyResolution":"Azure.AI.Projects.CodeDependencyResolution","com.azure.ai.agents.models.CodeFileDetails":null,"com.azure.ai.agents.models.CodeInterpreterTool":"OpenAI.CodeInterpreterTool","com.azure.ai.agents.models.CodeInterpreterToolboxTool":"Azure.AI.Projects.CodeInterpreterToolboxTool","com.azure.ai.agents.models.ComputerEnvironment":"ComputerEnvironmentExpandable","com.azure.ai.agents.models.ComputerTool":"OpenAI.ComputerTool","com.azure.ai.agents.models.ComputerUsePreviewTool":"OpenAI.ComputerUsePreviewTool","com.azure.ai.agents.models.ContainerAutoParameter":"OpenAI.ContainerAutoParam","com.azure.ai.agents.models.ContainerConfiguration":"Azure.AI.Projects.ContainerConfiguration","com.azure.ai.agents.models.ContainerMemoryLimit":"ContainerMemoryLimitExpandable","com.azure.ai.agents.models.ContainerNetworkPolicyAllowlistParameter":"OpenAI.ContainerNetworkPolicyAllowlistParam","com.azure.ai.agents.models.ContainerNetworkPolicyDisabledParameter":"OpenAI.ContainerNetworkPolicyDisabledParam","com.azure.ai.agents.models.ContainerNetworkPolicyDomainSecretParameter":"OpenAI.ContainerNetworkPolicyDomainSecretParam","com.azure.ai.agents.models.ContainerNetworkPolicyParamType":"OpenAI.ContainerNetworkPolicyParamType","com.azure.ai.agents.models.ContainerNetworkPolicyParameter":"OpenAI.ContainerNetworkPolicyParam","com.azure.ai.agents.models.ContainerSkill":"OpenAI.ContainerSkill","com.azure.ai.agents.models.ContainerSkillType":"OpenAI.ContainerSkillType","com.azure.ai.agents.models.ConversationResource":"OpenAI.ConversationResource","com.azure.ai.agents.models.CreateAgentVersionFromCodeContent":"Azure.AI.Projects.CreateAgentVersionFromCodeContent","com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata":"Azure.AI.Projects.CreateAgentVersionFromCodeMetadata","com.azure.ai.agents.models.CreateAgentVersionInput":"Azure.AI.Projects.CreateAgentVersionRequest","com.azure.ai.agents.models.CreateAgentVersionOptions":null,"com.azure.ai.agents.models.CustomGrammarFormatParameter":"OpenAI.CustomGrammarFormatParam","com.azure.ai.agents.models.CustomTextFormatParameter":"OpenAI.CustomTextFormatParam","com.azure.ai.agents.models.CustomToolParamFormat":"OpenAI.CustomToolParamFormat","com.azure.ai.agents.models.CustomToolParamFormatType":"OpenAI.CustomToolParamFormatType","com.azure.ai.agents.models.CustomToolParameter":"OpenAI.CustomToolParam","com.azure.ai.agents.models.DigitalWorkerType":"Azure.AI.Projects.DigitalWorkerType","com.azure.ai.agents.models.EntraAuthorizationScheme":"Azure.AI.Projects.EntraAuthorizationScheme","com.azure.ai.agents.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.agents.models.ExternalAgentDefinition":"Azure.AI.Projects.ExternalAgentDefinition","com.azure.ai.agents.models.FabricDataAgentToolCall":"Azure.AI.Projects.FabricDataAgentToolCall","com.azure.ai.agents.models.FabricDataAgentToolCallOutput":"Azure.AI.Projects.FabricDataAgentToolCallOutput","com.azure.ai.agents.models.FabricDataAgentToolParameters":"Azure.AI.Projects.FabricDataAgentToolParameters","com.azure.ai.agents.models.FabricIqPreviewTool":"Azure.AI.Projects.FabricIQPreviewTool","com.azure.ai.agents.models.FabricIqPreviewToolboxTool":"Azure.AI.Projects.FabricIQPreviewToolboxTool","com.azure.ai.agents.models.FileSearchTool":"OpenAI.FileSearchTool","com.azure.ai.agents.models.FileSearchToolboxTool":"Azure.AI.Projects.FileSearchToolboxTool","com.azure.ai.agents.models.FixedRatioVersionSelectionRule":"Azure.AI.Projects.FixedRatioVersionSelectionRule","com.azure.ai.agents.models.FunctionShellToolParamEnvironment":"OpenAI.FunctionShellToolParamEnvironment","com.azure.ai.agents.models.FunctionShellToolParamEnvironmentType":"OpenAI.FunctionShellToolParamEnvironmentType","com.azure.ai.agents.models.FunctionShellToolParameter":"OpenAI.FunctionShellToolParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentContainerReferenceParameter":"OpenAI.FunctionShellToolParamEnvironmentContainerReferenceParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentLocalEnvironmentParameter":"OpenAI.FunctionShellToolParamEnvironmentLocalEnvironmentParam","com.azure.ai.agents.models.FunctionTool":"OpenAI.FunctionTool","com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions":null,"com.azure.ai.agents.models.GrammarSyntax":"GrammarSyntaxExpandable","com.azure.ai.agents.models.HeaderTelemetryEndpointAuth":"Azure.AI.Projects.HeaderTelemetryEndpointAuth","com.azure.ai.agents.models.HostedAgentDefinition":"Azure.AI.Projects.HostedAgentDefinition","com.azure.ai.agents.models.HybridSearchOptions":"OpenAI.HybridSearchOptions","com.azure.ai.agents.models.ImageGenActionEnum":"ImageGenActionEnumExpandable","com.azure.ai.agents.models.ImageGenTool":"OpenAI.ImageGenTool","com.azure.ai.agents.models.ImageGenToolBackground":"ImageGenToolBackgroundExpandable","com.azure.ai.agents.models.ImageGenToolInputImageMask":"OpenAI.ImageGenToolInputImageMask","com.azure.ai.agents.models.ImageGenToolModel":"OpenAI.ImageGenTool.model.anonymous","com.azure.ai.agents.models.ImageGenToolModeration":"ImageGenToolModerationExpandable","com.azure.ai.agents.models.ImageGenToolOutputFormat":"ImageGenToolOutputFormatExpandable","com.azure.ai.agents.models.ImageGenToolQuality":"ImageGenToolQualityExpandable","com.azure.ai.agents.models.ImageGenToolSize":"ImageGenToolSizeExpandable","com.azure.ai.agents.models.IncludeEnum":"OpenAI.IncludeEnum","com.azure.ai.agents.models.InlineSkillParameter":"OpenAI.InlineSkillParam","com.azure.ai.agents.models.InlineSkillSourceParameter":"OpenAI.InlineSkillSourceParam","com.azure.ai.agents.models.InputFidelity":"InputFidelityExpandable","com.azure.ai.agents.models.InvocationsProtocolConfiguration":"Azure.AI.Projects.InvocationsProtocolConfiguration","com.azure.ai.agents.models.InvocationsWsProtocolConfiguration":"Azure.AI.Projects.InvocationsWsProtocolConfiguration","com.azure.ai.agents.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.agents.models.ListMemoriesOptions":null,"com.azure.ai.agents.models.LocalShellToolParameter":"OpenAI.LocalShellToolParam","com.azure.ai.agents.models.LocalSkillParameter":"OpenAI.LocalSkillParam","com.azure.ai.agents.models.ManagedAgentIdentityBlueprintReference":"Azure.AI.Projects.ManagedAgentIdentityBlueprintReference","com.azure.ai.agents.models.McpListToolsTool":"OpenAI.MCPListToolsTool","com.azure.ai.agents.models.McpListToolsToolAnnotations":"OpenAI.MCPListToolsToolAnnotations","com.azure.ai.agents.models.McpListToolsToolInputSchema":"OpenAI.MCPListToolsToolInputSchema","com.azure.ai.agents.models.McpProtocolConfiguration":"Azure.AI.Projects.McpProtocolConfiguration","com.azure.ai.agents.models.McpTool":"OpenAI.MCPTool","com.azure.ai.agents.models.McpToolConnectorId":"McpToolConnectorIdExpandable","com.azure.ai.agents.models.McpToolFilter":"OpenAI.MCPToolFilter","com.azure.ai.agents.models.McpToolRequireApproval":"OpenAI.MCPToolRequireApproval","com.azure.ai.agents.models.McpToolboxTool":"Azure.AI.Projects.MCPToolboxTool","com.azure.ai.agents.models.MemoryCommandToolCall":"Azure.AI.Projects.MemoryCommandToolCall","com.azure.ai.agents.models.MemoryCommandToolCallOutput":"Azure.AI.Projects.MemoryCommandToolCallOutput","com.azure.ai.agents.models.MemoryItem":"Azure.AI.Projects.MemoryItem","com.azure.ai.agents.models.MemoryItemKind":"Azure.AI.Projects.MemoryItemKind","com.azure.ai.agents.models.MemoryOperation":"Azure.AI.Projects.MemoryOperation","com.azure.ai.agents.models.MemoryOperationKind":"Azure.AI.Projects.MemoryOperationKind","com.azure.ai.agents.models.MemorySearchItem":"Azure.AI.Projects.MemorySearchItem","com.azure.ai.agents.models.MemorySearchOptions":"Azure.AI.Projects.MemorySearchOptions","com.azure.ai.agents.models.MemorySearchPreviewTool":"Azure.AI.Projects.MemorySearchPreviewTool","com.azure.ai.agents.models.MemorySearchToolCall":"Azure.AI.Projects.MemorySearchToolCall","com.azure.ai.agents.models.MemoryStoreDefaultDefinition":"Azure.AI.Projects.MemoryStoreDefaultDefinition","com.azure.ai.agents.models.MemoryStoreDefaultOptions":"Azure.AI.Projects.MemoryStoreDefaultOptions","com.azure.ai.agents.models.MemoryStoreDefinition":"Azure.AI.Projects.MemoryStoreDefinition","com.azure.ai.agents.models.MemoryStoreDetails":"Azure.AI.Projects.MemoryStoreObject","com.azure.ai.agents.models.MemoryStoreKind":"Azure.AI.Projects.MemoryStoreKind","com.azure.ai.agents.models.MemoryStoreObjectType":"Azure.AI.Projects.MemoryStoreObjectType","com.azure.ai.agents.models.MemoryStoreOperationUsage":"Azure.AI.Projects.MemoryStoreOperationUsage","com.azure.ai.agents.models.MemoryStoreSearchResponse":"Azure.AI.Projects.MemoryStoreSearchResponse","com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult":"Azure.AI.Projects.MemoryStoreUpdateCompletedResult","com.azure.ai.agents.models.MemoryStoreUpdateResponse":"Azure.AI.Projects.MemoryStoreUpdateResponse","com.azure.ai.agents.models.MemoryStoreUpdateStatus":"Azure.AI.Projects.MemoryStoreUpdateStatus","com.azure.ai.agents.models.Metadata":"OpenAI.Metadata","com.azure.ai.agents.models.Microsoft365PermissionScopes":"Azure.AI.Projects.Microsoft365PermissionScopes","com.azure.ai.agents.models.Microsoft365PublishDefaults":"Azure.AI.Projects.Microsoft365PublishDefaults","com.azure.ai.agents.models.Microsoft365PublishResponse":"Azure.AI.Projects.Microsoft365PublishResponse","com.azure.ai.agents.models.Microsoft365PublishScope":"Azure.AI.Projects.Microsoft365PublishScope","com.azure.ai.agents.models.MicrosoftFabricPreviewTool":"Azure.AI.Projects.MicrosoftFabricPreviewTool","com.azure.ai.agents.models.ModelRouterAttempt":"Azure.AI.Projects.ModelRouterAttempt","com.azure.ai.agents.models.ModelRouterAttemptError":"Azure.AI.Projects.ModelRouterAttemptError","com.azure.ai.agents.models.ModelRouterAttemptResult":"Azure.AI.Projects.ModelRouterAttemptResult","com.azure.ai.agents.models.ModelRouterDetails":"Azure.AI.Projects.ModelRouterDetails","com.azure.ai.agents.models.ModelRouterMode":"Azure.AI.Projects.ModelRouterMode","com.azure.ai.agents.models.ModelSelectionDetails":"Azure.AI.Projects.ModelSelectionDetails","com.azure.ai.agents.models.NamespaceTool":"OpenAI.NamespaceToolParam","com.azure.ai.agents.models.OpenApiAnonymousAuthDetails":"Azure.AI.Projects.OpenApiAnonymousAuthDetails","com.azure.ai.agents.models.OpenApiAuthDetails":"Azure.AI.Projects.OpenApiAuthDetails","com.azure.ai.agents.models.OpenApiAuthType":"Azure.AI.Projects.OpenApiAuthType","com.azure.ai.agents.models.OpenApiFunctionDefinition":"Azure.AI.Projects.OpenApiFunctionDefinition","com.azure.ai.agents.models.OpenApiFunctionDefinitionFunction":"Azure.AI.Projects.OpenApiFunctionDefinition.function.anonymous","com.azure.ai.agents.models.OpenApiManagedAuthDetails":"Azure.AI.Projects.OpenApiManagedAuthDetails","com.azure.ai.agents.models.OpenApiManagedSecurityScheme":"Azure.AI.Projects.OpenApiManagedSecurityScheme","com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails":"Azure.AI.Projects.OpenApiProjectConnectionAuthDetails","com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme":"Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme","com.azure.ai.agents.models.OpenApiTool":"Azure.AI.Projects.OpenApiTool","com.azure.ai.agents.models.OpenApiToolCall":"Azure.AI.Projects.OpenApiToolCall","com.azure.ai.agents.models.OpenApiToolCallOutput":"Azure.AI.Projects.OpenApiToolCallOutput","com.azure.ai.agents.models.OpenApiToolboxTool":"Azure.AI.Projects.OpenApiToolboxTool","com.azure.ai.agents.models.OptimizedAgentIdentifier":"Azure.AI.Projects.OptimizedAgentIdentifier","com.azure.ai.agents.models.OtlpTelemetryEndpoint":"Azure.AI.Projects.OtlpTelemetryEndpoint","com.azure.ai.agents.models.PageOrder":"Azure.AI.Projects.PageOrder","com.azure.ai.agents.models.ProceduralMemoryItem":"Azure.AI.Projects.ProceduralMemoryItem","com.azure.ai.agents.models.ProgrammaticToolCallingParameter":"OpenAI.ProgrammaticToolCallingParam","com.azure.ai.agents.models.PromotionInfo":"Azure.AI.Projects.PromotionInfo","com.azure.ai.agents.models.PromptAgentDefinition":"Azure.AI.Projects.PromptAgentDefinition","com.azure.ai.agents.models.PromptAgentDefinitionReasoningContext":"Azure.AI.Projects.PromptAgentDefinition.reasoning.context.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningGenerateSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.generate_summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionTextOptions":"Azure.AI.Projects.PromptAgentDefinitionTextOptions","com.azure.ai.agents.models.ProtocolConfiguration":"Azure.AI.Projects.ProtocolConfiguration","com.azure.ai.agents.models.ProtocolVersionRecord":"Azure.AI.Projects.ProtocolVersionRecord","com.azure.ai.agents.models.PublishAgentToMicrosoft365Options":null,"com.azure.ai.agents.models.PublishApprovalStatus":"Azure.AI.Projects.PublishApprovalStatus","com.azure.ai.agents.models.RaiConfig":"Azure.AI.Projects.RaiConfig","com.azure.ai.agents.models.RankerVersionType":"RankerVersionTypeExpandable","com.azure.ai.agents.models.RankingOptions":"OpenAI.RankingOptions","com.azure.ai.agents.models.RealtimeAudioFormats":"OpenAI.RealtimeAudioFormats","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcm":"OpenAI.RealtimeAudioFormatsAudioPcm","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmRate":null,"com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcma":"OpenAI.RealtimeAudioFormatsAudioPcma","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmu":"OpenAI.RealtimeAudioFormatsAudioPcmu","com.azure.ai.agents.models.RealtimeAudioFormatsType":"OpenAI.RealtimeAudioFormatsType","com.azure.ai.agents.models.RealtimeConversationItem":"OpenAI.RealtimeConversationItem","com.azure.ai.agents.models.RealtimeConversationItemFunctionCall":"OpenAI.RealtimeConversationItemFunctionCall","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutput":"OpenAI.RealtimeConversationItemFunctionCallOutput","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutputStatus":"OpenAI.RealtimeConversationItemFunctionCallOutput.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallStatus":"OpenAI.RealtimeConversationItemFunctionCall.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject":null,"com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject1":null,"com.azure.ai.agents.models.RealtimeConversationItemType":"OpenAI.RealtimeConversationItemType","com.azure.ai.agents.models.RealtimeFunctionToolParameters":"OpenAI.RealtimeFunctionToolParameters","com.azure.ai.agents.models.RealtimeMCPApprovalRequest":"OpenAI.RealtimeMCPApprovalRequest","com.azure.ai.agents.models.RealtimeMCPApprovalResponse":"OpenAI.RealtimeMCPApprovalResponse","com.azure.ai.agents.models.RealtimeMCPError":"OpenAI.RealtimeMCPError","com.azure.ai.agents.models.RealtimeMCPHTTPError":"OpenAI.RealtimeMCPHTTPError","com.azure.ai.agents.models.RealtimeMCPListTools":"OpenAI.RealtimeMCPListTools","com.azure.ai.agents.models.RealtimeMCPProtocolError":"OpenAI.RealtimeMCPProtocolError","com.azure.ai.agents.models.RealtimeMCPToolCall":"OpenAI.RealtimeMCPToolCall","com.azure.ai.agents.models.RealtimeMCPToolExecutionError":"OpenAI.RealtimeMCPToolExecutionError","com.azure.ai.agents.models.RealtimeMcpErrorType":"OpenAI.RealtimeMcpErrorType","com.azure.ai.agents.models.RealtimeResponseStatusDetails":"OpenAI.RealtimeResponseStatusDetails","com.azure.ai.agents.models.RealtimeResponseStatusDetailsError":"OpenAI.RealtimeResponseStatusDetailsError","com.azure.ai.agents.models.RealtimeResponseStatusDetailsReason":"OpenAI.RealtimeResponseStatusDetails.reason.anonymous","com.azure.ai.agents.models.RealtimeResponseStatusDetailsType":"OpenAI.RealtimeResponseStatusDetails.type.anonymous","com.azure.ai.agents.models.RealtimeResponseUsage":"OpenAI.RealtimeResponseUsage","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetails":"OpenAI.RealtimeResponseUsageInputTokenDetails","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails":"OpenAI.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails","com.azure.ai.agents.models.RealtimeResponseUsageOutputTokenDetails":"OpenAI.RealtimeResponseUsageOutputTokenDetails","com.azure.ai.agents.models.Reasoning":"OpenAI.Reasoning","com.azure.ai.agents.models.ReasoningEffort":"OpenAI.ReasoningEffort","com.azure.ai.agents.models.ReasoningModeEnum":"OpenAI.ReasoningModeEnum","com.azure.ai.agents.models.ReminderPreviewToolboxTool":"Azure.AI.Projects.ReminderPreviewToolboxTool","com.azure.ai.agents.models.ResponseFormatJsonSchemaInner":"OpenAI.ResponseFormatJsonSchemaSchema","com.azure.ai.agents.models.ResponseUsageInputTokensDetails":"OpenAI.ResponseUsageInputTokensDetails","com.azure.ai.agents.models.ResponseUsageOutputTokensDetails":"OpenAI.ResponseUsageOutputTokensDetails","com.azure.ai.agents.models.ResponsesProtocolConfiguration":"Azure.AI.Projects.ResponsesProtocolConfiguration","com.azure.ai.agents.models.RoutingTraceEntry":"Azure.AI.Projects.RoutingTraceEntry","com.azure.ai.agents.models.SearchContentType":"OpenAI.SearchContentType","com.azure.ai.agents.models.SearchContextSize":"SearchContextSizeExpandable","com.azure.ai.agents.models.SessionConfiguration":"Azure.AI.Projects.SessionConfiguration","com.azure.ai.agents.models.SessionDirectoryEntry":"Azure.AI.Projects.SessionDirectoryEntry","com.azure.ai.agents.models.SessionFileWriteResult":"Azure.AI.Projects.SessionFileWriteResponse","com.azure.ai.agents.models.SessionLogEvent":"Azure.AI.Projects.SessionLogEvent","com.azure.ai.agents.models.SessionLogEventType":"Azure.AI.Projects.SessionLogEventType","com.azure.ai.agents.models.SharepointGroundingToolCall":"Azure.AI.Projects.SharepointGroundingToolCall","com.azure.ai.agents.models.SharepointGroundingToolCallOutput":"Azure.AI.Projects.SharepointGroundingToolCallOutput","com.azure.ai.agents.models.SharepointGroundingToolParameters":"Azure.AI.Projects.SharepointGroundingToolParameters","com.azure.ai.agents.models.SharepointPreviewTool":"Azure.AI.Projects.SharepointPreviewTool","com.azure.ai.agents.models.ShellToolboxTool":"Azure.AI.Projects.ShellToolboxTool","com.azure.ai.agents.models.SkillReferenceParameter":"OpenAI.SkillReferenceParam","com.azure.ai.agents.models.StructuredInputDefinition":"Azure.AI.Projects.StructuredInputDefinition","com.azure.ai.agents.models.StructuredOutputDefinition":"Azure.AI.Projects.StructuredOutputDefinition","com.azure.ai.agents.models.TelemetryConfig":"Azure.AI.Projects.TelemetryConfig","com.azure.ai.agents.models.TelemetryDataKind":"Azure.AI.Projects.TelemetryDataKind","com.azure.ai.agents.models.TelemetryEndpoint":"Azure.AI.Projects.TelemetryEndpoint","com.azure.ai.agents.models.TelemetryEndpointAuth":"Azure.AI.Projects.TelemetryEndpointAuth","com.azure.ai.agents.models.TelemetryEndpointAuthType":"Azure.AI.Projects.TelemetryEndpointAuthType","com.azure.ai.agents.models.TelemetryEndpointKind":"Azure.AI.Projects.TelemetryEndpointKind","com.azure.ai.agents.models.TelemetryTransportProtocol":"Azure.AI.Projects.TelemetryTransportProtocol","com.azure.ai.agents.models.TextResponseFormatConfiguration":"OpenAI.TextResponseFormatConfiguration","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatJsonObject":"OpenAI.TextResponseFormatConfigurationResponseFormatJsonObject","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatText":"OpenAI.TextResponseFormatConfigurationResponseFormatText","com.azure.ai.agents.models.TextResponseFormatConfigurationType":"OpenAI.TextResponseFormatConfigurationType","com.azure.ai.agents.models.TextResponseFormatJsonSchema":"OpenAI.TextResponseFormatJsonSchema","com.azure.ai.agents.models.Tool":"OpenAI.Tool","com.azure.ai.agents.models.ToolCallStatus":"Azure.AI.Projects.ToolCallStatus","com.azure.ai.agents.models.ToolChoiceFunction":"OpenAI.ToolChoiceFunction","com.azure.ai.agents.models.ToolChoiceMCP":"OpenAI.ToolChoiceMCP","com.azure.ai.agents.models.ToolChoiceParam":"OpenAI.ToolChoiceParam","com.azure.ai.agents.models.ToolChoiceParamType":"OpenAI.ToolChoiceParamType","com.azure.ai.agents.models.ToolConfig":"Azure.AI.Projects.ToolConfig","com.azure.ai.agents.models.ToolProjectConnection":"Azure.AI.Projects.ToolProjectConnection","com.azure.ai.agents.models.ToolSearchExecutionType":"OpenAI.ToolSearchExecutionType","com.azure.ai.agents.models.ToolSearchTool":"OpenAI.ToolSearchToolParam","com.azure.ai.agents.models.ToolSearchToolboxTool":"Azure.AI.Projects.ToolSearchToolboxTool","com.azure.ai.agents.models.ToolType":"OpenAI.ToolType","com.azure.ai.agents.models.ToolboxDetails":"Azure.AI.Projects.ToolboxObject","com.azure.ai.agents.models.ToolboxPolicies":"Azure.AI.Projects.ToolboxPolicies","com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool":"Azure.AI.Projects.ToolboxSearchPreviewToolboxTool","com.azure.ai.agents.models.ToolboxShellContainerAutoEnvironment":"Azure.AI.Projects.ToolboxShellContainerAutoEnvironment","com.azure.ai.agents.models.ToolboxShellContainerReferenceEnvironment":"Azure.AI.Projects.ToolboxShellContainerReferenceEnvironment","com.azure.ai.agents.models.ToolboxShellEnvironment":"Azure.AI.Projects.ToolboxShellEnvironment","com.azure.ai.agents.models.ToolboxShellNetworkPolicy":"Azure.AI.Projects.ToolboxShellNetworkPolicy","com.azure.ai.agents.models.ToolboxShellNetworkPolicyDisabled":"Azure.AI.Projects.ToolboxShellNetworkPolicyDisabled","com.azure.ai.agents.models.ToolboxSkill":"Azure.AI.Projects.ToolboxSkill","com.azure.ai.agents.models.ToolboxSkillReference":"Azure.AI.Projects.ToolboxSkillReference","com.azure.ai.agents.models.ToolboxTool":"Azure.AI.Projects.ToolboxTool","com.azure.ai.agents.models.ToolboxToolType":"Azure.AI.Projects.ToolboxToolType","com.azure.ai.agents.models.ToolboxVersionDetails":"Azure.AI.Projects.ToolboxVersionObject","com.azure.ai.agents.models.UpdateAgentDetailsOptions":"Azure.AI.Projects.patchAgentObject.Request.anonymous","com.azure.ai.agents.models.UserProfileMemoryItem":"Azure.AI.Projects.UserProfileMemoryItem","com.azure.ai.agents.models.VersionIndicator":"Azure.AI.Projects.VersionIndicator","com.azure.ai.agents.models.VersionIndicatorType":"Azure.AI.Projects.VersionIndicatorType","com.azure.ai.agents.models.VersionRefIndicator":"Azure.AI.Projects.VersionRefIndicator","com.azure.ai.agents.models.VersionSelectionRule":"Azure.AI.Projects.VersionSelectionRule","com.azure.ai.agents.models.VersionSelector":"Azure.AI.Projects.VersionSelector","com.azure.ai.agents.models.VersionSelectorType":"Azure.AI.Projects.VersionSelectorType","com.azure.ai.agents.models.VoiceAgentAudioConfig":"Azure.AI.Projects.VoiceAgentAudioConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfig":"Azure.AI.Projects.VoiceAgentAudioInputConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfigTranscriptionDelay":"Azure.AI.Projects.VoiceAgentAudioInputConfig.transcription.delay.anonymous","com.azure.ai.agents.models.VoiceAgentAudioOutputConfig":"Azure.AI.Projects.VoiceAgentAudioOutputConfig","com.azure.ai.agents.models.VoiceAgentAudioTimestampType":"Azure.AI.Projects.VoiceAgentAudioTimestampType","com.azure.ai.agents.models.VoiceAgentAvatarConfig":"Azure.AI.Projects.VoiceAgentAvatarConfig","com.azure.ai.agents.models.VoiceAgentAvatarOutputProtocol":"Azure.AI.Projects.VoiceAgentAvatarOutputProtocol","com.azure.ai.agents.models.VoiceAgentAvatarScene":"Azure.AI.Projects.VoiceAgentAvatarScene","com.azure.ai.agents.models.VoiceAgentAvatarType":"Azure.AI.Projects.VoiceAgentAvatarType","com.azure.ai.agents.models.VoiceAgentAvatarVideoBackground":"Azure.AI.Projects.VoiceAgentAvatarVideoBackground","com.azure.ai.agents.models.VoiceAgentAvatarVideoCrop":"Azure.AI.Projects.VoiceAgentAvatarVideoCrop","com.azure.ai.agents.models.VoiceAgentAvatarVideoParams":"Azure.AI.Projects.VoiceAgentAvatarVideoParams","com.azure.ai.agents.models.VoiceAgentAvatarVideoResolution":"Azure.AI.Projects.VoiceAgentAvatarVideoResolution","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadEnTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadEnTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadMultilingualTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadMultilingualTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentDefinition":"Azure.AI.Projects.VoiceAgentDefinition","com.azure.ai.agents.models.VoiceAgentEchoCancellation":"Azure.AI.Projects.VoiceAgentEchoCancellation","com.azure.ai.agents.models.VoiceAgentEchoCancellationReferenceSource":"Azure.AI.Projects.VoiceAgentEchoCancellationReferenceSource","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetection":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetection","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetectionModel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetectionModel","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceThresholdLevel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceThresholdLevel","com.azure.ai.agents.models.VoiceAgentFunctionTool":"Azure.AI.Projects.VoiceAgentFunctionTool","com.azure.ai.agents.models.VoiceAgentGreetingConfig":"Azure.AI.Projects.VoiceAgentGreetingConfig","com.azure.ai.agents.models.VoiceAgentInputTranscription":"Azure.AI.Projects.VoiceAgentInputTranscription","com.azure.ai.agents.models.VoiceAgentInputTranscriptionModel":"Azure.AI.Projects.VoiceAgentInputTranscriptionModel","com.azure.ai.agents.models.VoiceAgentInterimResponseConfig":"Azure.AI.Projects.VoiceAgentInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentInterimResponseTrigger":"Azure.AI.Projects.VoiceAgentInterimResponseTrigger","com.azure.ai.agents.models.VoiceAgentLlmGeneratedGreetingConfig":"Azure.AI.Projects.VoiceAgentLlmGeneratedGreetingConfig","com.azure.ai.agents.models.VoiceAgentLlmInterimResponseConfig":"Azure.AI.Projects.VoiceAgentLlmInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentMcpTool":"Azure.AI.Projects.VoiceAgentMcpTool","com.azure.ai.agents.models.VoiceAgentNoiseReduction":"Azure.AI.Projects.VoiceAgentNoiseReduction","com.azure.ai.agents.models.VoiceAgentNoiseReductionType":"Azure.AI.Projects.VoiceAgentNoiseReductionType","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetectionEagerness":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection.eagerness.anonymous","com.azure.ai.agents.models.VoiceAgentServerVadTurnDetection":"Azure.AI.Projects.VoiceAgentServerVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSessionIncludeOption":"Azure.AI.Projects.VoiceAgentSessionIncludeOption","com.azure.ai.agents.models.VoiceAgentStaticInterimResponseConfig":"Azure.AI.Projects.VoiceAgentStaticInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentSystemTool":"Azure.AI.Projects.VoiceAgentSystemTool","com.azure.ai.agents.models.VoiceAgentSystemToolName":"Azure.AI.Projects.VoiceAgentSystemToolName","com.azure.ai.agents.models.VoiceAgentTemplateGreetingConfig":"Azure.AI.Projects.VoiceAgentTemplateGreetingConfig","com.azure.ai.agents.models.VoiceAgentTool":"Azure.AI.Projects.VoiceAgentTool","com.azure.ai.agents.models.VoiceAgentToolResponseScheduling":"Azure.AI.Projects.VoiceAgentToolResponseScheduling","com.azure.ai.agents.models.VoiceAgentToolboxTool":"Azure.AI.Projects.VoiceAgentToolboxTool","com.azure.ai.agents.models.VoiceAgentTurnDetectionConfig":"Azure.AI.Projects.VoiceAgentTurnDetectionConfig","com.azure.ai.agents.models.VoiceAgentTurnDetectionType":"Azure.AI.Projects.VoiceAgentTurnDetectionType","com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol":"Azure.AI.Projects.VoiceAgentWebSocketSubprotocol","com.azure.ai.agents.models.VoiceAudioCodec":"Azure.AI.Projects.VoiceAudioCodec","com.azure.ai.agents.models.VoiceAudioContainerFormat":"Azure.AI.Projects.VoiceAudioContainerFormat","com.azure.ai.agents.models.VoiceAudioRole":"Azure.AI.Projects.VoiceAudioRole","com.azure.ai.agents.models.VoiceConversation":"Azure.AI.Projects.VoiceConversation","com.azure.ai.agents.models.VoiceConversationStatus":"Azure.AI.Projects.VoiceConversationStatus","com.azure.ai.agents.models.VoiceItemAudioResponse":"Azure.AI.Projects.VoiceItemAudioResponse","com.azure.ai.agents.models.VoiceModelType":"Azure.AI.Projects.VoiceModelType","com.azure.ai.agents.models.VoiceOutputModality":"Azure.AI.Projects.VoiceOutputModality","com.azure.ai.agents.models.VoiceRecordingChannelLayout":"Azure.AI.Projects.VoiceRecordingChannelLayout","com.azure.ai.agents.models.VoiceRecordingResponse":"Azure.AI.Projects.VoiceRecordingResponse","com.azure.ai.agents.models.VoiceResponse":"Azure.AI.Projects.VoiceResponse","com.azure.ai.agents.models.VoiceResponseAudio":"Azure.AI.Projects.VoiceResponseAudio","com.azure.ai.agents.models.VoiceResponseAudioOutput":"Azure.AI.Projects.VoiceResponseAudioOutput","com.azure.ai.agents.models.VoiceResponseBase":"Azure.AI.Projects.VoiceResponseBase","com.azure.ai.agents.models.VoiceResponseBaseObject":null,"com.azure.ai.agents.models.VoiceResponseBaseOutputModality":"Azure.AI.Projects.VoiceResponseBase.output_modality.anonymous","com.azure.ai.agents.models.VoiceResponseBaseStatus":"Azure.AI.Projects.VoiceResponseBase.status.anonymous","com.azure.ai.agents.models.VoiceType":"Azure.AI.Projects.VoiceType","com.azure.ai.agents.models.WebIqPreviewTool":"Azure.AI.Projects.WebIQPreviewTool","com.azure.ai.agents.models.WebIqPreviewToolboxTool":"Azure.AI.Projects.WebIQPreviewToolboxTool","com.azure.ai.agents.models.WebSearchConfiguration":"Azure.AI.Projects.WebSearchConfiguration","com.azure.ai.agents.models.WebSearchPreviewTool":"OpenAI.WebSearchPreviewTool","com.azure.ai.agents.models.WebSearchTool":"OpenAI.WebSearchTool","com.azure.ai.agents.models.WebSearchToolFilters":"OpenAI.WebSearchToolFilters","com.azure.ai.agents.models.WebSearchToolSearchContextSize":"WebSearchToolSearchContextSizeExpandable","com.azure.ai.agents.models.WebSearchToolboxTool":"Azure.AI.Projects.WebSearchToolboxTool","com.azure.ai.agents.models.WorkIqPreviewTool":"Azure.AI.Projects.WorkIQPreviewTool","com.azure.ai.agents.models.WorkIqPreviewToolboxTool":"Azure.AI.Projects.WorkIQPreviewToolboxTool","com.azure.ai.agents.models.WorkflowAgentDefinition":"Azure.AI.Projects.WorkflowAgentDefinition"},"generatedFiles":["src/main/java/com/azure/ai/agents/AgentsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentsClient.java","src/main/java/com/azure/ai/agents/AgentsClientBuilder.java","src/main/java/com/azure/ai/agents/AgentsServiceVersion.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java","src/main/java/com/azure/ai/agents/BetaAgentsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentsClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresAsyncClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java","src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java","src/main/java/com/azure/ai/agents/ToolboxesClient.java","src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaMemoryStoresImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java","src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/agents/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/PollingUtils.java","src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java","src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromCodeContent.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateSessionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateToolboxVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java","src/main/java/com/azure/ai/agents/implementation/models/ListMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java","src/main/java/com/azure/ai/agents/implementation/models/SearchMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxInput.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxRequest.java","src/main/java/com/azure/ai/agents/implementation/models/WebSearchApproximateLocation.java","src/main/java/com/azure/ai/agents/implementation/models/package-info.java","src/main/java/com/azure/ai/agents/implementation/package-info.java","src/main/java/com/azure/ai/agents/models/A2APreviewTool.java","src/main/java/com/azure/ai/agents/models/A2APreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/A2AProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/A2AProtocolVersion.java","src/main/java/com/azure/ai/agents/models/A2ATool.java","src/main/java/com/azure/ai/agents/models/A2AToolCall.java","src/main/java/com/azure/ai/agents/models/A2AToolCallOutput.java","src/main/java/com/azure/ai/agents/models/A2AToolboxTool.java","src/main/java/com/azure/ai/agents/models/AISearchIndexResource.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReference.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReferenceType.java","src/main/java/com/azure/ai/agents/models/AgentCard.java","src/main/java/com/azure/ai/agents/models/AgentCardSkill.java","src/main/java/com/azure/ai/agents/models/AgentDefinition.java","src/main/java/com/azure/ai/agents/models/AgentDetails.java","src/main/java/com/azure/ai/agents/models/AgentDetailsVersions.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationSchemeType.java","src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java","src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java","src/main/java/com/azure/ai/agents/models/AgentIdentity.java","src/main/java/com/azure/ai/agents/models/AgentIdentityStatus.java","src/main/java/com/azure/ai/agents/models/AgentKind.java","src/main/java/com/azure/ai/agents/models/AgentObjectType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationCandidate.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetCriterion.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInputType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationInlineDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJob.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobListItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobResult.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationOptions.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationReferenceDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentReference.java","src/main/java/com/azure/ai/agents/models/AgentSessionResource.java","src/main/java/com/azure/ai/agents/models/AgentSessionStatus.java","src/main/java/com/azure/ai/agents/models/AgentState.java","src/main/java/com/azure/ai/agents/models/AgentStateSource.java","src/main/java/com/azure/ai/agents/models/AgentVersionDetails.java","src/main/java/com/azure/ai/agents/models/AgentVersionStatus.java","src/main/java/com/azure/ai/agents/models/ApiError.java","src/main/java/com/azure/ai/agents/models/ApplyPatchToolParameter.java","src/main/java/com/azure/ai/agents/models/AutoCodeInterpreterToolParameter.java","src/main/java/com/azure/ai/agents/models/AzureAISearchQueryType.java","src/main/java/com/azure/ai/agents/models/AzureAISearchTool.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCall.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolResource.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java","src/main/java/com/azure/ai/agents/models/AzureFunctionBinding.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinitionDetails.java","src/main/java/com/azure/ai/agents/models/AzureFunctionStorageQueue.java","src/main/java/com/azure/ai/agents/models/AzureFunctionTool.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCall.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureUserSecurityContext.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCall.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingTool.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BotServiceAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceRbacAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceTenantAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCall.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolConnectionParameters.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolParameters.java","src/main/java/com/azure/ai/agents/models/CallableToolAllowedCaller.java","src/main/java/com/azure/ai/agents/models/CaptureStructuredOutputsTool.java","src/main/java/com/azure/ai/agents/models/ChatSummaryMemoryItem.java","src/main/java/com/azure/ai/agents/models/CodeConfiguration.java","src/main/java/com/azure/ai/agents/models/CodeDependencyResolution.java","src/main/java/com/azure/ai/agents/models/CodeFileDetails.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterTool.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterToolboxTool.java","src/main/java/com/azure/ai/agents/models/ComputerEnvironment.java","src/main/java/com/azure/ai/agents/models/ComputerTool.java","src/main/java/com/azure/ai/agents/models/ComputerUsePreviewTool.java","src/main/java/com/azure/ai/agents/models/ContainerAutoParameter.java","src/main/java/com/azure/ai/agents/models/ContainerConfiguration.java","src/main/java/com/azure/ai/agents/models/ContainerMemoryLimit.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyAllowlistParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDisabledParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDomainSecretParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParamType.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParameter.java","src/main/java/com/azure/ai/agents/models/ContainerSkill.java","src/main/java/com/azure/ai/agents/models/ContainerSkillType.java","src/main/java/com/azure/ai/agents/models/ConversationResource.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeContent.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeMetadata.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java","src/main/java/com/azure/ai/agents/models/CustomGrammarFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomTextFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormat.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormatType.java","src/main/java/com/azure/ai/agents/models/CustomToolParameter.java","src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java","src/main/java/com/azure/ai/agents/models/EntraAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/EvaluationLevel.java","src/main/java/com/azure/ai/agents/models/ExternalAgentDefinition.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCall.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCallOutput.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolParameters.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/FileSearchTool.java","src/main/java/com/azure/ai/agents/models/FileSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/FixedRatioVersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironment.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironmentType.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentContainerReferenceParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentLocalEnvironmentParameter.java","src/main/java/com/azure/ai/agents/models/FunctionTool.java","src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java","src/main/java/com/azure/ai/agents/models/GrammarSyntax.java","src/main/java/com/azure/ai/agents/models/HeaderTelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java","src/main/java/com/azure/ai/agents/models/HybridSearchOptions.java","src/main/java/com/azure/ai/agents/models/ImageGenActionEnum.java","src/main/java/com/azure/ai/agents/models/ImageGenTool.java","src/main/java/com/azure/ai/agents/models/ImageGenToolBackground.java","src/main/java/com/azure/ai/agents/models/ImageGenToolInputImageMask.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModel.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModeration.java","src/main/java/com/azure/ai/agents/models/ImageGenToolOutputFormat.java","src/main/java/com/azure/ai/agents/models/ImageGenToolQuality.java","src/main/java/com/azure/ai/agents/models/ImageGenToolSize.java","src/main/java/com/azure/ai/agents/models/IncludeEnum.java","src/main/java/com/azure/ai/agents/models/InlineSkillParameter.java","src/main/java/com/azure/ai/agents/models/InlineSkillSourceParameter.java","src/main/java/com/azure/ai/agents/models/InputFidelity.java","src/main/java/com/azure/ai/agents/models/InvocationsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/InvocationsWsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/JobStatus.java","src/main/java/com/azure/ai/agents/models/ListMemoriesOptions.java","src/main/java/com/azure/ai/agents/models/LocalShellToolParameter.java","src/main/java/com/azure/ai/agents/models/LocalSkillParameter.java","src/main/java/com/azure/ai/agents/models/ManagedAgentIdentityBlueprintReference.java","src/main/java/com/azure/ai/agents/models/McpListToolsTool.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java","src/main/java/com/azure/ai/agents/models/McpProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/McpTool.java","src/main/java/com/azure/ai/agents/models/McpToolConnectorId.java","src/main/java/com/azure/ai/agents/models/McpToolFilter.java","src/main/java/com/azure/ai/agents/models/McpToolRequireApproval.java","src/main/java/com/azure/ai/agents/models/McpToolboxTool.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCallOutput.java","src/main/java/com/azure/ai/agents/models/MemoryItem.java","src/main/java/com/azure/ai/agents/models/MemoryItemKind.java","src/main/java/com/azure/ai/agents/models/MemoryOperation.java","src/main/java/com/azure/ai/agents/models/MemoryOperationKind.java","src/main/java/com/azure/ai/agents/models/MemorySearchItem.java","src/main/java/com/azure/ai/agents/models/MemorySearchOptions.java","src/main/java/com/azure/ai/agents/models/MemorySearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/MemorySearchToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultOptions.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDetails.java","src/main/java/com/azure/ai/agents/models/MemoryStoreKind.java","src/main/java/com/azure/ai/agents/models/MemoryStoreObjectType.java","src/main/java/com/azure/ai/agents/models/MemoryStoreOperationUsage.java","src/main/java/com/azure/ai/agents/models/MemoryStoreSearchResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateCompletedResult.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateStatus.java","src/main/java/com/azure/ai/agents/models/Metadata.java","src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java","src/main/java/com/azure/ai/agents/models/MicrosoftFabricPreviewTool.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java","src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java","src/main/java/com/azure/ai/agents/models/ModelRouterMode.java","src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java","src/main/java/com/azure/ai/agents/models/NamespaceTool.java","src/main/java/com/azure/ai/agents/models/OpenApiAnonymousAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthType.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinitionFunction.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiTool.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCall.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCallOutput.java","src/main/java/com/azure/ai/agents/models/OpenApiToolboxTool.java","src/main/java/com/azure/ai/agents/models/OptimizedAgentIdentifier.java","src/main/java/com/azure/ai/agents/models/OtlpTelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/PageOrder.java","src/main/java/com/azure/ai/agents/models/ProceduralMemoryItem.java","src/main/java/com/azure/ai/agents/models/ProgrammaticToolCallingParameter.java","src/main/java/com/azure/ai/agents/models/PromotionInfo.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionTextOptions.java","src/main/java/com/azure/ai/agents/models/ProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/ProtocolVersionRecord.java","src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java","src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java","src/main/java/com/azure/ai/agents/models/RaiConfig.java","src/main/java/com/azure/ai/agents/models/RankerVersionType.java","src/main/java/com/azure/ai/agents/models/RankingOptions.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java","src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java","src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java","src/main/java/com/azure/ai/agents/models/Reasoning.java","src/main/java/com/azure/ai/agents/models/ReasoningEffort.java","src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java","src/main/java/com/azure/ai/agents/models/ReminderPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ResponseFormatJsonSchemaInner.java","src/main/java/com/azure/ai/agents/models/ResponseUsageInputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponseUsageOutputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponsesProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java","src/main/java/com/azure/ai/agents/models/SearchContentType.java","src/main/java/com/azure/ai/agents/models/SearchContextSize.java","src/main/java/com/azure/ai/agents/models/SessionConfiguration.java","src/main/java/com/azure/ai/agents/models/SessionDirectoryEntry.java","src/main/java/com/azure/ai/agents/models/SessionFileWriteResult.java","src/main/java/com/azure/ai/agents/models/SessionLogEvent.java","src/main/java/com/azure/ai/agents/models/SessionLogEventType.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolParameters.java","src/main/java/com/azure/ai/agents/models/SharepointPreviewTool.java","src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java","src/main/java/com/azure/ai/agents/models/SkillReferenceParameter.java","src/main/java/com/azure/ai/agents/models/StructuredInputDefinition.java","src/main/java/com/azure/ai/agents/models/StructuredOutputDefinition.java","src/main/java/com/azure/ai/agents/models/TelemetryConfig.java","src/main/java/com/azure/ai/agents/models/TelemetryDataKind.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuthType.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointKind.java","src/main/java/com/azure/ai/agents/models/TelemetryTransportProtocol.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfiguration.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatJsonObject.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatText.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationType.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatJsonSchema.java","src/main/java/com/azure/ai/agents/models/Tool.java","src/main/java/com/azure/ai/agents/models/ToolCallStatus.java","src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java","src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java","src/main/java/com/azure/ai/agents/models/ToolConfig.java","src/main/java/com/azure/ai/agents/models/ToolProjectConnection.java","src/main/java/com/azure/ai/agents/models/ToolSearchExecutionType.java","src/main/java/com/azure/ai/agents/models/ToolSearchTool.java","src/main/java/com/azure/ai/agents/models/ToolSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxDetails.java","src/main/java/com/azure/ai/agents/models/ToolboxPolicies.java","src/main/java/com/azure/ai/agents/models/ToolboxSearchPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java","src/main/java/com/azure/ai/agents/models/ToolboxSkill.java","src/main/java/com/azure/ai/agents/models/ToolboxSkillReference.java","src/main/java/com/azure/ai/agents/models/ToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxVersionDetails.java","src/main/java/com/azure/ai/agents/models/UpdateAgentDetailsOptions.java","src/main/java/com/azure/ai/agents/models/UserProfileMemoryItem.java","src/main/java/com/azure/ai/agents/models/VersionIndicator.java","src/main/java/com/azure/ai/agents/models/VersionIndicatorType.java","src/main/java/com/azure/ai/agents/models/VersionRefIndicator.java","src/main/java/com/azure/ai/agents/models/VersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/VersionSelector.java","src/main/java/com/azure/ai/agents/models/VersionSelectorType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java","src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java","src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java","src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java","src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java","src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java","src/main/java/com/azure/ai/agents/models/VoiceConversation.java","src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java","src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java","src/main/java/com/azure/ai/agents/models/VoiceModelType.java","src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java","src/main/java/com/azure/ai/agents/models/VoiceType.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WebSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebSearchTool.java","src/main/java/com/azure/ai/agents/models/WebSearchToolFilters.java","src/main/java/com/azure/ai/agents/models/WebSearchToolSearchContextSize.java","src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkflowAgentDefinition.java","src/main/java/com/azure/ai/agents/models/package-info.java","src/main/java/com/azure/ai/agents/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithConversation.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithConversation.java index 14ff30b42059..4faf136291eb 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithConversation.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithConversation.java @@ -6,6 +6,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -42,7 +43,7 @@ public static void main(String[] args) { PromptAgentDefinition agentDefinition = new PromptAgentDefinition(model) .setInstructions("You are a helpful assistant."); - agent = agentsClient.createAgentVersion("my-agent", agentDefinition); + agent = agentsClient.createAgentVersion("my-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created (id: %s, version: %s)\n", agent.getId(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithStructuredInput.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithStructuredInput.java index 091e0deb77f6..081eb06c1959 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithStructuredInput.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/CreateResponseWithStructuredInput.java @@ -7,6 +7,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AzureCreateResponseDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.StructuredInputDefinition; import com.azure.core.util.BinaryData; @@ -45,11 +46,11 @@ public static void main(String[] args) { new StructuredInputDefinition().setDescription("User's role").setRequired(true)); AgentVersionDetails agent = agentsClient.createAgentVersion("structured-input-agent", - new PromptAgentDefinition(model) + new CreateAgentVersionInput(new PromptAgentDefinition(model) .setInstructions("You are a helpful assistant. " + "The user's name is {{userName}} and their role is {{userRole}}. " + "Greet them and confirm their details.") - .setStructuredInputs(structuredInputDefinitions)); + .setStructuredInputs(structuredInputDefinitions))); // END: com.azure.ai.agents.define_structured_inputs // BEGIN: com.azure.ai.agents.create_response_with_structured_input diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MemorySearchAgent.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MemorySearchAgent.java index 579f608fec56..6322231004cd 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MemorySearchAgent.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MemorySearchAgent.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.MemoryStoreDefaultDefinition; import com.azure.ai.agents.models.MemoryStoreDefaultOptions; import com.azure.ai.agents.models.MemoryStoreDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.util.Configuration; @@ -71,7 +72,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that answers general questions.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion(agentName, agentDefinition); + agent = agentsClient.createAgentVersion(agentName, new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created (id: %s, version: %s)\n", agent.getId(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MultipleAgentsConversation.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MultipleAgentsConversation.java index 019292cbc34f..dd90a67c01b5 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MultipleAgentsConversation.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/MultipleAgentsConversation.java @@ -6,6 +6,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -86,7 +87,7 @@ public static void main(String[] args) { private static AgentVersionDetails createPromptAgent(AgentsClient agentsClient, String model, String name) { PromptAgentDefinition request = new PromptAgentDefinition(model); - return agentsClient.createAgentVersion(name, request); + return agentsClient.createAgentVersion(name, new CreateAgentVersionInput(request)); } private static Conversation startConversation(ConversationService conversationsClient) { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/ReadmeSamples.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/ReadmeSamples.java index 14542ed8ad31..bf317a5d440a 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/ReadmeSamples.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/ReadmeSamples.java @@ -8,6 +8,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.SessionLogEvent; import com.azure.core.util.IterableStream; @@ -42,7 +43,7 @@ public void readmeSamples() { // BEGIN: com.azure.ai.agents.create_prompt_agent PromptAgentDefinition promptAgentDefinition = new PromptAgentDefinition("gpt-4o"); - AgentVersionDetails agent = agentsClient.createAgentVersion("my-agent", promptAgentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("my-agent", new CreateAgentVersionInput(promptAgentDefinition)); // END: com.azure.ai.agents.create_prompt_agent // BEGIN: com.azure.ai.agents.create_conversation diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/agents/CreateAgent.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/agents/CreateAgent.java index 5be1519b925e..9116db2c2f59 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/agents/CreateAgent.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/agents/CreateAgent.java @@ -7,6 +7,7 @@ import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.AgentsServiceVersion; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -23,7 +24,7 @@ public static void main(String[] args) { .buildAgentsClient(); PromptAgentDefinition request = new PromptAgentDefinition(model); - AgentVersionDetails agent = agentsClient.createAgentVersion("agent_created_from_java", request); + AgentVersionDetails agent = agentsClient.createAgentVersion("agent_created_from_java", new CreateAgentVersionInput(request)); System.out.println("Agent ID: " + agent.getId()); System.out.println("Agent Name: " + agent.getName()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingAsync.java index b1c5145a1c31..1ebea95574ac 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -55,7 +56,7 @@ public static void main(String[] args) { + "When asked to perform calculations, use the code interpreter to run Python code.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("code-interpreter-streaming-async-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("code-interpreter-streaming-async-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingSync.java index b64d548bb303..e7737acaee5a 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.core.util.IterableStream; @@ -56,7 +57,7 @@ public static void main(String[] args) { + "When asked to perform calculations, use the code interpreter to run Python code.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("code-interpreter-streaming-agent", agentDefinition); + agent = agentsClient.createAgentVersion("code-interpreter-streaming-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingAsync.java index c824adaca8e0..e01d5c01676d 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -80,7 +81,7 @@ public static void main(String[] args) { + "When asked about the weather, use the get_weather function.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("function-streaming-async-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("function-streaming-async-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingSync.java index 9912a8aac1b6..84105c6777cd 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -81,7 +82,7 @@ public static void main(String[] args) { + "When asked about the weather, use the get_weather function.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("function-streaming-agent", agentDefinition); + agent = agentsClient.createAgentVersion("function-streaming-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingAsync.java index 6748c0d1a539..fdfe3a2a29a8 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -47,7 +48,7 @@ public static void main(String[] args) { PromptAgentDefinition agentDefinition = new PromptAgentDefinition(model) .setInstructions("You are a helpful assistant that tells short, engaging stories."); - agentsAsyncClient.createAgentVersion("streaming-async-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("streaming-async-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingSync.java index 053df3c69070..af6ebaf30b1d 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingSync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.core.util.IterableStream; @@ -47,7 +48,7 @@ public static void main(String[] args) { PromptAgentDefinition agentDefinition = new PromptAgentDefinition(model) .setInstructions("You are a helpful assistant that tells short, engaging stories."); - agent = agentsClient.createAgentVersion("streaming-agent", agentDefinition); + agent = agentsClient.createAgentVersion("streaming-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentAsync.java index 3bc983de53fd..371541aad691 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentAsync.java @@ -11,6 +11,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -54,7 +55,7 @@ public static void main(String[] args) { .setInstructions("You are a coordinator agent that can communicate with other agents.") .setTools(Collections.singletonList(a2aTool)); - agentsAsyncClient.createAgentVersion("a2a-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("a2a-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentSync.java index 35a1e34f7be9..70eb3e8ab2db 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AgentToAgentSync.java @@ -11,6 +11,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -54,7 +55,7 @@ public static void main(String[] args) { .setInstructions("You are a coordinator agent that can communicate with other agents.") .setTools(Collections.singletonList(a2aTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("a2a-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("a2a-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchAsync.java index d96b5a34e192..ab0abd26ec46 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchAsync.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.AzureAISearchQueryType; import com.azure.ai.agents.models.AzureAISearchTool; import com.azure.ai.agents.models.AzureAISearchToolResource; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -66,7 +67,7 @@ public static void main(String[] args) { + "Always provide citations for answers using the tool.") .setTools(Collections.singletonList(aiSearchTool)); - agentsAsyncClient.createAgentVersion("ai-search-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("ai-search-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchSync.java index 6e0190bb9527..da0cb1ba098a 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureAISearchSync.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.AzureAISearchQueryType; import com.azure.ai.agents.models.AzureAISearchTool; import com.azure.ai.agents.models.AzureAISearchToolResource; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -66,7 +67,7 @@ public static void main(String[] args) { + "Always provide citations for answers using the tool.") .setTools(Collections.singletonList(aiSearchTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("ai-search-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("ai-search-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionAsync.java index d70d71ccaff8..046298beea87 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionAsync.java @@ -14,6 +14,7 @@ import com.azure.ai.agents.models.AzureFunctionDefinitionDetails; import com.azure.ai.agents.models.AzureFunctionStorageQueue; import com.azure.ai.agents.models.AzureFunctionTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -85,7 +86,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant.") .setTools(Collections.singletonList(azureFunctionTool)); - agentsAsyncClient.createAgentVersion("azure-function-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("azure-function-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionSync.java index 9fb27334bf6e..640de6e89da1 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/AzureFunctionSync.java @@ -14,6 +14,7 @@ import com.azure.ai.agents.models.AzureFunctionDefinitionDetails; import com.azure.ai.agents.models.AzureFunctionStorageQueue; import com.azure.ai.agents.models.AzureFunctionTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -87,7 +88,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant.") .setTools(Collections.singletonList(azureFunctionTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("azure-function-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("azure-function-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchAsync.java index 6169c2f7027c..540d33824f80 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchAsync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.BingCustomSearchConfiguration; import com.azure.ai.agents.models.BingCustomSearchPreviewTool; import com.azure.ai.agents.models.BingCustomSearchToolParameters; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -62,7 +63,7 @@ public static void main(String[] args) { + "Use the available Bing Custom Search tools to answer questions and perform tasks.") .setTools(Collections.singletonList(bingCustomSearchTool)); - agentsAsyncClient.createAgentVersion("bing-custom-search-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("bing-custom-search-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchSync.java index 0851bae06249..ea527f477941 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingCustomSearchSync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.BingCustomSearchConfiguration; import com.azure.ai.agents.models.BingCustomSearchPreviewTool; import com.azure.ai.agents.models.BingCustomSearchToolParameters; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -67,7 +68,7 @@ public static void main(String[] args) { + "Use the available Bing Custom Search tools to answer questions and perform tasks.") .setTools(Collections.singletonList(bingCustomSearchTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("bing-custom-search-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("bing-custom-search-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingAsync.java index 2cbfbed36da8..9962ee670106 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingAsync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.BingGroundingSearchConfiguration; import com.azure.ai.agents.models.BingGroundingSearchToolParameters; import com.azure.ai.agents.models.BingGroundingTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -59,7 +60,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant. Use Bing to find up-to-date information.") .setTools(Collections.singletonList(bingTool)); - agentsAsyncClient.createAgentVersion("bing-grounding-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("bing-grounding-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingSync.java index a5f1dc4bc8df..bb608615939a 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BingGroundingSync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.BingGroundingSearchConfiguration; import com.azure.ai.agents.models.BingGroundingSearchToolParameters; import com.azure.ai.agents.models.BingGroundingTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -59,7 +60,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant. Use Bing to find up-to-date information.") .setTools(Collections.singletonList(bingTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("bing-grounding-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("bing-grounding-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationAsync.java index b4ff5cf914be..4e315f3ca6b6 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationAsync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.BrowserAutomationPreviewTool; import com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters; import com.azure.ai.agents.models.BrowserAutomationToolParameters; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -58,7 +59,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that can interact with web pages.") .setTools(Collections.singletonList(browserTool)); - agentsAsyncClient.createAgentVersion("browser-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("browser-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationSync.java index 81f42044575a..b2775001abff 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/BrowserAutomationSync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.BrowserAutomationPreviewTool; import com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters; import com.azure.ai.agents.models.BrowserAutomationToolParameters; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -58,7 +59,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that can interact with web pages.") .setTools(Collections.singletonList(browserTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("browser-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("browser-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterAsync.java index e456e472fd21..8c5102496e7e 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -55,7 +56,7 @@ public static void main(String[] args) { + "When asked to perform calculations or data analysis, use the code interpreter to run Python code.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("code-interpreter-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("code-interpreter-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterSync.java index 2d1881b34f13..4fecada0d3a8 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CodeInterpreterSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -57,7 +58,7 @@ public static void main(String[] args) { + "When asked to perform calculations or data analysis, use the code interpreter to run Python code.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("code-interpreter-agent", agentDefinition); + agent = agentsClient.createAgentVersion("code-interpreter-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseAsync.java index e446e08f50c0..b4552639c431 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseAsync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.ComputerEnvironment; import com.azure.ai.agents.models.ComputerUsePreviewTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.tools.ComputerUseUtil.HandleActionResult; import com.azure.ai.agents.tools.ComputerUseUtil.ScreenshotInfo; @@ -124,7 +125,7 @@ public static void main(String[] args) { ); // Create agent and run the interaction loop - agentsClient.createAgentVersion("ComputerUseAgent", agentDefinition) + agentsClient.createAgentVersion("ComputerUseAgent", new CreateAgentVersionInput(agentDefinition)) .doOnNext(agent -> { agentRef.set(agent); System.out.printf("Agent created (id: %s, name: %s, version: %s)%n", diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseSync.java index cf1cc52d2045..34c5ab7da94a 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ComputerUseSync.java @@ -12,6 +12,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.ComputerEnvironment; import com.azure.ai.agents.models.ComputerUsePreviewTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.tools.ComputerUseUtil.HandleActionResult; import com.azure.ai.agents.tools.ComputerUseUtil.ScreenshotInfo; @@ -100,7 +101,7 @@ public static void main(String[] args) { + "Be direct and efficient. When you reach the search results page, read and describe the actual search result titles and descriptions you can see.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("ComputerUseAgent", agentDefinition); + agent = agentsClient.createAgentVersion("ComputerUseAgent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created (id: %s, name: %s, version: %s)%n", agent.getId(), agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterAsync.java index 32cd8ec4d61c..3f689a776df2 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -57,7 +58,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that can run Python code to analyze data and solve problems.") .setTools(Collections.singletonList(customCodeInterpreter)); - agentsAsyncClient.createAgentVersion("CustomCodeInterpreterAgent", agentDefinition) + agentsAsyncClient.createAgentVersion("CustomCodeInterpreterAgent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterSync.java index 123d1df73c2c..18f50aad4943 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/CustomCodeInterpreterSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -56,7 +57,7 @@ public static void main(String[] args) { .setTools(Collections.singletonList(customCodeInterpreter)); AgentVersionDetails agent = agentsClient.createAgentVersion( - "CustomCodeInterpreterAgent", agentDefinition); + "CustomCodeInterpreterAgent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricAsync.java index 5ea819e4b43f..cd36d97d58c4 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricAsync.java @@ -11,6 +11,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricDataAgentToolParameters; import com.azure.ai.agents.models.MicrosoftFabricPreviewTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.ToolProjectConnection; import com.azure.core.util.Configuration; @@ -60,7 +61,7 @@ public static void main(String[] args) { .setInstructions("You are a data assistant that can query Microsoft Fabric data.") .setTools(Collections.singletonList(fabricTool)); - agentsAsyncClient.createAgentVersion("fabric-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("fabric-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQAsync.java index 0bcb498f6600..f3fb48280848 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricIqPreviewTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -59,7 +60,7 @@ public static void main(String[] args) { .setTools(Collections.singletonList(fabricIqTool)); Mono workflow = Mono.usingWhen( - agentsAsyncClient.createAgentVersion(agentName, agentDefinition), + agentsAsyncClient.createAgentVersion(agentName, new CreateAgentVersionInput(agentDefinition)), agent -> { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQSync.java index 8e107e6935db..26f3d7bd393e 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricIQSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricIqPreviewTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -60,7 +61,7 @@ public static void main(String[] args) { .setInstructions("Use the available Fabric IQ tools to answer questions and perform tasks.") .setTools(Collections.singletonList(fabricIqTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion(agentName, agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion(agentName, new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricSync.java index 79fa6a4d2072..54b3f2cbd9b3 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FabricSync.java @@ -11,6 +11,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricDataAgentToolParameters; import com.azure.ai.agents.models.MicrosoftFabricPreviewTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.ToolProjectConnection; import com.azure.core.util.Configuration; @@ -60,7 +61,7 @@ public static void main(String[] args) { .setInstructions("You are a data assistant that can query Microsoft Fabric data.") .setTools(Collections.singletonList(fabricTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("fabric-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("fabric-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchAsync.java index 3e5d423c229b..823ae5db4d1f 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FileSearchTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.credential.TokenCredential; import com.azure.core.util.Configuration; @@ -95,7 +96,7 @@ public static void main(String[] args) throws Exception { .setInstructions("You are a helpful assistant that can search through uploaded files to answer questions.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("file-search-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("file-search-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchSync.java index 0bd302455651..23ee31f0c947 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FileSearchSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FileSearchTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.credential.TokenCredential; import com.azure.core.util.Configuration; @@ -102,7 +103,7 @@ public static void main(String[] args) { + "When asked about information, use the file search tool to find relevant content from the files.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("file-search-agent", agentDefinition); + agent = agentsClient.createAgentVersion("file-search-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallAsync.java index 48b253e2823d..636617f90751 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -81,7 +82,7 @@ public static void main(String[] args) { + "When asked about the weather, use the get_weather function to retrieve weather data.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("function-call-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("function-call-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallSync.java index f1bce62bfeec..638fcd5b929c 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/FunctionCallSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -80,7 +81,7 @@ public static void main(String[] args) { + "When asked about the weather, use the get_weather function to retrieve weather data.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("function-call-agent", agentDefinition); + agent = agentsClient.createAgentVersion("function-call-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationAsync.java index 6468833a74f6..33fe0ad7663c 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationAsync.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.ImageGenToolModel; import com.azure.ai.agents.models.ImageGenToolQuality; import com.azure.ai.agents.models.ImageGenToolSize; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -58,7 +59,7 @@ public static void main(String[] args) { .setInstructions("You are a creative assistant that can generate images based on descriptions.") .setTools(Collections.singletonList(imageGenTool)); - agentsAsyncClient.createAgentVersion("image-gen-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("image-gen-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationSync.java index dbff886b3313..e655b9381a50 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/ImageGenerationSync.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.ImageGenToolModel; import com.azure.ai.agents.models.ImageGenToolQuality; import com.azure.ai.agents.models.ImageGenToolSize; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -58,7 +59,7 @@ public static void main(String[] args) { .setInstructions("You are a creative assistant that can generate images based on descriptions.") .setTools(Collections.singletonList(imageGenTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("image-gen-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("image-gen-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpAsync.java index 9a6d47002b0c..c12203a9fb24 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -63,7 +64,7 @@ public static void main(String[] args) { + "Use the available MCP tools to answer questions and perform tasks.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("mcp-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("mcp-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpSync.java index 61e36a8fbc53..4df716aa1463 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -65,7 +66,7 @@ public static void main(String[] args) { + "Use the available MCP tools to answer questions and perform tasks.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("mcp-agent", agentDefinition); + agent = agentsClient.createAgentVersion("mcp-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionAsync.java index e8d8ba25e2f9..696fc6ab92b3 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionAsync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -59,7 +60,7 @@ public static void main(String[] args) { .setInstructions("Use MCP tools as needed") .setTools(Collections.singletonList(mcpTool)); - agentsAsyncClient.createAgentVersion("mcp-connection-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("mcp-connection-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionSync.java index c4efb7ecdd6c..b82b33e8315d 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/McpWithConnectionSync.java @@ -10,6 +10,7 @@ import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -66,7 +67,7 @@ public static void main(String[] args) { .setInstructions("Use MCP tools as needed") .setTools(Collections.singletonList(mcpTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("mcp-connection-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("mcp-connection-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchAsync.java index 1abd7896df4f..b68f8f27a0fc 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchAsync.java @@ -14,6 +14,7 @@ import com.azure.ai.agents.models.MemoryStoreDefaultDefinition; import com.azure.ai.agents.models.MemoryStoreDefaultOptions; import com.azure.ai.agents.models.MemoryStoreDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.util.Configuration; @@ -85,7 +86,7 @@ public static void main(String[] args) throws Exception { .setInstructions("You are a helpful assistant that answers general questions.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("memory-search-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("memory-search-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchSync.java index 051faf45c1c8..f1a7ac67b43e 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/MemorySearchSync.java @@ -14,6 +14,7 @@ import com.azure.ai.agents.models.MemoryStoreDefaultOptions; import com.azure.ai.agents.models.MemoryStoreDetails; import com.azure.ai.agents.BetaMemoryStoresClient; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.util.Configuration; @@ -85,7 +86,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that answers general questions.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("memory-search-agent", agentDefinition); + agent = agentsClient.createAgentVersion("memory-search-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiAsync.java index e2c6b049fd60..f73bcccfe388 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiAsync.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.OpenApiAnonymousAuthDetails; import com.azure.ai.agents.models.OpenApiFunctionDefinition; import com.azure.ai.agents.models.OpenApiTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -61,7 +62,7 @@ public static void main(String[] args) throws Exception { .setInstructions("You are a helpful assistant. Use the OpenAPI tool when asked to call an API.") .setTools(Collections.singletonList(openApiTool)); - agentsAsyncClient.createAgentVersion("openapi-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("openapi-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSample.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSample.java index f37d2b4e947f..1be2806ac74c 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSample.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSample.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.OpenApiAnonymousAuthDetails; import com.azure.ai.agents.models.OpenApiFunctionDefinition; import com.azure.ai.agents.models.OpenApiTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -67,7 +68,7 @@ public static void main(String[] args) throws Exception { .setInstructions("Use the OpenAPI tool for HTTP request metadata.") .setTools(Arrays.asList(new OpenApiTool(toolDefinition))); - AgentVersionDetails agentVersion = agentsClient.createAgentVersion("openapi-agent", agentDefinition); + AgentVersionDetails agentVersion = agentsClient.createAgentVersion("openapi-agent", new CreateAgentVersionInput(agentDefinition)); System.out.println("Agent: " + agentVersion.getName() + ", version: " + agentVersion.getVersion()); // Create a conversation and add a user message diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSync.java index 947b842665ee..9024a6475175 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiSync.java @@ -13,6 +13,7 @@ import com.azure.ai.agents.models.OpenApiAnonymousAuthDetails; import com.azure.ai.agents.models.OpenApiFunctionDefinition; import com.azure.ai.agents.models.OpenApiTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -70,7 +71,7 @@ public static void main(String[] args) throws Exception { .setInstructions("Use the OpenAPI tool for HTTP request metadata.") .setTools(Arrays.asList(tool)); - AgentVersionDetails agentVersion = agentsClient.createAgentVersion("openapi-agent", agentDefinition); + AgentVersionDetails agentVersion = agentsClient.createAgentVersion("openapi-agent", new CreateAgentVersionInput(agentDefinition)); System.out.println("Agent: " + agentVersion.getName() + ", version: " + agentVersion.getVersion()); // Create a conversation and add a user message diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionAsync.java index 6d1ae7e2a56f..042c57735e12 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionAsync.java @@ -14,6 +14,7 @@ import com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails; import com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme; import com.azure.ai.agents.models.OpenApiTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -67,7 +68,7 @@ public static void main(String[] args) throws Exception { .setInstructions("You are a helpful assistant.") .setTools(Collections.singletonList(openApiTool)); - agentsAsyncClient.createAgentVersion("openapi-connection-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("openapi-connection-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionSync.java index 6d021ad4cf57..74cde841d93c 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/OpenApiWithConnectionSync.java @@ -14,6 +14,7 @@ import com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails; import com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme; import com.azure.ai.agents.models.OpenApiTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -74,7 +75,7 @@ public static void main(String[] args) throws Exception { .setInstructions("You are a helpful assistant.") .setTools(Collections.singletonList(openApiTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("openapi-connection-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("openapi-connection-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingAsync.java index 0ef03e7dae7a..78459e2c79d7 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.SharepointGroundingToolParameters; import com.azure.ai.agents.models.SharepointPreviewTool; @@ -60,7 +61,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that can search through SharePoint documents.") .setTools(Collections.singletonList(sharepointTool)); - agentsAsyncClient.createAgentVersion("sharepoint-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("sharepoint-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingSync.java index 97e064286024..4a3810801754 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/SharePointGroundingSync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.SharepointGroundingToolParameters; import com.azure.ai.agents.models.SharepointPreviewTool; @@ -60,7 +61,7 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant that can search through SharePoint documents.") .setTools(Collections.singletonList(sharepointTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("sharepoint-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("sharepoint-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchAsync.java index 7b91c54a49f4..ff88c7089b3d 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WebSearchPreviewTool; import com.azure.core.util.Configuration; @@ -54,7 +55,7 @@ public static void main(String[] args) { + "When asked to find information, use the web search tool to gather relevant data.") .setTools(Collections.singletonList(tool)); - agentsAsyncClient.createAgentVersion("web-search-agent", agentDefinition) + agentsAsyncClient.createAgentVersion("web-search-agent", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchSync.java index 294203ca1d7b..7d7c4a6fbb8e 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WebSearchSync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WebSearchPreviewTool; import com.azure.core.util.Configuration; @@ -56,7 +57,7 @@ public static void main(String[] args) { + "When asked to find information, use the web search tool to gather relevant data.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("web-search-agent", agentDefinition); + agent = agentsClient.createAgentVersion("web-search-agent", new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); AgentReference agentReference = new AgentReference(agent.getName()) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQAsync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQAsync.java index 6dbcc59ce2e2..23e7b590a308 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQAsync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQAsync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WorkIqPreviewTool; import com.azure.core.util.Configuration; @@ -63,7 +64,7 @@ public static void main(String[] args) { + "Teams messages, and other Microsoft 365 content.") .setTools(Collections.singletonList(workIqTool)); - agentsAsyncClient.createAgentVersion(agentName, agentDefinition) + agentsAsyncClient.createAgentVersion(agentName, new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> Mono.usingWhen( Mono.just(agent), createdAgent -> { diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQSync.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQSync.java index da82b461f4d9..4320189f9dd9 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQSync.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/tools/WorkIQSync.java @@ -9,6 +9,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WorkIqPreviewTool; import com.azure.core.util.Configuration; @@ -64,7 +65,7 @@ public static void main(String[] args) { + "Teams messages, and other Microsoft 365 content.") .setTools(Collections.singletonList(workIqTool)); - AgentVersionDetails agent = agentsClient.createAgentVersion(agentName, agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion(agentName, new CreateAgentVersionInput(agentDefinition)); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsAsyncTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsAsyncTests.java index 9c1c1cd5d5d5..c932ec834181 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsAsyncTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsAsyncTests.java @@ -5,6 +5,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.core.util.BinaryData; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.StructuredInputDefinition; @@ -42,7 +43,7 @@ public void basicCRUDOperations(HttpClient httpClient, AgentsServiceVersion serv AgentsAsyncClient client = getAgentsAsyncClient(httpClient, serviceVersion); String agentModel = "gpt-4o"; - PromptAgentDefinition request = new PromptAgentDefinition(agentModel); + CreateAgentVersionInput request = new CreateAgentVersionInput(new PromptAgentDefinition(agentModel)); StepVerifier.create(client.createAgentVersion(AGENT_NAME, request).flatMap(created -> { // Assertions for created agent version @@ -75,7 +76,7 @@ public void basicVersionedAgentCRUDOperations(HttpClient httpClient, AgentsServi AgentsAsyncClient client = getAgentsAsyncClient(httpClient, serviceVersion); String agentModel = "gpt-4o"; - PromptAgentDefinition request = new PromptAgentDefinition(agentModel); + CreateAgentVersionInput request = new CreateAgentVersionInput(new PromptAgentDefinition(agentModel)); StepVerifier.create(client.createAgentVersion(AGENT_NAME, request).flatMap(created -> { // Assertions for created agent version @@ -111,9 +112,9 @@ public void promptAgentTest(HttpClient httpClient, AgentsServiceVersion serviceV ResponsesAsyncClient responsesClient = getResponsesAsyncClient(httpClient, serviceVersion); String agentModel = "gpt-4o"; - PromptAgentDefinition promptAgentDefinition = new PromptAgentDefinition(agentModel); + CreateAgentVersionInput input = new CreateAgentVersionInput(new PromptAgentDefinition(agentModel)); - StepVerifier.create(agentsClient.createAgentVersion(AGENT_NAME, promptAgentDefinition).flatMap(createdAgent -> { + StepVerifier.create(agentsClient.createAgentVersion(AGENT_NAME, input).flatMap(createdAgent -> { assertNotNull(createdAgent); assertNotNull(createdAgent.getId()); assertEquals(AGENT_NAME, createdAgent.getName()); @@ -180,9 +181,12 @@ public void structuredInputTest(HttpClient httpClient, AgentsServiceVersion serv StepVerifier.create( agentsClient .createAgentVersion(AGENT_NAME, - new PromptAgentDefinition(agentModel).setInstructions("You are a helpful assistant. " - + "The user's name is {{userName}} and their role is {{userRole}}. " - + "Greet them and confirm their details.").setStructuredInputs(structuredInputDefinitions)) + new CreateAgentVersionInput( + new PromptAgentDefinition(agentModel) + .setInstructions("You are a helpful assistant. " + + "The user's name is {{userName}} and their role is {{userRole}}. " + + "Greet them and confirm their details.") + .setStructuredInputs(structuredInputDefinitions))) .flatMap(createdAgent -> { assertNotNull(createdAgent); assertNotNull(createdAgent.getId()); @@ -209,8 +213,9 @@ public void structuredInputTest(HttpClient httpClient, AgentsServiceVersion serv assertTrue(response.status().isPresent()); assertEquals(ResponseStatus.COMPLETED, response.status().get()); assertFalse(response.output().isEmpty()); - assertTrue(response.output().get(0).isMessage()); - assertFalse(response.output().get(0).asMessage().content().isEmpty()); + assertTrue(response.output() + .stream() + .anyMatch(item -> item.isMessage() && !item.asMessage().content().isEmpty())); }) .verifyComplete(); } diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsTests.java index 1eacacef65f3..1e5bf4954445 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/AgentsTests.java @@ -3,11 +3,11 @@ package com.azure.ai.agents; -import com.azure.ai.agents.models.AgentDefinition; import com.azure.ai.agents.models.AgentDetails; import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.StructuredInputDefinition; import com.azure.core.util.BinaryData; @@ -41,7 +41,7 @@ public void basicCRUDOperations(HttpClient httpClient, AgentsServiceVersion serv AgentsClient client = getAgentsSyncClient(httpClient, serviceVersion); String agentModel = "gpt-4o"; - AgentDefinition request = new PromptAgentDefinition(agentModel); + CreateAgentVersionInput request = new CreateAgentVersionInput(new PromptAgentDefinition(agentModel)); AgentVersionDetails createdAgent = client.createAgentVersion(AGENT_NAME, request); @@ -74,7 +74,7 @@ public void basicVersionedAgentCRUDOperations(HttpClient httpClient, AgentsServi AgentsClient client = getAgentsSyncClient(httpClient, serviceVersion); String agentModel = "gpt-4o"; - AgentDefinition request = new PromptAgentDefinition(agentModel); + CreateAgentVersionInput request = new CreateAgentVersionInput(new PromptAgentDefinition(agentModel)); // Creation AgentVersionDetails createdAgent = client.createAgentVersion(AGENT_NAME, request); @@ -115,9 +115,9 @@ public void promptAgentTest(HttpClient httpClient, AgentsServiceVersion serviceV ResponsesClient responsesClient = getResponsesSyncClient(httpClient, serviceVersion); String agentModel = "gpt-4o"; - PromptAgentDefinition promptAgentDefinition = new PromptAgentDefinition(agentModel); + CreateAgentVersionInput input = new CreateAgentVersionInput(new PromptAgentDefinition(agentModel)); - AgentVersionDetails createdAgent = agentsClient.createAgentVersion(AGENT_NAME, promptAgentDefinition); + AgentVersionDetails createdAgent = agentsClient.createAgentVersion(AGENT_NAME, input); AgentReference agentReference = new AgentReference(createdAgent.getName()); agentReference.setVersion(createdAgent.getVersion()); @@ -220,10 +220,10 @@ public void structuredInputTest(HttpClient httpClient, AgentsServiceVersion serv new StructuredInputDefinition().setDescription("User's role").setRequired(true)); AgentVersionDetails createdAgent = agentsClient.createAgentVersion(AGENT_NAME, - new PromptAgentDefinition(agentModel).setInstructions( + new CreateAgentVersionInput(new PromptAgentDefinition(agentModel).setInstructions( "You are a helpful assistant. " + "The user's name is {{userName}} and their role is {{userRole}}. " + "Greet them and confirm their details.") - .setStructuredInputs(structuredInputDefinitions)); + .setStructuredInputs(structuredInputDefinitions))); assertNotNull(createdAgent); assertNotNull(createdAgent.getId()); @@ -248,8 +248,8 @@ public void structuredInputTest(HttpClient httpClient, AgentsServiceVersion serv assertTrue(response.status().isPresent()); assertEquals(ResponseStatus.COMPLETED, response.status().get()); assertFalse(response.output().isEmpty()); - assertTrue(response.output().get(0).isMessage()); - assertFalse(response.output().get(0).asMessage().content().isEmpty()); + assertTrue( + response.output().stream().anyMatch(item -> item.isMessage() && !item.asMessage().content().isEmpty())); // Clean up agentsClient.deleteAgentVersion(createdAgent.getName(), createdAgent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingAsyncTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingAsyncTests.java index fafdbcae05ae..9dda007d0917 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingAsyncTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingAsyncTests.java @@ -7,6 +7,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.StructuredInputDefinition; @@ -58,38 +59,40 @@ public void simpleStreamingProducesTextDeltas(HttpClient httpClient, AgentsServi AtomicReference agentRef = new AtomicReference<>(); - StepVerifier - .create(agentsClient.createAgentVersion("streaming-async-test-agent", agentDefinition).flatMap(agent -> { - agentRef.set(agent); + StepVerifier.create( + agentsClient.createAgentVersion("streaming-async-test-agent", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { + agentRef.set(agent); - AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); + AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); - ResponseAccumulator accumulator = ResponseAccumulator.create(); - List textDeltas = new ArrayList<>(); + ResponseAccumulator accumulator = ResponseAccumulator.create(); + List textDeltas = new ArrayList<>(); - Flux events = responsesClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder().input("Say hello.")); + Flux events = responsesClient.createStreamingAzureResponse( + new AzureCreateResponseOptions().setAgentReference(agentReference), + ResponseCreateParams.builder().input("Say hello.")); - return events.doOnNext(event -> { - accumulator.accumulate(event); - event.outputTextDelta().ifPresent(textEvent -> textDeltas.add(textEvent.delta())); - }).then(Mono.fromCallable(() -> { - assertFalse(textDeltas.isEmpty(), "Should have received at least one text delta"); + return events.doOnNext(event -> { + accumulator.accumulate(event); + event.outputTextDelta().ifPresent(textEvent -> textDeltas.add(textEvent.delta())); + }).then(Mono.fromCallable(() -> { + assertFalse(textDeltas.isEmpty(), "Should have received at least one text delta"); - Response response = accumulator.response(); - assertNotNull(response.id()); - assertTrue(response.status().isPresent()); - assertEquals(ResponseStatus.COMPLETED, response.status().get()); + Response response = accumulator.response(); + assertNotNull(response.id()); + assertTrue(response.status().isPresent()); + assertEquals(ResponseStatus.COMPLETED, response.status().get()); - String streamedText = String.join("", textDeltas); - assertFalse(streamedText.isEmpty()); - return response; - })); - }).flatMap(response -> { - AgentVersionDetails agent = agentRef.get(); - return agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion()).thenReturn(response); - })) + String streamedText = String.join("", textDeltas); + assertFalse(streamedText.isEmpty()); + return response; + })); + }) + .flatMap(response -> { + AgentVersionDetails agent = agentRef.get(); + return agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion()).thenReturn(response); + })) .assertNext(response -> assertNotNull(response.id())) .verifyComplete(); } @@ -113,8 +116,9 @@ public void functionCallStreamingProducesFunctionCallEvents(HttpClient httpClien AtomicReference agentRef = new AtomicReference<>(); - StepVerifier.create( - agentsClient.createAgentVersion("function-streaming-async-test-agent", agentDefinition).flatMap(agent -> { + StepVerifier.create(agentsClient + .createAgentVersion("function-streaming-async-test-agent", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { agentRef.set(agent); AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); @@ -147,7 +151,8 @@ public void functionCallStreamingProducesFunctionCallEvents(HttpClient httpClien assertTrue(hasFunctionCall, "Response should contain a function call output item"); return response; })); - }).flatMap(response -> { + }) + .flatMap(response -> { AgentVersionDetails agent = agentRef.get(); return agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion()).thenReturn(response); })).assertNext(response -> assertNotNull(response.id())).verifyComplete(); @@ -171,8 +176,10 @@ public void codeInterpreterStreamingProducesCodeEvents(HttpClient httpClient, Ag AtomicReference agentRef = new AtomicReference<>(); - StepVerifier - .create(agentsClient.createAgentVersion("code-interpreter-streaming-async-test-agent", agentDefinition) + StepVerifier.create( + agentsClient + .createAgentVersion("code-interpreter-streaming-async-test-agent", + new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { agentRef.set(agent); @@ -227,12 +234,15 @@ public void structuredInputStreamingProducesTextDeltas(HttpClient httpClient, Ag AtomicReference agentRef = new AtomicReference<>(); - StepVerifier - .create(agentsClient + StepVerifier.create( + agentsClient .createAgentVersion("structured-input-streaming-async-test-agent", - new PromptAgentDefinition(AGENT_MODEL).setInstructions("You are a helpful assistant. " - + "The user's name is {{userName}} and their role is {{userRole}}. " - + "Greet them and confirm their details.").setStructuredInputs(structuredInputDefinitions)) + new CreateAgentVersionInput( + new PromptAgentDefinition(AGENT_MODEL) + .setInstructions("You are a helpful assistant. " + + "The user's name is {{userName}} and their role is {{userRole}}. " + + "Greet them and confirm their details.") + .setStructuredInputs(structuredInputDefinitions))) .flatMap(agent -> { agentRef.set(agent); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingTests.java index 5f639312352b..2b6874b9e1de 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/StreamingTests.java @@ -7,6 +7,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.StructuredInputDefinition; @@ -53,7 +54,8 @@ public void simpleStreamingProducesTextDeltas(HttpClient httpClient, AgentsServi PromptAgentDefinition agentDefinition = new PromptAgentDefinition(AGENT_MODEL) .setInstructions("You are a helpful assistant. Reply in one sentence."); - AgentVersionDetails agent = agentsClient.createAgentVersion("streaming-test-agent", agentDefinition); + AgentVersionDetails agent + = agentsClient.createAgentVersion("streaming-test-agent", new CreateAgentVersionInput(agentDefinition)); try { AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); @@ -102,7 +104,8 @@ public void functionCallStreamingProducesFunctionCallEvents(HttpClient httpClien .setInstructions("You are a helpful assistant. When asked about weather, use the get_weather function.") .setTools(Collections.singletonList(tool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("function-streaming-test-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("function-streaming-test-agent", + new CreateAgentVersionInput(agentDefinition)); try { AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); @@ -156,8 +159,8 @@ public void codeInterpreterStreamingProducesCodeEvents(HttpClient httpClient, Ag .setInstructions("You are a helpful assistant that uses code interpreter for calculations.") .setTools(Collections.singletonList(tool)); - AgentVersionDetails agent - = agentsClient.createAgentVersion("code-interpreter-streaming-test-agent", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("code-interpreter-streaming-test-agent", + new CreateAgentVersionInput(agentDefinition)); try { AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); @@ -207,10 +210,10 @@ public void structuredInputStreamingProducesTextDeltas(HttpClient httpClient, Ag new StructuredInputDefinition().setDescription("User's role").setRequired(true)); AgentVersionDetails agent = agentsClient.createAgentVersion("structured-input-streaming-test-agent", - new PromptAgentDefinition(AGENT_MODEL).setInstructions( + new CreateAgentVersionInput(new PromptAgentDefinition(AGENT_MODEL).setInstructions( "You are a helpful assistant. " + "The user's name is {{userName}} and their role is {{userRole}}. " + "Greet them and confirm their details.") - .setStructuredInputs(structuredInputDefinitions)); + .setStructuredInputs(structuredInputDefinitions))); try { AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsAsyncTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsAsyncTests.java index c405358a825d..27afde1fb2f4 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsAsyncTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsAsyncTests.java @@ -6,6 +6,7 @@ import com.azure.ai.agents.models.AgentReference; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.FileSearchTool; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.McpTool; @@ -70,8 +71,9 @@ public void openApiToolEndToEnd(HttpClient httpClient, AgentsServiceVersion serv = new PromptAgentDefinition("gpt-4o").setInstructions("Use the OpenAPI tool for HTTP request metadata.") .setTools(Arrays.asList(new OpenApiTool(toolDefinition))); - StepVerifier.create( - agentsClient.createAgentVersion("openapi-tool-test-agent-java-async", agentDefinition).flatMap(agent -> { + StepVerifier.create(agentsClient + .createAgentVersion("openapi-tool-test-agent-java-async", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { assertNotNull(agent); assertNotNull(agent.getId()); @@ -112,7 +114,8 @@ public void codeInterpreterToolEndToEnd(HttpClient httpClient, AgentsServiceVers .setInstructions("You are a helpful assistant that can execute Python code to solve problems.") .setTools(Collections.singletonList(tool)); - StepVerifier.create(agentsClient.createAgentVersion("code-interpreter-test-agent-java-async", agentDefinition) + StepVerifier.create(agentsClient + .createAgentVersion("code-interpreter-test-agent-java-async", new CreateAgentVersionInput(agentDefinition)) .flatMap(agent -> { assertNotNull(agent); @@ -168,8 +171,9 @@ public void functionCallToolEndToEnd(HttpClient httpClient, AgentsServiceVersion .setInstructions("You are a helpful assistant. When asked about weather, use the get_weather function.") .setTools(Collections.singletonList(tool)); - StepVerifier.create( - agentsClient.createAgentVersion("function-call-test-agent-java-async", agentDefinition).flatMap(agent -> { + StepVerifier.create(agentsClient + .createAgentVersion("function-call-test-agent-java-async", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { assertNotNull(agent); AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); @@ -209,8 +213,9 @@ public void webSearchToolEndToEnd(HttpClient httpClient, AgentsServiceVersion se .setInstructions("You are a helpful assistant that can search the web.") .setTools(Collections.singletonList(tool)); - StepVerifier.create( - agentsClient.createAgentVersion("web-search-test-agent-java-async", agentDefinition).flatMap(agent -> { + StepVerifier.create(agentsClient + .createAgentVersion("web-search-test-agent-java-async", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { assertNotNull(agent); AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); @@ -246,49 +251,50 @@ public void mcpToolEndToEnd(HttpClient httpClient, AgentsServiceVersion serviceV .setInstructions("You are a helpful agent that can use MCP tools to assist users.") .setTools(Collections.singletonList(tool)); - StepVerifier - .create(agentsClient.createAgentVersion("mcp-test-agent-java-async", agentDefinition).flatMap(agent -> { - assertNotNull(agent); - - AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); + StepVerifier.create( + agentsClient.createAgentVersion("mcp-test-agent-java-async", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { + assertNotNull(agent); - return responsesClient - .createAzureResponse(new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Please summarize the Azure REST API specifications Readme")) - .flatMap(response -> { - assertNotNull(response); - assertTrue(response.status().isPresent()); - assertEquals(ResponseStatus.COMPLETED, response.status().get()); + AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); - List approvals = new ArrayList(); - for (ResponseOutputItem item : response.output()) { - if (item.isMcpApprovalRequest()) { - approvals.add(ResponseInputItem - .ofMcpApprovalResponse(ResponseInputItem.McpApprovalResponse.builder() - .approvalRequestId(item.asMcpApprovalRequest().id()) - .approve(true) - .build())); + return responsesClient + .createAzureResponse(new AzureCreateResponseOptions().setAgentReference(agentReference), + ResponseCreateParams.builder() + .input("Please summarize the Azure REST API specifications Readme")) + .flatMap(response -> { + assertNotNull(response); + assertTrue(response.status().isPresent()); + assertEquals(ResponseStatus.COMPLETED, response.status().get()); + + List approvals = new ArrayList(); + for (ResponseOutputItem item : response.output()) { + if (item.isMcpApprovalRequest()) { + approvals.add(ResponseInputItem + .ofMcpApprovalResponse(ResponseInputItem.McpApprovalResponse.builder() + .approvalRequestId(item.asMcpApprovalRequest().id()) + .approve(true) + .build())); + } } - } - - assertFalse(approvals.isEmpty(), "Expected at least one MCP approval request"); - return responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .inputOfResponse(approvals) - .previousResponseId(response.id())); - }) - .doOnNext(response -> { - assertNotNull(response); - assertTrue(response.status().isPresent()); - assertEquals(ResponseStatus.COMPLETED, response.status().get()); - assertFalse(response.output().isEmpty()); - assertTrue(response.output().stream().anyMatch(item -> item.isMessage())); - }) - .then(agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion())); - })) + assertFalse(approvals.isEmpty(), "Expected at least one MCP approval request"); + + return responsesClient.createAzureResponse( + new AzureCreateResponseOptions().setAgentReference(agentReference), + ResponseCreateParams.builder() + .inputOfResponse(approvals) + .previousResponseId(response.id())); + }) + .doOnNext(response -> { + assertNotNull(response); + assertTrue(response.status().isPresent()); + assertEquals(ResponseStatus.COMPLETED, response.status().get()); + assertFalse(response.output().isEmpty()); + assertTrue(response.output().stream().anyMatch(item -> item.isMessage())); + }) + .then(agentsClient.deleteAgentVersion(agent.getName(), agent.getVersion())); + })) .verifyComplete(); } @@ -336,8 +342,9 @@ public void fileSearchToolEndToEnd(HttpClient httpClient, AgentsServiceVersion s .setInstructions("You are a helpful assistant that searches uploaded files to answer questions.") .setTools(Collections.singletonList(tool)); - StepVerifier.create( - agentsClient.createAgentVersion("file-search-test-agent-java-async", agentDefinition).flatMap(agent -> { + StepVerifier.create(agentsClient + .createAgentVersion("file-search-test-agent-java-async", new CreateAgentVersionInput(agentDefinition)) + .flatMap(agent -> { assertNotNull(agent); AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsTests.java index 5c077fead1e8..a614151ac703 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/ToolsTests.java @@ -7,6 +7,7 @@ import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.CodeInterpreterTool; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.FileSearchTool; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.McpTool; @@ -73,7 +74,8 @@ public void openApiToolEndToEnd(HttpClient httpClient, AgentsServiceVersion serv = new PromptAgentDefinition("gpt-4o").setInstructions("Use the OpenAPI tool for HTTP request metadata.") .setTools(Arrays.asList(new OpenApiTool(toolDefinition))); - AgentVersionDetails agent = agentsClient.createAgentVersion("openapi-tool-test-agent-java", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("openapi-tool-test-agent-java", + new CreateAgentVersionInput(agentDefinition)); assertNotNull(agent); assertNotNull(agent.getId()); @@ -123,8 +125,8 @@ public void codeInterpreterToolEndToEnd(HttpClient httpClient, AgentsServiceVers .setInstructions("You are a helpful assistant that can execute Python code to solve problems.") .setTools(Collections.singletonList(tool)); - AgentVersionDetails agent - = agentsClient.createAgentVersion("code-interpreter-test-agent-java", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("code-interpreter-test-agent-java", + new CreateAgentVersionInput(agentDefinition)); assertNotNull(agent); assertNotNull(agent.getId()); @@ -181,7 +183,8 @@ public void functionCallToolEndToEnd(HttpClient httpClient, AgentsServiceVersion .setInstructions("You are a helpful assistant. When asked about weather, use the get_weather function.") .setTools(Collections.singletonList(tool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("function-call-test-agent-java", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("function-call-test-agent-java", + new CreateAgentVersionInput(agentDefinition)); assertNotNull(agent); try { @@ -225,7 +228,8 @@ public void webSearchToolEndToEnd(HttpClient httpClient, AgentsServiceVersion se .setInstructions("You are a helpful assistant that can search the web.") .setTools(Collections.singletonList(tool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("web-search-test-agent-java", agentDefinition); + AgentVersionDetails agent = agentsClient.createAgentVersion("web-search-test-agent-java", + new CreateAgentVersionInput(agentDefinition)); assertNotNull(agent); try { @@ -262,7 +266,8 @@ public void mcpToolEndToEnd(HttpClient httpClient, AgentsServiceVersion serviceV .setInstructions("You are a helpful agent that can use MCP tools to assist users.") .setTools(Collections.singletonList(tool)); - AgentVersionDetails agent = agentsClient.createAgentVersion("mcp-test-agent-java", agentDefinition); + AgentVersionDetails agent + = agentsClient.createAgentVersion("mcp-test-agent-java", new CreateAgentVersionInput(agentDefinition)); assertNotNull(agent); try { @@ -353,7 +358,8 @@ public void fileSearchToolEndToEnd(HttpClient httpClient, AgentsServiceVersion s .setInstructions("You are a helpful assistant that searches uploaded files to answer questions.") .setTools(Collections.singletonList(tool)); - agent = agentsClient.createAgentVersion("file-search-test-agent-java", agentDefinition); + agent = agentsClient.createAgentVersion("file-search-test-agent-java", + new CreateAgentVersionInput(agentDefinition)); assertNotNull(agent); AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/ApproximateLocationSerializationTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/ApproximateLocationSerializationTests.java deleted file mode 100644 index 92253633e910..000000000000 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/ApproximateLocationSerializationTests.java +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.agents.models; - -import com.azure.json.JsonProviders; -import com.azure.json.JsonReader; -import com.azure.json.JsonWriter; -import org.junit.jupiter.api.Test; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.TimeZone; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.assertFalse; - -/** - * Tests for ApproximateLocation serialization, focusing on the TimeZone type override. - */ -public class ApproximateLocationSerializationTests { - - /** - * Tests serialization with timezone set. - */ - @Test - public void testSerializationWithTimezone() throws IOException { - ApproximateLocation location = new ApproximateLocation().setCountry("US") - .setRegion("California") - .setCity("San Francisco") - .setTimezone(TimeZone.getTimeZone("America/Los_Angeles")); - - String json = serializeToJson(location); - - assertNotNull(json); - assertTrue(json.contains("\"type\":\"approximate\"")); - assertTrue(json.contains("\"country\":\"US\"")); - assertTrue(json.contains("\"region\":\"California\"")); - assertTrue(json.contains("\"city\":\"San Francisco\"")); - assertTrue(json.contains("\"timezone\":\"America/Los_Angeles\"")); - } - - /** - * Tests serialization with timezone not set (null). - */ - @Test - public void testSerializationWithoutTimezone() throws IOException { - ApproximateLocation location = new ApproximateLocation().setCountry("US"); - - String json = serializeToJson(location); - - assertNotNull(json); - assertTrue(json.contains("\"country\":\"US\"")); - assertFalse(json.contains("\"timezone\"")); - } - - /** - * Tests serialization with a UTC timezone. - */ - @Test - public void testSerializationWithUtcTimezone() throws IOException { - ApproximateLocation location = new ApproximateLocation().setTimezone(TimeZone.getTimeZone("UTC")); - - String json = serializeToJson(location); - - assertNotNull(json); - assertTrue(json.contains("\"timezone\":\"UTC\"")); - } - - /** - * Tests deserialization with timezone present. - */ - @Test - public void testDeserializationWithTimezone() throws IOException { - String json = "{\"type\":\"approximate\",\"country\":\"US\",\"region\":\"California\"," - + "\"city\":\"San Francisco\",\"timezone\":\"America/Los_Angeles\"}"; - - ApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertEquals("approximate", location.getType()); - assertEquals("US", location.getCountry()); - assertEquals("California", location.getRegion()); - assertEquals("San Francisco", location.getCity()); - assertNotNull(location.getTimezone()); - assertEquals("America/Los_Angeles", location.getTimezone().getID()); - } - - /** - * Tests deserialization with timezone absent. - */ - @Test - public void testDeserializationWithoutTimezone() throws IOException { - String json = "{\"type\":\"approximate\",\"country\":\"JP\",\"city\":\"Tokyo\"}"; - - ApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertEquals("JP", location.getCountry()); - assertEquals("Tokyo", location.getCity()); - assertNull(location.getTimezone()); - } - - /** - * Tests deserialization with a UTC timezone. - */ - @Test - public void testDeserializationWithUtcTimezone() throws IOException { - String json = "{\"type\":\"approximate\",\"timezone\":\"UTC\"}"; - - ApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertNotNull(location.getTimezone()); - assertEquals("UTC", location.getTimezone().getID()); - } - - /** - * Tests round-trip serialization/deserialization preserves timezone value. - */ - @Test - public void testRoundTripWithTimezone() throws IOException { - ApproximateLocation original = new ApproximateLocation().setCountry("DE") - .setRegion("Bavaria") - .setCity("Munich") - .setTimezone(TimeZone.getTimeZone("Europe/Berlin")); - - String json = serializeToJson(original); - ApproximateLocation deserialized = deserializeFromJson(json); - - assertNotNull(deserialized); - assertEquals(original.getCountry(), deserialized.getCountry()); - assertEquals(original.getRegion(), deserialized.getRegion()); - assertEquals(original.getCity(), deserialized.getCity()); - assertEquals(original.getTimezone().getID(), deserialized.getTimezone().getID()); - } - - /** - * Tests round-trip serialization/deserialization with null timezone. - */ - @Test - public void testRoundTripWithoutTimezone() throws IOException { - ApproximateLocation original = new ApproximateLocation().setCountry("GB").setCity("London"); - - String json = serializeToJson(original); - ApproximateLocation deserialized = deserializeFromJson(json); - - assertNotNull(deserialized); - assertEquals(original.getCountry(), deserialized.getCountry()); - assertEquals(original.getCity(), deserialized.getCity()); - assertNull(deserialized.getTimezone()); - } - - /** - * Tests round-trip with multiple different timezone IDs. - */ - @Test - public void testRoundTripWithVariousTimezones() throws IOException { - String[] timezoneIds - = { "America/New_York", "Europe/London", "Asia/Tokyo", "Australia/Sydney", "Pacific/Auckland" }; - - for (String tzId : timezoneIds) { - ApproximateLocation original = new ApproximateLocation().setTimezone(TimeZone.getTimeZone(tzId)); - - String json = serializeToJson(original); - ApproximateLocation deserialized = deserializeFromJson(json); - - assertEquals(tzId, deserialized.getTimezone().getID(), "Round-trip failed for timezone: " + tzId); - } - } - - /** - * Tests that an unknown/invalid timezone ID deserializes as null instead of silently falling back to GMT. - */ - @Test - public void testDeserializationWithUnknownTimezoneReturnsNull() throws IOException { - String json = "{\"type\":\"approximate\",\"country\":\"US\",\"timezone\":\"Not/AZone\"}"; - - ApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertEquals("US", location.getCountry()); - assertNull(location.getTimezone(), "Unknown timezone ID should deserialize as null, not GMT"); - } - - /** - * Tests that the valid "GMT" timezone ID is correctly deserialized (not treated as unknown). - */ - @Test - public void testDeserializationWithGmtTimezone() throws IOException { - String json = "{\"type\":\"approximate\",\"timezone\":\"GMT\"}"; - - ApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertNotNull(location.getTimezone()); - assertEquals("GMT", location.getTimezone().getID()); - } - - // Helper method to serialize ApproximateLocation to JSON string - private String serializeToJson(ApproximateLocation location) throws IOException { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - try (JsonWriter jsonWriter = JsonProviders.createWriter(outputStream)) { - location.toJson(jsonWriter); - } - return outputStream.toString("UTF-8"); - } - - // Helper method to deserialize JSON string to ApproximateLocation - private ApproximateLocation deserializeFromJson(String json) throws IOException { - try (JsonReader jsonReader = JsonProviders.createReader(json)) { - return ApproximateLocation.fromJson(jsonReader); - } - } -} diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebSearchApproximateLocationSerializationTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebSearchApproximateLocationSerializationTests.java deleted file mode 100644 index cbaff17b8dcf..000000000000 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebSearchApproximateLocationSerializationTests.java +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -package com.azure.ai.agents.models; - -import com.azure.json.JsonProviders; -import com.azure.json.JsonReader; -import com.azure.json.JsonWriter; -import org.junit.jupiter.api.Test; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.util.TimeZone; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.assertFalse; - -/** - * Tests for WebSearchApproximateLocation serialization, focusing on the TimeZone type override. - */ -public class WebSearchApproximateLocationSerializationTests { - - /** - * Tests serialization with timezone set. - */ - @Test - public void testSerializationWithTimezone() throws IOException { - WebSearchApproximateLocation location = new WebSearchApproximateLocation().setCountry("US") - .setRegion("California") - .setCity("San Francisco") - .setTimezone(TimeZone.getTimeZone("America/Los_Angeles")); - - String json = serializeToJson(location); - - assertNotNull(json); - assertTrue(json.contains("\"type\":\"approximate\"")); - assertTrue(json.contains("\"country\":\"US\"")); - assertTrue(json.contains("\"timezone\":\"America/Los_Angeles\"")); - } - - /** - * Tests serialization without timezone. - */ - @Test - public void testSerializationWithoutTimezone() throws IOException { - WebSearchApproximateLocation location = new WebSearchApproximateLocation().setCountry("US"); - - String json = serializeToJson(location); - - assertFalse(json.contains("\"timezone\"")); - } - - /** - * Tests deserialization with timezone present. - */ - @Test - public void testDeserializationWithTimezone() throws IOException { - String json - = "{\"type\":\"approximate\",\"country\":\"JP\",\"city\":\"Tokyo\"," + "\"timezone\":\"Asia/Tokyo\"}"; - - WebSearchApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertEquals("JP", location.getCountry()); - assertEquals("Tokyo", location.getCity()); - assertNotNull(location.getTimezone()); - assertEquals("Asia/Tokyo", location.getTimezone().getID()); - } - - /** - * Tests deserialization without timezone. - */ - @Test - public void testDeserializationWithoutTimezone() throws IOException { - String json = "{\"type\":\"approximate\",\"country\":\"DE\"}"; - - WebSearchApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertNull(location.getTimezone()); - } - - /** - * Tests round-trip preserves timezone value. - */ - @Test - public void testRoundTripWithTimezone() throws IOException { - WebSearchApproximateLocation original = new WebSearchApproximateLocation().setCountry("GB") - .setCity("London") - .setTimezone(TimeZone.getTimeZone("Europe/London")); - - String json = serializeToJson(original); - WebSearchApproximateLocation deserialized = deserializeFromJson(json); - - assertEquals(original.getCountry(), deserialized.getCountry()); - assertEquals(original.getCity(), deserialized.getCity()); - assertEquals("Europe/London", deserialized.getTimezone().getID()); - } - - /** - * Tests round-trip with various timezone IDs. - */ - @Test - public void testRoundTripWithVariousTimezones() throws IOException { - String[] timezoneIds - = { "America/New_York", "Europe/Berlin", "Asia/Shanghai", "Australia/Sydney", "Pacific/Auckland", "UTC" }; - - for (String tzId : timezoneIds) { - WebSearchApproximateLocation original - = new WebSearchApproximateLocation().setTimezone(TimeZone.getTimeZone(tzId)); - - String json = serializeToJson(original); - WebSearchApproximateLocation deserialized = deserializeFromJson(json); - - assertEquals(tzId, deserialized.getTimezone().getID(), "Round-trip failed for timezone: " + tzId); - } - } - - /** - * Tests that an unknown/invalid timezone ID deserializes as null instead of silently falling back to GMT. - */ - @Test - public void testDeserializationWithUnknownTimezoneReturnsNull() throws IOException { - String json = "{\"type\":\"approximate\",\"country\":\"US\",\"timezone\":\"Not/AZone\"}"; - - WebSearchApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertEquals("US", location.getCountry()); - assertNull(location.getTimezone(), "Unknown timezone ID should deserialize as null, not GMT"); - } - - /** - * Tests that the valid "GMT" timezone ID is correctly deserialized (not treated as unknown). - */ - @Test - public void testDeserializationWithGmtTimezone() throws IOException { - String json = "{\"type\":\"approximate\",\"timezone\":\"GMT\"}"; - - WebSearchApproximateLocation location = deserializeFromJson(json); - - assertNotNull(location); - assertNotNull(location.getTimezone()); - assertEquals("GMT", location.getTimezone().getID()); - } - - private String serializeToJson(WebSearchApproximateLocation location) throws IOException { - ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - try (JsonWriter jsonWriter = JsonProviders.createWriter(outputStream)) { - location.toJson(jsonWriter); - } - return outputStream.toString("UTF-8"); - } - - private WebSearchApproximateLocation deserializeFromJson(String json) throws IOException { - try (JsonReader jsonReader = JsonProviders.createReader(json)) { - return WebSearchApproximateLocation.fromJson(jsonReader); - } - } -} diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/FabricIQSamplesTestBase.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/FabricIQSamplesTestBase.java index 4d503036c901..b91e90bb43fc 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/FabricIQSamplesTestBase.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/FabricIQSamplesTestBase.java @@ -5,6 +5,7 @@ import com.azure.ai.agents.AgentsServiceVersion; import com.azure.ai.agents.ClientTestBase; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.FabricIqPreviewTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.test.TestMode; @@ -34,13 +35,13 @@ static Stream getTestParameters() { return argumentsList.stream(); } - PromptAgentDefinition createAgentDefinition() { + CreateAgentVersionInput createAgentDefinition() { FabricIqPreviewTool fabricIqTool = new FabricIqPreviewTool(getRecordedConfig("FABRIC_IQ_PROJECT_CONNECTION_ID")).setRequireApproval("never"); - return new PromptAgentDefinition(getRecordedConfig("FOUNDRY_MODEL_NAME")) + return new CreateAgentVersionInput(new PromptAgentDefinition(getRecordedConfig("FOUNDRY_MODEL_NAME")) .setInstructions("Use the available Fabric IQ tools to answer questions and perform tasks.") - .setTools(Collections.singletonList(fabricIqTool)); + .setTools(Collections.singletonList(fabricIqTool))); } String getUserInput() { diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/WorkIQSamplesTestBase.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/WorkIQSamplesTestBase.java index a11aec619677..b67ed197df8e 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/WorkIQSamplesTestBase.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/tools/WorkIQSamplesTestBase.java @@ -5,6 +5,7 @@ import com.azure.ai.agents.AgentsServiceVersion; import com.azure.ai.agents.ClientTestBase; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WorkIqPreviewTool; import com.azure.core.test.TestMode; @@ -35,14 +36,14 @@ static Stream getTestParameters() { return argumentsList.stream(); } - PromptAgentDefinition createAgentDefinition() { + CreateAgentVersionInput createAgentDefinition() { WorkIqPreviewTool workIqTool = new WorkIqPreviewTool(getRecordedConfig("WORK_IQ_PROJECT_CONNECTION_ID")); - return new PromptAgentDefinition(getRecordedConfig("FOUNDRY_MODEL_NAME")) + return new CreateAgentVersionInput(new PromptAgentDefinition(getRecordedConfig("FOUNDRY_MODEL_NAME")) .setInstructions("You are a helpful assistant that can access Microsoft 365 data through Work IQ. " + "Use the Work IQ tool to search and retrieve information from emails, calendar events, " + "Teams messages, and other Microsoft 365 content.") - .setTools(Collections.singletonList(workIqTool)); + .setTools(Collections.singletonList(workIqTool))); } String getUserInput() { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/AIProjectClientBuilder.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/AIProjectClientBuilder.java index 3174b7d02f1b..335e92c12a49 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/AIProjectClientBuilder.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/AIProjectClientBuilder.java @@ -54,6 +54,7 @@ */ @ServiceClientBuilder( serviceClients = { + BetaAgentInsightMonitorsClient.class, BetaModelsClient.class, BetaRedTeamsClient.class, BetaEvaluationTaxonomiesClient.class, @@ -68,6 +69,7 @@ IndexesClient.class, DeploymentsClient.class, EvaluationRulesClient.class, + BetaAgentInsightMonitorsAsyncClient.class, BetaModelsAsyncClient.class, BetaRedTeamsAsyncClient.class, BetaEvaluationTaxonomiesAsyncClient.class, @@ -1083,4 +1085,24 @@ public BetaDatasetsClient buildBetaDatasetsClient() { return new BetaDatasetsClient(buildInnerClient(DATA_GENERATION_JOBS_PREVIEW_FEATURES).getBetaDatasets()); } } + + /** + * Builds an instance of BetaAgentInsightMonitorsAsyncClient class. + * + * @return an instance of BetaAgentInsightMonitorsAsyncClient. + */ + @Generated + public BetaAgentInsightMonitorsAsyncClient buildBetaAgentInsightMonitorsAsyncClient() { + return new BetaAgentInsightMonitorsAsyncClient(buildInnerClient().getBetaAgentInsightMonitors()); + } + + /** + * Builds an instance of BetaAgentInsightMonitorsClient class. + * + * @return an instance of BetaAgentInsightMonitorsClient. + */ + @Generated + public BetaAgentInsightMonitorsClient buildBetaAgentInsightMonitorsClient() { + return new BetaAgentInsightMonitorsClient(buildInnerClient().getBetaAgentInsightMonitors()); + } } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsAsyncClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsAsyncClient.java new file mode 100644 index 000000000000..04a0b90092a1 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsAsyncClient.java @@ -0,0 +1,1431 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.projects; + +import com.azure.ai.agents.models.PageOrder; +import com.azure.ai.projects.implementation.BetaAgentInsightMonitorsImpl; +import com.azure.ai.projects.implementation.JsonMergePatchHelper; +import com.azure.ai.projects.implementation.utils.Beta; +import com.azure.ai.projects.models.AgentInsight; +import com.azure.ai.projects.models.AgentInsightMonitor; +import com.azure.ai.projects.models.AgentInsightMonitorCreate; +import com.azure.ai.projects.models.AgentInsightMonitorListItem; +import com.azure.ai.projects.models.AgentInsightMonitorUpdate; +import com.azure.ai.projects.models.AgentInsightRun; +import com.azure.ai.projects.models.AgentInsightRunCreate; +import com.azure.ai.projects.models.AgentInsightRunResult; +import com.azure.ai.projects.models.AgentInsightRunTrigger; +import com.azure.ai.projects.models.AgentInsightSeverity; +import com.azure.ai.projects.models.AgentInsightStatus; +import com.azure.ai.projects.models.AgentInsightUpdate; +import com.azure.ai.projects.models.JobStatus; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.PagedFlux; +import com.azure.core.http.rest.PagedResponse; +import com.azure.core.http.rest.PagedResponseBase; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.BinaryData; +import com.azure.core.util.FluxUtil; +import com.azure.core.util.polling.PollerFlux; +import java.util.stream.Collectors; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +/** + * Initializes a new instance of the asynchronous AIProjectClient type. + */ +@ServiceClient(builder = AIProjectClientBuilder.class, isAsync = true) +@Beta(warningText = "This class is in preview and may change in future releases.") +public final class BetaAgentInsightMonitorsAsyncClient { + + @Generated + private final BetaAgentInsightMonitorsImpl serviceClient; + + /** + * Initializes an instance of BetaAgentInsightMonitorsAsyncClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + BetaAgentInsightMonitorsAsyncClient(BetaAgentInsightMonitorsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + *

Query Parameters

+ * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
agent_nameStringNoFilter monitors by agent name.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux list(RequestOptions requestOptions) { + return this.serviceClient.listAsync(requestOptions); + } + + /** + * Create an Agent Insights monitor for an agent. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agent_name: String (Required)
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
LocationStringURL of the created monitor.
+ * + * @param monitor The monitor to create. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> createWithResponse(BinaryData monitor, RequestOptions requestOptions) { + return this.serviceClient.createWithResponseAsync(monitor, requestOptions); + } + + /** + * Get an Agent Insights monitor. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights monitor along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.getWithResponseAsync(monitorId, requestOptions); + } + + /** + * Delete an Agent Insights monitor and all of its runs, insights, and state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> deleteWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.deleteWithResponseAsync(monitorId, requestOptions); + } + + /** + * Update an Agent Insights monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Optional)
+     *     overview_override (Optional): {
+     *         content: String (Optional, Required on create)
+     *     }
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param monitor The monitor fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> updateWithResponse(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + return this.serviceClient.updateWithResponseAsync(monitorId, monitor, requestOptions); + } + + /** + * Reset an Agent Insights monitor's overview, checkpoint, and active insight state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> resetWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.resetWithResponseAsync(monitorId, requestOptions); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link PollerFlux} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public PollerFlux beginCreateRun(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return this.serviceClient.beginCreateRunAsync(monitorId, run, requestOptions); + } + + /** + * List Agent Insights runs for a monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
statusStringNoFilter runs by status. Allowed values: "queued", "in_progress", + * "succeeded", "failed", "cancelled".
triggerStringNoFilter runs by trigger. Allowed values: "on_demand", + * "scheduled".
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listRuns(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listRunsAsync(monitorId, requestOptions); + } + + /** + * Get an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights run along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + return this.serviceClient.getRunWithResponseAsync(monitorId, runId, requestOptions); + } + + /** + * Cancel an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> cancelRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + return this.serviceClient.cancelRunWithResponseAsync(monitorId, runId, requestOptions); + } + + /** + * List current insights for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
categoryStringNoFilter insights by category.
severityStringNoFilter insights by severity. Allowed values: "high", "medium", + * "low".
statusStringNoFilter insights by lifecycle status. Allowed values: "active", + * "resolved", "ignored".
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listInsights(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listInsightsAsync(monitorId, requestOptions); + } + + /** + * Get a full insight for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a full insight for an Agent Insights monitor along with {@link Response} on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getInsightWithResponse(String monitorId, String insightId, + RequestOptions requestOptions) { + return this.serviceClient.getInsightWithResponseAsync(monitorId, insightId, requestOptions); + } + + /** + * Update the lifecycle status of an insight. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/resolved/ignored) (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param update The insight fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a persisted issue discovered from an agent's traces along with {@link Response} on successful completion + * of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> updateInsightWithResponse(String monitorId, String insightId, BinaryData update, + RequestOptions requestOptions) { + return this.serviceClient.updateInsightWithResponseAsync(monitorId, insightId, update, requestOptions); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + * + * @param after A cursor that identifies the last item in the previous page. + * @param before A cursor that identifies the first item in the next page. + * @param limit The maximum number of items to return. Defaults to 20. + * @param order Sort order by creation time. Defaults to descending. + * @param agentName Filter monitors by agent name. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux list(String after, String before, Integer limit, PageOrder order, + String agentName) { + // Generated convenience method for list + RequestOptions requestOptions = new RequestOptions(); + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (agentName != null) { + requestOptions.addQueryParam("agent_name", agentName, false); + } + PagedFlux pagedFluxResponse = list(requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase( + pagedResponse.getRequest(), pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightMonitorListItem.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + * + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux list() { + // Generated convenience method for list + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = list(requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase( + pagedResponse.getRequest(), pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightMonitorListItem.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Create an Agent Insights monitor for an agent. + * + * @param monitor The monitor to create. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights on successful + * completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono create(AgentInsightMonitorCreate monitor) { + // Generated convenience method for createWithResponse + RequestOptions requestOptions = new RequestOptions(); + return createWithResponse(BinaryData.fromObject(monitor), requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightMonitor.class)); + } + + /** + * Get an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return an Agent Insights monitor on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono get(String monitorId) { + // Generated convenience method for getWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getWithResponse(monitorId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightMonitor.class)); + } + + /** + * Delete an Agent Insights monitor and all of its runs, insights, and state. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return A {@link Mono} that completes when a successful response is received. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono delete(String monitorId) { + // Generated convenience method for deleteWithResponse + RequestOptions requestOptions = new RequestOptions(); + return deleteWithResponse(monitorId, requestOptions).flatMap(FluxUtil::toMono); + } + + /** + * Update an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param monitor The monitor fields to update. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights on successful + * completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono update(String monitorId, AgentInsightMonitorUpdate monitor) { + // Generated convenience method for updateWithResponse + RequestOptions requestOptions = new RequestOptions(); + JsonMergePatchHelper.getAgentInsightMonitorUpdateAccessor().prepareModelForJsonMergePatch(monitor, true); + BinaryData monitorInBinaryData = BinaryData.fromObject(monitor); + // BinaryData.fromObject() will not fire serialization, use getLength() to fire serialization. + monitorInBinaryData.getLength(); + JsonMergePatchHelper.getAgentInsightMonitorUpdateAccessor().prepareModelForJsonMergePatch(monitor, false); + return updateWithResponse(monitorId, monitorInBinaryData, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightMonitor.class)); + } + + /** + * Reset an Agent Insights monitor's overview, checkpoint, and active insight state. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return A {@link Mono} that completes when a successful response is received. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono reset(String monitorId) { + // Generated convenience method for resetWithResponse + RequestOptions requestOptions = new RequestOptions(); + return resetWithResponse(monitorId, requestOptions).flatMap(FluxUtil::toMono); + } + + /** + * Start an Agent Insights run for a monitor. + * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the {@link PollerFlux} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public PollerFlux beginCreateRun(String monitorId, + AgentInsightRunCreate run) { + // Generated convenience method for beginCreateRunWithModel + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.beginCreateRunWithModelAsync(monitorId, BinaryData.fromObject(run), requestOptions); + } + + /** + * List Agent Insights runs for a monitor. + * + * @param monitorId The identifier of the monitor. + * @param after A cursor that identifies the last item in the previous page. + * @param before A cursor that identifies the first item in the next page. + * @param limit The maximum number of items to return. Defaults to 20. + * @param order Sort order by creation time. Defaults to descending. + * @param status Filter runs by status. + * @param trigger Filter runs by trigger. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listRuns(String monitorId, String after, String before, Integer limit, + PageOrder order, JobStatus status, AgentInsightRunTrigger trigger) { + // Generated convenience method for listRuns + RequestOptions requestOptions = new RequestOptions(); + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (trigger != null) { + requestOptions.addQueryParam("trigger", trigger.toString(), false); + } + PagedFlux pagedFluxResponse = listRuns(monitorId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightRun.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List Agent Insights runs for a monitor. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listRuns(String monitorId) { + // Generated convenience method for listRuns + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listRuns(monitorId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightRun.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Get an Agent Insights run. + * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return an Agent Insights run on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getRun(String monitorId, String runId) { + // Generated convenience method for getRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getRunWithResponse(monitorId, runId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightRun.class)); + } + + /** + * Cancel an Agent Insights run. + * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights on successful + * completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono cancelRun(String monitorId, String runId) { + // Generated convenience method for cancelRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return cancelRunWithResponse(monitorId, runId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsightRun.class)); + } + + /** + * List current insights for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param after A cursor that identifies the last item in the previous page. + * @param before A cursor that identifies the first item in the next page. + * @param limit The maximum number of items to return. Defaults to 20. + * @param order Sort order by creation time. Defaults to descending. + * @param category Filter insights by category. + * @param severity Filter insights by severity. + * @param status Filter insights by lifecycle status. + * @param includeDetails Whether to include expanded insight details such as evidence and run links in the response. + * Defaults to false. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listInsights(String monitorId, String after, String before, Integer limit, + PageOrder order, String category, AgentInsightSeverity severity, AgentInsightStatus status, + Boolean includeDetails) { + // Generated convenience method for listInsights + RequestOptions requestOptions = new RequestOptions(); + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (category != null) { + requestOptions.addQueryParam("category", category, false); + } + if (severity != null) { + requestOptions.addQueryParam("severity", severity.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (includeDetails != null) { + requestOptions.addQueryParam("include_details", String.valueOf(includeDetails), false); + } + PagedFlux pagedFluxResponse = listInsights(monitorId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsight.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List current insights for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listInsights(String monitorId) { + // Generated convenience method for listInsights + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listInsights(monitorId, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsight.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Get a full insight for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param includeDetails Whether to include expanded insight details such as evidence and run links in the response. + * Defaults to false. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a full insight for an Agent Insights monitor on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getInsight(String monitorId, String insightId, Boolean includeDetails) { + // Generated convenience method for getInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (includeDetails != null) { + requestOptions.addQueryParam("include_details", String.valueOf(includeDetails), false); + } + return getInsightWithResponse(monitorId, insightId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsight.class)); + } + + /** + * Get a full insight for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a full insight for an Agent Insights monitor on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getInsight(String monitorId, String insightId) { + // Generated convenience method for getInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getInsightWithResponse(monitorId, insightId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsight.class)); + } + + /** + * Update the lifecycle status of an insight. + * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param update The insight fields to update. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a persisted issue discovered from an agent's traces on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono updateInsight(String monitorId, String insightId, AgentInsightUpdate update) { + // Generated convenience method for updateInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + JsonMergePatchHelper.getAgentInsightUpdateAccessor().prepareModelForJsonMergePatch(update, true); + BinaryData updateInBinaryData = BinaryData.fromObject(update); + // BinaryData.fromObject() will not fire serialization, use getLength() to fire serialization. + updateInBinaryData.getLength(); + JsonMergePatchHelper.getAgentInsightUpdateAccessor().prepareModelForJsonMergePatch(update, false); + return updateInsightWithResponse(monitorId, insightId, updateInBinaryData, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(AgentInsight.class)); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsClient.java new file mode 100644 index 000000000000..1e255a91a8c6 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsClient.java @@ -0,0 +1,1344 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. +package com.azure.ai.projects; + +import com.azure.ai.agents.models.PageOrder; +import com.azure.ai.projects.implementation.BetaAgentInsightMonitorsImpl; +import com.azure.ai.projects.implementation.JsonMergePatchHelper; +import com.azure.ai.projects.implementation.utils.Beta; +import com.azure.ai.projects.models.AgentInsight; +import com.azure.ai.projects.models.AgentInsightMonitor; +import com.azure.ai.projects.models.AgentInsightMonitorCreate; +import com.azure.ai.projects.models.AgentInsightMonitorListItem; +import com.azure.ai.projects.models.AgentInsightMonitorUpdate; +import com.azure.ai.projects.models.AgentInsightRun; +import com.azure.ai.projects.models.AgentInsightRunCreate; +import com.azure.ai.projects.models.AgentInsightRunResult; +import com.azure.ai.projects.models.AgentInsightRunTrigger; +import com.azure.ai.projects.models.AgentInsightSeverity; +import com.azure.ai.projects.models.AgentInsightStatus; +import com.azure.ai.projects.models.AgentInsightUpdate; +import com.azure.ai.projects.models.JobStatus; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.PagedIterable; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.BinaryData; +import com.azure.core.util.polling.SyncPoller; + +/** + * Initializes a new instance of the synchronous AIProjectClient type. + */ +@ServiceClient(builder = AIProjectClientBuilder.class) +@Beta(warningText = "This class is in preview and may change in future releases.") +public final class BetaAgentInsightMonitorsClient { + + @Generated + private final BetaAgentInsightMonitorsImpl serviceClient; + + /** + * Initializes an instance of BetaAgentInsightMonitorsClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + BetaAgentInsightMonitorsClient(BetaAgentInsightMonitorsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + *

Query Parameters

+ * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
agent_nameStringNoFilter monitors by agent name.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable list(RequestOptions requestOptions) { + return this.serviceClient.list(requestOptions); + } + + /** + * Create an Agent Insights monitor for an agent. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agent_name: String (Required)
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
LocationStringURL of the created monitor.
+ * + * @param monitor The monitor to create. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response createWithResponse(BinaryData monitor, RequestOptions requestOptions) { + return this.serviceClient.createWithResponse(monitor, requestOptions); + } + + /** + * Get an Agent Insights monitor. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights monitor along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.getWithResponse(monitorId, requestOptions); + } + + /** + * Delete an Agent Insights monitor and all of its runs, insights, and state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response deleteWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.deleteWithResponse(monitorId, requestOptions); + } + + /** + * Update an Agent Insights monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Optional)
+     *     overview_override (Optional): {
+     *         content: String (Optional, Required on create)
+     *     }
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param monitor The monitor fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response updateWithResponse(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + return this.serviceClient.updateWithResponse(monitorId, monitor, requestOptions); + } + + /** + * Reset an Agent Insights monitor's overview, checkpoint, and active insight state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response resetWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.resetWithResponse(monitorId, requestOptions); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link SyncPoller} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public SyncPoller beginCreateRun(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return this.serviceClient.beginCreateRun(monitorId, run, requestOptions); + } + + /** + * List Agent Insights runs for a monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
statusStringNoFilter runs by status. Allowed values: "queued", "in_progress", + * "succeeded", "failed", "cancelled".
triggerStringNoFilter runs by trigger. Allowed values: "on_demand", + * "scheduled".
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listRuns(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listRuns(monitorId, requestOptions); + } + + /** + * Get an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights run along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getRunWithResponse(String monitorId, String runId, RequestOptions requestOptions) { + return this.serviceClient.getRunWithResponse(monitorId, runId, requestOptions); + } + + /** + * Cancel an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights along with + * {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response cancelRunWithResponse(String monitorId, String runId, RequestOptions requestOptions) { + return this.serviceClient.cancelRunWithResponse(monitorId, runId, requestOptions); + } + + /** + * List current insights for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
categoryStringNoFilter insights by category.
severityStringNoFilter insights by severity. Allowed values: "high", "medium", + * "low".
statusStringNoFilter insights by lifecycle status. Allowed values: "active", + * "resolved", "ignored".
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listInsights(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listInsights(monitorId, requestOptions); + } + + /** + * Get a full insight for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a full insight for an Agent Insights monitor along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getInsightWithResponse(String monitorId, String insightId, + RequestOptions requestOptions) { + return this.serviceClient.getInsightWithResponse(monitorId, insightId, requestOptions); + } + + /** + * Update the lifecycle status of an insight. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/resolved/ignored) (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param update The insight fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a persisted issue discovered from an agent's traces along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response updateInsightWithResponse(String monitorId, String insightId, BinaryData update, + RequestOptions requestOptions) { + return this.serviceClient.updateInsightWithResponse(monitorId, insightId, update, requestOptions); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + * + * @param after A cursor that identifies the last item in the previous page. + * @param before A cursor that identifies the first item in the next page. + * @param limit The maximum number of items to return. Defaults to 20. + * @param order Sort order by creation time. Defaults to descending. + * @param agentName Filter monitors by agent name. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable list(String after, String before, Integer limit, PageOrder order, + String agentName) { + // Generated convenience method for list + RequestOptions requestOptions = new RequestOptions(); + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (agentName != null) { + requestOptions.addQueryParam("agent_name", agentName, false); + } + return serviceClient.list(requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentInsightMonitorListItem.class)); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + * + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable list() { + // Generated convenience method for list + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.list(requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentInsightMonitorListItem.class)); + } + + /** + * Create an Agent Insights monitor for an agent. + * + * @param monitor The monitor to create. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsightMonitor create(AgentInsightMonitorCreate monitor) { + // Generated convenience method for createWithResponse + RequestOptions requestOptions = new RequestOptions(); + return createWithResponse(BinaryData.fromObject(monitor), requestOptions).getValue() + .toObject(AgentInsightMonitor.class); + } + + /** + * Get an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return an Agent Insights monitor. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsightMonitor get(String monitorId) { + // Generated convenience method for getWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getWithResponse(monitorId, requestOptions).getValue().toObject(AgentInsightMonitor.class); + } + + /** + * Delete an Agent Insights monitor and all of its runs, insights, and state. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public void delete(String monitorId) { + // Generated convenience method for deleteWithResponse + RequestOptions requestOptions = new RequestOptions(); + deleteWithResponse(monitorId, requestOptions).getValue(); + } + + /** + * Update an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param monitor The monitor fields to update. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsightMonitor update(String monitorId, AgentInsightMonitorUpdate monitor) { + // Generated convenience method for updateWithResponse + RequestOptions requestOptions = new RequestOptions(); + JsonMergePatchHelper.getAgentInsightMonitorUpdateAccessor().prepareModelForJsonMergePatch(monitor, true); + BinaryData monitorInBinaryData = BinaryData.fromObject(monitor); + // BinaryData.fromObject() will not fire serialization, use getLength() to fire serialization. + monitorInBinaryData.getLength(); + JsonMergePatchHelper.getAgentInsightMonitorUpdateAccessor().prepareModelForJsonMergePatch(monitor, false); + return updateWithResponse(monitorId, monitorInBinaryData, requestOptions).getValue() + .toObject(AgentInsightMonitor.class); + } + + /** + * Reset an Agent Insights monitor's overview, checkpoint, and active insight state. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public void reset(String monitorId) { + // Generated convenience method for resetWithResponse + RequestOptions requestOptions = new RequestOptions(); + resetWithResponse(monitorId, requestOptions).getValue(); + } + + /** + * Start an Agent Insights run for a monitor. + * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the {@link SyncPoller} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public SyncPoller beginCreateRun(String monitorId, + AgentInsightRunCreate run) { + // Generated convenience method for beginCreateRunWithModel + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.beginCreateRunWithModel(monitorId, BinaryData.fromObject(run), requestOptions); + } + + /** + * List Agent Insights runs for a monitor. + * + * @param monitorId The identifier of the monitor. + * @param after A cursor that identifies the last item in the previous page. + * @param before A cursor that identifies the first item in the next page. + * @param limit The maximum number of items to return. Defaults to 20. + * @param order Sort order by creation time. Defaults to descending. + * @param status Filter runs by status. + * @param trigger Filter runs by trigger. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listRuns(String monitorId, String after, String before, Integer limit, + PageOrder order, JobStatus status, AgentInsightRunTrigger trigger) { + // Generated convenience method for listRuns + RequestOptions requestOptions = new RequestOptions(); + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (trigger != null) { + requestOptions.addQueryParam("trigger", trigger.toString(), false); + } + return serviceClient.listRuns(monitorId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentInsightRun.class)); + } + + /** + * List Agent Insights runs for a monitor. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listRuns(String monitorId) { + // Generated convenience method for listRuns + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listRuns(monitorId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentInsightRun.class)); + } + + /** + * Get an Agent Insights run. + * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return an Agent Insights run. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsightRun getRun(String monitorId, String runId) { + // Generated convenience method for getRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getRunWithResponse(monitorId, runId, requestOptions).getValue().toObject(AgentInsightRun.class); + } + + /** + * Cancel an Agent Insights run. + * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsightRun cancelRun(String monitorId, String runId) { + // Generated convenience method for cancelRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return cancelRunWithResponse(monitorId, runId, requestOptions).getValue().toObject(AgentInsightRun.class); + } + + /** + * List current insights for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param after A cursor that identifies the last item in the previous page. + * @param before A cursor that identifies the first item in the next page. + * @param limit The maximum number of items to return. Defaults to 20. + * @param order Sort order by creation time. Defaults to descending. + * @param category Filter insights by category. + * @param severity Filter insights by severity. + * @param status Filter insights by lifecycle status. + * @param includeDetails Whether to include expanded insight details such as evidence and run links in the response. + * Defaults to false. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listInsights(String monitorId, String after, String before, Integer limit, + PageOrder order, String category, AgentInsightSeverity severity, AgentInsightStatus status, + Boolean includeDetails) { + // Generated convenience method for listInsights + RequestOptions requestOptions = new RequestOptions(); + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (category != null) { + requestOptions.addQueryParam("category", category, false); + } + if (severity != null) { + requestOptions.addQueryParam("severity", severity.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (includeDetails != null) { + requestOptions.addQueryParam("include_details", String.valueOf(includeDetails), false); + } + return serviceClient.listInsights(monitorId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentInsight.class)); + } + + /** + * List current insights for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listInsights(String monitorId) { + // Generated convenience method for listInsights + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listInsights(monitorId, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentInsight.class)); + } + + /** + * Get a full insight for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param includeDetails Whether to include expanded insight details such as evidence and run links in the response. + * Defaults to false. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a full insight for an Agent Insights monitor. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsight getInsight(String monitorId, String insightId, Boolean includeDetails) { + // Generated convenience method for getInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (includeDetails != null) { + requestOptions.addQueryParam("include_details", String.valueOf(includeDetails), false); + } + return getInsightWithResponse(monitorId, insightId, requestOptions).getValue().toObject(AgentInsight.class); + } + + /** + * Get a full insight for an Agent Insights monitor. + * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a full insight for an Agent Insights monitor. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsight getInsight(String monitorId, String insightId) { + // Generated convenience method for getInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getInsightWithResponse(monitorId, insightId, requestOptions).getValue().toObject(AgentInsight.class); + } + + /** + * Update the lifecycle status of an insight. + * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param update The insight fields to update. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a persisted issue discovered from an agent's traces. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentInsight updateInsight(String monitorId, String insightId, AgentInsightUpdate update) { + // Generated convenience method for updateInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + JsonMergePatchHelper.getAgentInsightUpdateAccessor().prepareModelForJsonMergePatch(update, true); + BinaryData updateInBinaryData = BinaryData.fromObject(update); + // BinaryData.fromObject() will not fire serialization, use getLength() to fire serialization. + updateInBinaryData.getLength(); + JsonMergePatchHelper.getAgentInsightUpdateAccessor().prepareModelForJsonMergePatch(update, false); + return updateInsightWithResponse(monitorId, insightId, updateInBinaryData, requestOptions).getValue() + .toObject(AgentInsight.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java index 1d3df70e1327..66c8bc3a5d14 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java @@ -11,6 +11,7 @@ import com.azure.ai.projects.models.DispatchRoutineResult; import com.azure.ai.projects.models.Routine; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; import com.azure.ai.projects.models.RoutineDispatchPayload; import com.azure.ai.projects.models.RoutineRun; import com.azure.ai.projects.models.RoutineTrigger; @@ -59,7 +60,7 @@ public final class BetaRoutinesAsyncClient { * * Creates a new routine or replaces an existing routine with the supplied definition. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -73,12 +74,15 @@ public final class BetaRoutinesAsyncClient {
      *     action (Optional): {
      *         type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required)
      *     }
+     *     authorization (Optional): {
+     *         identity: String(agent/creator) (Optional)
+     *     }
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -122,7 +126,7 @@ public Mono> createOrUpdateRoutineWithResponse(String routi
      *
      * Retrieves the specified routine and its current configuration.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -165,7 +169,7 @@ public Mono> getRoutineWithResponse(String routineName, Req
      *
      * Enables the specified routine so it can be dispatched.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -206,7 +210,7 @@ public Mono> enableRoutineWithResponse(String routineName,
      *
      * Disables the specified routine so it no longer runs.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -259,7 +263,7 @@ public Mono> disableRoutineWithResponse(String routineName,
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -331,7 +335,7 @@ public Mono> deleteRoutineWithResponse(String routineName, Reques
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -383,7 +387,7 @@ public PagedFlux listRoutineRuns(String routineName, RequestOptions
      *
      * Queues an asynchronous dispatch for the specified routine.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -393,9 +397,9 @@ public PagedFlux listRoutineRuns(String routineName, RequestOptions
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -424,41 +428,6 @@ public Mono> dispatchRoutineWithResponse(String routineName
             requestOptions);
     }
 
-    /**
-     * Create or update a routine
-     *
-     * Creates a new routine or replaces an existing routine with the supplied definition.
-     *
-     * @param routineName The unique name of the routine.
-     * @param description A human-readable description of the routine.
-     * @param enabled Whether the routine is enabled.
-     * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported.
-     * @param action The action executed when the routine fires.
-     * @throws IllegalArgumentException thrown if parameters fail the validation.
-     * @throws HttpResponseException thrown if the request is rejected by server.
-     * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
-     * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
-     * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
-     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return a routine definition returned by the service on successful completion of {@link Mono}.
-     */
-    @Generated
-    @ServiceMethod(returns = ReturnType.SINGLE)
-    public Mono createOrUpdateRoutine(String routineName, String description, Boolean enabled,
-        Map triggers, RoutineAction action) {
-        // Generated convenience method for createOrUpdateRoutineWithResponse
-        RequestOptions requestOptions = new RequestOptions();
-        CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj
-            = new CreateOrUpdateRoutineRequest().setDescription(description)
-                .setEnabled(enabled)
-                .setTriggers(triggers)
-                .setAction(action);
-        BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj);
-        return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions)
-            .flatMap(FluxUtil::toMono)
-            .map(protocolMethodData -> protocolMethodData.toObject(Routine.class));
-    }
-
     /**
      * Create or update a routine
      *
@@ -797,4 +766,42 @@ public PagedFlux listRoutineRuns(String routineName, String filter,
                 pagedResponse.getContinuationToken(), null));
         });
     }
+
+    /**
+     * Create or update a routine
+     *
+     * Creates a new routine or replaces an existing routine with the supplied definition.
+     *
+     * @param routineName The unique name of the routine.
+     * @param description A human-readable description of the routine.
+     * @param enabled Whether the routine is enabled.
+     * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported.
+     * @param action The action executed when the routine fires.
+     * @param authorization Optional authorization configuration for dispatching a newly created routine. Ignored when
+     * updating an existing routine.
+     * @throws IllegalArgumentException thrown if parameters fail the validation.
+     * @throws HttpResponseException thrown if the request is rejected by server.
+     * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
+     * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
+     * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
+     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+     * @return a routine definition returned by the service on successful completion of {@link Mono}.
+     */
+    @Generated
+    @ServiceMethod(returns = ReturnType.SINGLE)
+    public Mono createOrUpdateRoutine(String routineName, String description, Boolean enabled,
+        Map triggers, RoutineAction action, RoutineAuthorization authorization) {
+        // Generated convenience method for createOrUpdateRoutineWithResponse
+        RequestOptions requestOptions = new RequestOptions();
+        CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj
+            = new CreateOrUpdateRoutineRequest().setDescription(description)
+                .setEnabled(enabled)
+                .setTriggers(triggers)
+                .setAction(action)
+                .setAuthorization(authorization);
+        BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj);
+        return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions)
+            .flatMap(FluxUtil::toMono)
+            .map(protocolMethodData -> protocolMethodData.toObject(Routine.class));
+    }
 }
diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java
index 3342e636e346..1e83b6b031b3 100644
--- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java
+++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java
@@ -11,6 +11,7 @@
 import com.azure.ai.projects.models.DispatchRoutineResult;
 import com.azure.ai.projects.models.Routine;
 import com.azure.ai.projects.models.RoutineAction;
+import com.azure.ai.projects.models.RoutineAuthorization;
 import com.azure.ai.projects.models.RoutineDispatchPayload;
 import com.azure.ai.projects.models.RoutineRun;
 import com.azure.ai.projects.models.RoutineTrigger;
@@ -53,7 +54,7 @@ public final class BetaRoutinesClient {
      *
      * Creates a new routine or replaces an existing routine with the supplied definition.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -67,12 +68,15 @@ public final class BetaRoutinesClient {
      *     action (Optional): {
      *         type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required)
      *     }
+     *     authorization (Optional): {
+     *         identity: String(agent/creator) (Optional)
+     *     }
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -115,7 +119,7 @@ public Response createOrUpdateRoutineWithResponse(String routineName
      *
      * Retrieves the specified routine and its current configuration.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -157,7 +161,7 @@ public Response getRoutineWithResponse(String routineName, RequestOp
      *
      * Enables the specified routine so it can be dispatched.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -197,7 +201,7 @@ public Response enableRoutineWithResponse(String routineName, Reques
      *
      * Disables the specified routine so it no longer runs.
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -249,7 +253,7 @@ public Response disableRoutineWithResponse(String routineName, Reque
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -321,7 +325,7 @@ public Response deleteRoutineWithResponse(String routineName, RequestOptio
      * 
      * You can add these to a request with {@link RequestOptions#addQueryParam}
      * 

Response Body Schema

- * + * *
      * {@code
      * {
@@ -373,7 +377,7 @@ public PagedIterable listRoutineRuns(String routineName, RequestOpti
      *
      * Queues an asynchronous dispatch for the specified routine.
      * 

Request Body Schema

- * + * *
      * {@code
      * {
@@ -383,9 +387,9 @@ public PagedIterable listRoutineRuns(String routineName, RequestOpti
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -412,40 +416,6 @@ public Response dispatchRoutineWithResponse(String routineName, Bina
         return this.serviceClient.dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions);
     }
 
-    /**
-     * Create or update a routine
-     *
-     * Creates a new routine or replaces an existing routine with the supplied definition.
-     *
-     * @param routineName The unique name of the routine.
-     * @param description A human-readable description of the routine.
-     * @param enabled Whether the routine is enabled.
-     * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported.
-     * @param action The action executed when the routine fires.
-     * @throws IllegalArgumentException thrown if parameters fail the validation.
-     * @throws HttpResponseException thrown if the request is rejected by server.
-     * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
-     * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
-     * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
-     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
-     * @return a routine definition returned by the service.
-     */
-    @Generated
-    @ServiceMethod(returns = ReturnType.SINGLE)
-    public Routine createOrUpdateRoutine(String routineName, String description, Boolean enabled,
-        Map triggers, RoutineAction action) {
-        // Generated convenience method for createOrUpdateRoutineWithResponse
-        RequestOptions requestOptions = new RequestOptions();
-        CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj
-            = new CreateOrUpdateRoutineRequest().setDescription(description)
-                .setEnabled(enabled)
-                .setTriggers(triggers)
-                .setAction(action);
-        BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj);
-        return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions).getValue()
-            .toObject(Routine.class);
-    }
-
     /**
      * Create or update a routine
      *
@@ -733,4 +703,41 @@ public PagedIterable listRoutineRuns(String routineName, String filt
         return serviceClient.listRoutineRuns(routineName, requestOptions)
             .mapPage(bodyItemValue -> bodyItemValue.toObject(RoutineRun.class));
     }
+
+    /**
+     * Create or update a routine
+     *
+     * Creates a new routine or replaces an existing routine with the supplied definition.
+     *
+     * @param routineName The unique name of the routine.
+     * @param description A human-readable description of the routine.
+     * @param enabled Whether the routine is enabled.
+     * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported.
+     * @param action The action executed when the routine fires.
+     * @param authorization Optional authorization configuration for dispatching a newly created routine. Ignored when
+     * updating an existing routine.
+     * @throws IllegalArgumentException thrown if parameters fail the validation.
+     * @throws HttpResponseException thrown if the request is rejected by server.
+     * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401.
+     * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404.
+     * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409.
+     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+     * @return a routine definition returned by the service.
+     */
+    @Generated
+    @ServiceMethod(returns = ReturnType.SINGLE)
+    public Routine createOrUpdateRoutine(String routineName, String description, Boolean enabled,
+        Map triggers, RoutineAction action, RoutineAuthorization authorization) {
+        // Generated convenience method for createOrUpdateRoutineWithResponse
+        RequestOptions requestOptions = new RequestOptions();
+        CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj
+            = new CreateOrUpdateRoutineRequest().setDescription(description)
+                .setEnabled(enabled)
+                .setTriggers(triggers)
+                .setAction(action)
+                .setAuthorization(authorization);
+        BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj);
+        return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions).getValue()
+            .toObject(Routine.class);
+    }
 }
diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/AIProjectClientImpl.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/AIProjectClientImpl.java
index 8ba5deb0439d..1e1a3a1f40d0 100644
--- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/AIProjectClientImpl.java
+++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/AIProjectClientImpl.java
@@ -31,7 +31,7 @@ public final class AIProjectClientImpl {
      * If you only have one Project in your Foundry Hub, or to target the default Project
      * in your Hub, use the form
      * "https://{ai-services-account-name}.services.ai.azure.com/api/projects/_project".
-     * 
+     *
      * @return the endpoint value.
      */
     public String getEndpoint() {
@@ -45,7 +45,7 @@ public String getEndpoint() {
 
     /**
      * Gets Service version.
-     * 
+     *
      * @return the serviceVersion value.
      */
     public AIProjectsServiceVersion getServiceVersion() {
@@ -59,7 +59,7 @@ public AIProjectsServiceVersion getServiceVersion() {
 
     /**
      * Gets The HTTP pipeline to send requests through.
-     * 
+     *
      * @return the httpPipeline value.
      */
     public HttpPipeline getHttpPipeline() {
@@ -73,13 +73,27 @@ public HttpPipeline getHttpPipeline() {
 
     /**
      * Gets The serializer to serialize an object into a string.
-     * 
+     *
      * @return the serializerAdapter value.
      */
     public SerializerAdapter getSerializerAdapter() {
         return this.serializerAdapter;
     }
 
+    /**
+     * The BetaAgentInsightMonitorsImpl object to access its operations.
+     */
+    private final BetaAgentInsightMonitorsImpl betaAgentInsightMonitors;
+
+    /**
+     * Gets the BetaAgentInsightMonitorsImpl object to access its operations.
+     *
+     * @return the BetaAgentInsightMonitorsImpl object.
+     */
+    public BetaAgentInsightMonitorsImpl getBetaAgentInsightMonitors() {
+        return this.betaAgentInsightMonitors;
+    }
+
     /**
      * The BetaModelsImpl object to access its operations.
      */
@@ -87,7 +101,7 @@ public SerializerAdapter getSerializerAdapter() {
 
     /**
      * Gets the BetaModelsImpl object to access its operations.
-     * 
+     *
      * @return the BetaModelsImpl object.
      */
     public BetaModelsImpl getBetaModels() {
@@ -101,7 +115,7 @@ public BetaModelsImpl getBetaModels() {
 
     /**
      * Gets the BetaRedTeamsImpl object to access its operations.
-     * 
+     *
      * @return the BetaRedTeamsImpl object.
      */
     public BetaRedTeamsImpl getBetaRedTeams() {
@@ -115,7 +129,7 @@ public BetaRedTeamsImpl getBetaRedTeams() {
 
     /**
      * Gets the BetaEvaluationTaxonomiesImpl object to access its operations.
-     * 
+     *
      * @return the BetaEvaluationTaxonomiesImpl object.
      */
     public BetaEvaluationTaxonomiesImpl getBetaEvaluationTaxonomies() {
@@ -129,7 +143,7 @@ public BetaEvaluationTaxonomiesImpl getBetaEvaluationTaxonomies() {
 
     /**
      * Gets the BetaEvaluatorsImpl object to access its operations.
-     * 
+     *
      * @return the BetaEvaluatorsImpl object.
      */
     public BetaEvaluatorsImpl getBetaEvaluators() {
@@ -143,7 +157,7 @@ public BetaEvaluatorsImpl getBetaEvaluators() {
 
     /**
      * Gets the BetaInsightsImpl object to access its operations.
-     * 
+     *
      * @return the BetaInsightsImpl object.
      */
     public BetaInsightsImpl getBetaInsights() {
@@ -157,7 +171,7 @@ public BetaInsightsImpl getBetaInsights() {
 
     /**
      * Gets the BetaSchedulesImpl object to access its operations.
-     * 
+     *
      * @return the BetaSchedulesImpl object.
      */
     public BetaSchedulesImpl getBetaSchedules() {
@@ -171,7 +185,7 @@ public BetaSchedulesImpl getBetaSchedules() {
 
     /**
      * Gets the BetaRoutinesImpl object to access its operations.
-     * 
+     *
      * @return the BetaRoutinesImpl object.
      */
     public BetaRoutinesImpl getBetaRoutines() {
@@ -185,7 +199,7 @@ public BetaRoutinesImpl getBetaRoutines() {
 
     /**
      * Gets the BetaSkillsImpl object to access its operations.
-     * 
+     *
      * @return the BetaSkillsImpl object.
      */
     public BetaSkillsImpl getBetaSkills() {
@@ -199,7 +213,7 @@ public BetaSkillsImpl getBetaSkills() {
 
     /**
      * Gets the BetaDatasetsImpl object to access its operations.
-     * 
+     *
      * @return the BetaDatasetsImpl object.
      */
     public BetaDatasetsImpl getBetaDatasets() {
@@ -213,7 +227,7 @@ public BetaDatasetsImpl getBetaDatasets() {
 
     /**
      * Gets the ConnectionsImpl object to access its operations.
-     * 
+     *
      * @return the ConnectionsImpl object.
      */
     public ConnectionsImpl getConnections() {
@@ -227,7 +241,7 @@ public ConnectionsImpl getConnections() {
 
     /**
      * Gets the DatasetsImpl object to access its operations.
-     * 
+     *
      * @return the DatasetsImpl object.
      */
     public DatasetsImpl getDatasets() {
@@ -241,7 +255,7 @@ public DatasetsImpl getDatasets() {
 
     /**
      * Gets the IndexesImpl object to access its operations.
-     * 
+     *
      * @return the IndexesImpl object.
      */
     public IndexesImpl getIndexes() {
@@ -255,7 +269,7 @@ public IndexesImpl getIndexes() {
 
     /**
      * Gets the DeploymentsImpl object to access its operations.
-     * 
+     *
      * @return the DeploymentsImpl object.
      */
     public DeploymentsImpl getDeployments() {
@@ -269,7 +283,7 @@ public DeploymentsImpl getDeployments() {
 
     /**
      * Gets the EvaluationRulesImpl object to access its operations.
-     * 
+     *
      * @return the EvaluationRulesImpl object.
      */
     public EvaluationRulesImpl getEvaluationRules() {
@@ -278,7 +292,7 @@ public EvaluationRulesImpl getEvaluationRules() {
 
     /**
      * Initializes an instance of AIProjectClient client.
-     * 
+     *
      * @param endpoint Foundry Project endpoint in the form
      * "https://{ai-services-account-name}.services.ai.azure.com/api/projects/{project-name}".
      * If you only have one Project in your Foundry Hub, or to target the default Project
@@ -293,7 +307,7 @@ public AIProjectClientImpl(String endpoint, AIProjectsServiceVersion serviceVers
 
     /**
      * Initializes an instance of AIProjectClient client.
-     * 
+     *
      * @param httpPipeline The HTTP pipeline to send requests through.
      * @param endpoint Foundry Project endpoint in the form
      * "https://{ai-services-account-name}.services.ai.azure.com/api/projects/{project-name}".
@@ -308,7 +322,7 @@ public AIProjectClientImpl(HttpPipeline httpPipeline, String endpoint, AIProject
 
     /**
      * Initializes an instance of AIProjectClient client.
-     * 
+     *
      * @param httpPipeline The HTTP pipeline to send requests through.
      * @param serializerAdapter The serializer to serialize an object into a string.
      * @param endpoint Foundry Project endpoint in the form
@@ -324,6 +338,7 @@ public AIProjectClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializ
         this.serializerAdapter = serializerAdapter;
         this.endpoint = endpoint;
         this.serviceVersion = serviceVersion;
+        this.betaAgentInsightMonitors = new BetaAgentInsightMonitorsImpl(this);
         this.betaModels = new BetaModelsImpl(this);
         this.betaRedTeams = new BetaRedTeamsImpl(this);
         this.betaEvaluationTaxonomies = new BetaEvaluationTaxonomiesImpl(this);
diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaAgentInsightMonitorsImpl.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaAgentInsightMonitorsImpl.java
new file mode 100644
index 000000000000..0c173f4a61e9
--- /dev/null
+++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaAgentInsightMonitorsImpl.java
@@ -0,0 +1,2940 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) TypeSpec Code Generator.
+
+package com.azure.ai.projects.implementation;
+
+import com.azure.ai.projects.AIProjectsServiceVersion;
+import com.azure.ai.projects.models.AgentInsightRun;
+import com.azure.ai.projects.models.AgentInsightRunResult;
+import com.azure.core.annotation.BodyParam;
+import com.azure.core.annotation.Delete;
+import com.azure.core.annotation.ExpectedResponses;
+import com.azure.core.annotation.Get;
+import com.azure.core.annotation.HeaderParam;
+import com.azure.core.annotation.Host;
+import com.azure.core.annotation.HostParam;
+import com.azure.core.annotation.Patch;
+import com.azure.core.annotation.PathParam;
+import com.azure.core.annotation.Post;
+import com.azure.core.annotation.QueryParam;
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceInterface;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.annotation.UnexpectedResponseExceptionType;
+import com.azure.core.exception.ClientAuthenticationException;
+import com.azure.core.exception.HttpResponseException;
+import com.azure.core.exception.ResourceModifiedException;
+import com.azure.core.exception.ResourceNotFoundException;
+import com.azure.core.http.rest.PagedFlux;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.PagedResponse;
+import com.azure.core.http.rest.PagedResponseBase;
+import com.azure.core.http.rest.RequestOptions;
+import com.azure.core.http.rest.Response;
+import com.azure.core.http.rest.RestProxy;
+import com.azure.core.util.BinaryData;
+import com.azure.core.util.Context;
+import com.azure.core.util.FluxUtil;
+import com.azure.core.util.polling.PollerFlux;
+import com.azure.core.util.polling.PollingStrategyOptions;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.core.util.serializer.TypeReference;
+import java.time.Duration;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import reactor.core.publisher.Mono;
+
+/**
+ * An instance of this class provides access to all the operations defined in BetaAgentInsightMonitors.
+ */
+public final class BetaAgentInsightMonitorsImpl {
+    /**
+     * The proxy service used to perform REST calls.
+     */
+    private final BetaAgentInsightMonitorsService service;
+
+    /**
+     * The service client containing this operation class.
+     */
+    private final AIProjectClientImpl client;
+
+    /**
+     * Initializes an instance of BetaAgentInsightMonitorsImpl.
+     *
+     * @param client the instance of the service client containing this operation class.
+     */
+    BetaAgentInsightMonitorsImpl(AIProjectClientImpl client) {
+        this.service = RestProxy.create(BetaAgentInsightMonitorsService.class, client.getHttpPipeline(),
+            client.getSerializerAdapter());
+        this.client = client;
+    }
+
+    /**
+     * Gets Service version.
+     *
+     * @return the serviceVersion value.
+     */
+    public AIProjectsServiceVersion getServiceVersion() {
+        return client.getServiceVersion();
+    }
+
+    /**
+     * The interface defining all the services for AIProjectClientBetaAgentInsightMonitors to be used by the proxy
+     * service to perform REST calls.
+     */
+    @Host("{endpoint}")
+    @ServiceInterface(name = "AIProjectClientBetaAgentInsightMonitors")
+    public interface BetaAgentInsightMonitorsService {
+        @Get("/agent_insight_monitors")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> list(@HostParam("endpoint") String endpoint,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response listSync(@HostParam("endpoint") String endpoint,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors")
+        @ExpectedResponses({ 201 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> create(@HostParam("endpoint") String endpoint,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType,
+            @HeaderParam("Accept") String accept, @BodyParam("application/json") BinaryData monitor,
+            RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors")
+        @ExpectedResponses({ 201 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response createSync(@HostParam("endpoint") String endpoint,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType,
+            @HeaderParam("Accept") String accept, @BodyParam("application/json") BinaryData monitor,
+            RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> get(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response getSync(@HostParam("endpoint") String endpoint, @PathParam("monitor_id") String monitorId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Delete("/agent_insight_monitors/{monitor_id}")
+        @ExpectedResponses({ 204 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> delete(@HostParam("endpoint") String endpoint, @PathParam("monitor_id") String monitorId,
+            @QueryParam("api-version") String apiVersion, RequestOptions requestOptions, Context context);
+
+        @Delete("/agent_insight_monitors/{monitor_id}")
+        @ExpectedResponses({ 204 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response deleteSync(@HostParam("endpoint") String endpoint, @PathParam("monitor_id") String monitorId,
+            @QueryParam("api-version") String apiVersion, RequestOptions requestOptions, Context context);
+
+        @Patch("/agent_insight_monitors/{monitor_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> update(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @HeaderParam("Content-Type") String contentType,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            @BodyParam("application/merge-patch+json") BinaryData monitor, RequestOptions requestOptions,
+            Context context);
+
+        @Patch("/agent_insight_monitors/{monitor_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response updateSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @HeaderParam("Content-Type") String contentType,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            @BodyParam("application/merge-patch+json") BinaryData monitor, RequestOptions requestOptions,
+            Context context);
+
+        @Post("/agent_insight_monitors/{monitor_id}:reset")
+        @ExpectedResponses({ 204 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> reset(@HostParam("endpoint") String endpoint, @PathParam("monitor_id") String monitorId,
+            @QueryParam("api-version") String apiVersion, RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors/{monitor_id}:reset")
+        @ExpectedResponses({ 204 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response resetSync(@HostParam("endpoint") String endpoint, @PathParam("monitor_id") String monitorId,
+            @QueryParam("api-version") String apiVersion, RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors/{monitor_id}/runs")
+        @ExpectedResponses({ 201 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> createRun(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Content-Type") String contentType, @HeaderParam("Accept") String accept,
+            @BodyParam("application/json") BinaryData run, RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors/{monitor_id}/runs")
+        @ExpectedResponses({ 201 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response createRunSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Content-Type") String contentType, @HeaderParam("Accept") String accept,
+            @BodyParam("application/json") BinaryData run, RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/runs")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> listRuns(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/runs")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response listRunsSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/runs/{run_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> getRun(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("run_id") String runId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/runs/{run_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response getRunSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("run_id") String runId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors/{monitor_id}/runs/{run_id}:cancel")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> cancelRun(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("run_id") String runId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Post("/agent_insight_monitors/{monitor_id}/runs/{run_id}:cancel")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response cancelRunSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("run_id") String runId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/insights")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> listInsights(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/insights")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response listInsightsSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/insights/{insight_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> getInsight(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("insight_id") String insightId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Get("/agent_insight_monitors/{monitor_id}/insights/{insight_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response getInsightSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("insight_id") String insightId,
+            @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept,
+            RequestOptions requestOptions, Context context);
+
+        @Patch("/agent_insight_monitors/{monitor_id}/insights/{insight_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Mono> updateInsight(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("insight_id") String insightId,
+            @HeaderParam("Content-Type") String contentType, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, @BodyParam("application/merge-patch+json") BinaryData update,
+            RequestOptions requestOptions, Context context);
+
+        @Patch("/agent_insight_monitors/{monitor_id}/insights/{insight_id}")
+        @ExpectedResponses({ 200 })
+        @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 })
+        @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 })
+        @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 })
+        @UnexpectedResponseExceptionType(HttpResponseException.class)
+        Response updateInsightSync(@HostParam("endpoint") String endpoint,
+            @PathParam("monitor_id") String monitorId, @PathParam("insight_id") String insightId,
+            @HeaderParam("Content-Type") String contentType, @QueryParam("api-version") String apiVersion,
+            @HeaderParam("Accept") String accept, @BodyParam("application/merge-patch+json") BinaryData update,
+            RequestOptions requestOptions, Context context);
+    }
+
+    /**
+     * List Agent Insights monitors, optionally filtered by agent name.
+     * 

Query Parameters

+ * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
agent_nameStringNoFilter monitors by agent name.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listSinglePageAsync(RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.list(this.client.getEndpoint(), + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + *

Query Parameters

+ * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
agent_nameStringNoFilter monitors by agent name.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listAsync(RequestOptions requestOptions) { + return new PagedFlux<>(() -> listSinglePageAsync(requestOptions)); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + *

Query Parameters

+ * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
agent_nameStringNoFilter monitors by agent name.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listSinglePage(RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listSync(this.client.getEndpoint(), + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List Agent Insights monitors, optionally filtered by agent name. + *

Query Parameters

+ * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
agent_nameStringNoFilter monitors by agent name.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable list(RequestOptions requestOptions) { + return new PagedIterable<>(() -> listSinglePage(requestOptions)); + } + + /** + * Create an Agent Insights monitor for an agent. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agent_name: String (Required)
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
LocationStringURL of the created monitor.
+ * + * @param monitor The monitor to create. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> createWithResponseAsync(BinaryData monitor, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.create(this.client.getEndpoint(), + this.client.getServiceVersion().getVersion(), contentType, accept, monitor, requestOptions, context)); + } + + /** + * Create an Agent Insights monitor for an agent. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     agent_name: String (Required)
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
LocationStringURL of the created monitor.
+ * + * @param monitor The monitor to create. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response createWithResponse(BinaryData monitor, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.createSync(this.client.getEndpoint(), this.client.getServiceVersion().getVersion(), contentType, + accept, monitor, requestOptions, Context.NONE); + } + + /** + * Get an Agent Insights monitor. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights monitor along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getWithResponseAsync(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.get(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get an Agent Insights monitor. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights monitor along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getWithResponse(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getSync(this.client.getEndpoint(), monitorId, this.client.getServiceVersion().getVersion(), + accept, requestOptions, Context.NONE); + } + + /** + * Delete an Agent Insights monitor and all of its runs, insights, and state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> deleteWithResponseAsync(String monitorId, RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.delete(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), requestOptions, context)); + } + + /** + * Delete an Agent Insights monitor and all of its runs, insights, and state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response deleteWithResponse(String monitorId, RequestOptions requestOptions) { + return service.deleteSync(this.client.getEndpoint(), monitorId, this.client.getServiceVersion().getVersion(), + requestOptions, Context.NONE); + } + + /** + * Update an Agent Insights monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Optional)
+     *     overview_override (Optional): {
+     *         content: String (Optional, Required on create)
+     *     }
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param monitor The monitor fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> updateWithResponseAsync(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.update(this.client.getEndpoint(), monitorId, contentType, + this.client.getServiceVersion().getVersion(), accept, monitor, requestOptions, context)); + } + + /** + * Update an Agent Insights monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     enabled: Boolean (Optional)
+     *     run_interval_hours: Double (Optional)
+     *     model_deployment_name: String (Optional)
+     *     overview_override (Optional): {
+     *         content: String (Optional, Required on create)
+     *     }
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     agent_name: String (Required)
+     *     enabled: boolean (Required)
+     *     run_interval_hours: double (Required)
+     *     model_deployment_name: String (Required)
+     *     next_scheduled_run_at: Long (Optional)
+     *     estimated_cost (Optional): {
+     *         amount: double (Required)
+     *         currency: String (Required)
+     *     }
+     *     suspension (Required): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         occurred_at: long (Required)
+     *         details (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     overview (Required): {
+     *         content: String (Required)
+     *         source: String(generated/user_override) (Required)
+     *         updated_at: long (Required)
+     *     }
+     *     updated_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param monitor The monitor fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a per-agent Agent Insights monitor that owns configuration, runs, and discovered insights along with + * {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response updateWithResponse(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return service.updateSync(this.client.getEndpoint(), monitorId, contentType, + this.client.getServiceVersion().getVersion(), accept, monitor, requestOptions, Context.NONE); + } + + /** + * Reset an Agent Insights monitor's overview, checkpoint, and active insight state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> resetWithResponseAsync(String monitorId, RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.reset(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), requestOptions, context)); + } + + /** + * Reset an Agent Insights monitor's overview, checkpoint, and active insight state. + * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response resetWithResponse(String monitorId, RequestOptions requestOptions) { + return service.resetSync(this.client.getEndpoint(), monitorId, this.client.getServiceVersion().getVersion(), + requestOptions, Context.NONE); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> createRunWithResponseAsync(String monitorId, BinaryData run, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.createRun(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), contentType, accept, run, requestOptions, context)); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights along with + * {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Response createRunWithResponse(String monitorId, BinaryData run, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.createRunSync(this.client.getEndpoint(), monitorId, this.client.getServiceVersion().getVersion(), + contentType, accept, run, requestOptions, Context.NONE); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link PollerFlux} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public PollerFlux beginCreateRunWithModelAsync(String monitorId, + BinaryData run, RequestOptions requestOptions) { + return PollerFlux.create(Duration.ofSeconds(1), + () -> this.createRunWithResponseAsync(monitorId, run, requestOptions), + new com.azure.ai.projects.implementation.OperationLocationPollingStrategy<>( + new PollingStrategyOptions(this.client.getHttpPipeline()) + .setEndpoint("{endpoint}".replace("{endpoint}", this.client.getEndpoint())) + .setContext(requestOptions != null && requestOptions.getContext() != null + ? requestOptions.getContext() + : Context.NONE) + .setServiceVersion(this.client.getServiceVersion().getVersion()), + "result"), + TypeReference.createInstance(AgentInsightRun.class), + TypeReference.createInstance(AgentInsightRunResult.class)); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link SyncPoller} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public SyncPoller beginCreateRunWithModel(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return SyncPoller.createPoller(Duration.ofSeconds(1), + () -> this.createRunWithResponse(monitorId, run, requestOptions), + new com.azure.ai.projects.implementation.SyncOperationLocationPollingStrategy<>( + new PollingStrategyOptions(this.client.getHttpPipeline()) + .setEndpoint("{endpoint}".replace("{endpoint}", this.client.getEndpoint())) + .setContext(requestOptions != null && requestOptions.getContext() != null + ? requestOptions.getContext() + : Context.NONE) + .setServiceVersion(this.client.getServiceVersion().getVersion()), + "result"), + TypeReference.createInstance(AgentInsightRun.class), + TypeReference.createInstance(AgentInsightRunResult.class)); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link PollerFlux} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public PollerFlux beginCreateRunAsync(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return PollerFlux.create(Duration.ofSeconds(1), + () -> this.createRunWithResponseAsync(monitorId, run, requestOptions), + new com.azure.ai.projects.implementation.OperationLocationPollingStrategy<>( + new PollingStrategyOptions(this.client.getHttpPipeline()) + .setEndpoint("{endpoint}".replace("{endpoint}", this.client.getEndpoint())) + .setContext(requestOptions != null && requestOptions.getContext() != null + ? requestOptions.getContext() + : Context.NONE) + .setServiceVersion(this.client.getServiceVersion().getVersion()), + "result"), + TypeReference.createInstance(BinaryData.class), TypeReference.createInstance(BinaryData.class)); + } + + /** + * Start an Agent Insights run for a monitor. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     lookback_hours: Double (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param run Run inputs. Send an empty object to use the default 168-hour lookback window. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the {@link SyncPoller} for polling of a long-running run that analyzes one agent's traces and updates + * that agent's insights. + */ + @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION) + public SyncPoller beginCreateRun(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return SyncPoller.createPoller(Duration.ofSeconds(1), + () -> this.createRunWithResponse(monitorId, run, requestOptions), + new com.azure.ai.projects.implementation.SyncOperationLocationPollingStrategy<>( + new PollingStrategyOptions(this.client.getHttpPipeline()) + .setEndpoint("{endpoint}".replace("{endpoint}", this.client.getEndpoint())) + .setContext(requestOptions != null && requestOptions.getContext() != null + ? requestOptions.getContext() + : Context.NONE) + .setServiceVersion(this.client.getServiceVersion().getVersion()), + "result"), + TypeReference.createInstance(BinaryData.class), TypeReference.createInstance(BinaryData.class)); + } + + /** + * List Agent Insights runs for a monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
statusStringNoFilter runs by status. Allowed values: "queued", "in_progress", + * "succeeded", "failed", "cancelled".
triggerStringNoFilter runs by trigger. Allowed values: "on_demand", + * "scheduled".
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listRunsSinglePageAsync(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listRuns(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List Agent Insights runs for a monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
statusStringNoFilter runs by status. Allowed values: "queued", "in_progress", + * "succeeded", "failed", "cancelled".
triggerStringNoFilter runs by trigger. Allowed values: "on_demand", + * "scheduled".
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listRunsAsync(String monitorId, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listRunsSinglePageAsync(monitorId, requestOptions)); + } + + /** + * List Agent Insights runs for a monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
statusStringNoFilter runs by status. Allowed values: "queued", "in_progress", + * "succeeded", "failed", "cancelled".
triggerStringNoFilter runs by trigger. Allowed values: "on_demand", + * "scheduled".
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listRunsSinglePage(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listRunsSync(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List Agent Insights runs for a monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
statusStringNoFilter runs by status. Allowed values: "queued", "in_progress", + * "succeeded", "failed", "cancelled".
triggerStringNoFilter runs by trigger. Allowed values: "on_demand", + * "scheduled".
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listRuns(String monitorId, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listRunsSinglePage(monitorId, requestOptions)); + } + + /** + * Get an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights run along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getRunWithResponseAsync(String monitorId, String runId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getRun(this.client.getEndpoint(), monitorId, runId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return an Agent Insights run along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getRunWithResponse(String monitorId, String runId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getRunSync(this.client.getEndpoint(), monitorId, runId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Cancel an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights along with + * {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> cancelRunWithResponseAsync(String monitorId, String runId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.cancelRun(this.client.getEndpoint(), monitorId, runId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Cancel an Agent Insights run. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     inputs (Optional): {
+     *         lookback_hours: Double (Optional)
+     *     }
+     *     result (Optional): {
+     *         traces_in_window: int (Required)
+     *         traces_analyzed: int (Required)
+     *         insights_created: int (Required)
+     *         insights_updated: int (Required)
+     *         insights_reopened: int (Required)
+     *         token_usage (Required): {
+     *             input_tokens: int (Required)
+     *             output_tokens: int (Required)
+     *             cached_tokens: Integer (Optional)
+     *             total_tokens: int (Required)
+     *         }
+     *     }
+     *     status: String(queued/in_progress/succeeded/failed/cancelled) (Required)
+     *     error (Optional): {
+     *         code: String (Required)
+     *         message: String (Required)
+     *         param: String (Optional)
+     *         type: String (Optional)
+     *         details (Optional): [
+     *             (recursive schema, see above)
+     *         ]
+     *         additionalInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *         debugInfo (Optional): {
+     *             String: BinaryData (Required)
+     *         }
+     *     }
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     trigger: String(on_demand/scheduled) (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     window_start: long (Required)
+     *     window_end: long (Required)
+     *     started_at: Long (Optional)
+     *     completed_at: Long (Optional)
+     *     model_deployment_name: String (Required)
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param runId The identifier of the run. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a long-running run that analyzes one agent's traces and updates that agent's insights along with + * {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response cancelRunWithResponse(String monitorId, String runId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.cancelRunSync(this.client.getEndpoint(), monitorId, runId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * List current insights for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
categoryStringNoFilter insights by category.
severityStringNoFilter insights by severity. Allowed values: "high", "medium", + * "low".
statusStringNoFilter insights by lifecycle status. Allowed values: "active", + * "resolved", "ignored".
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listInsightsSinglePageAsync(String monitorId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listInsights(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List current insights for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
categoryStringNoFilter insights by category.
severityStringNoFilter insights by severity. Allowed values: "high", "medium", + * "low".
statusStringNoFilter insights by lifecycle status. Allowed values: "active", + * "resolved", "ignored".
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listInsightsAsync(String monitorId, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listInsightsSinglePageAsync(monitorId, requestOptions)); + } + + /** + * List current insights for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
categoryStringNoFilter insights by category.
severityStringNoFilter insights by severity. Allowed values: "high", "medium", + * "low".
statusStringNoFilter insights by lifecycle status. Allowed values: "active", + * "resolved", "ignored".
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listInsightsSinglePage(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listInsightsSync(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List current insights for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + * + * + * + * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
afterStringNoA cursor that identifies the last item in the previous + * page.
beforeStringNoA cursor that identifies the first item in the next + * page.
limitIntegerNoThe maximum number of items to return. Defaults to 20.
orderStringNoSort order by creation time. Defaults to descending. Allowed + * values: "asc", "desc".
categoryStringNoFilter insights by category.
severityStringNoFilter insights by severity. Allowed values: "high", "medium", + * "low".
statusStringNoFilter insights by lifecycle status. Allowed values: "active", + * "resolved", "ignored".
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listInsights(String monitorId, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listInsightsSinglePage(monitorId, requestOptions)); + } + + /** + * Get a full insight for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a full insight for an Agent Insights monitor along with {@link Response} on successful completion of + * {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getInsightWithResponseAsync(String monitorId, String insightId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getInsight(this.client.getEndpoint(), monitorId, insightId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a full insight for an Agent Insights monitor. + *

Query Parameters

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
include_detailsBooleanNoWhether to include expanded insight details such as + * evidence and run links in the response. Defaults to false.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a full insight for an Agent Insights monitor along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getInsightWithResponse(String monitorId, String insightId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getInsightSync(this.client.getEndpoint(), monitorId, insightId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Update the lifecycle status of an insight. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/resolved/ignored) (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param update The insight fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a persisted issue discovered from an agent's traces along with {@link Response} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> updateInsightWithResponseAsync(String monitorId, String insightId, + BinaryData update, RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.updateInsight(this.client.getEndpoint(), monitorId, insightId, + contentType, this.client.getServiceVersion().getVersion(), accept, update, requestOptions, context)); + } + + /** + * Update the lifecycle status of an insight. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/resolved/ignored) (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     monitor_id: String (Required)
+     *     agent_name: String (Required)
+     *     agent_version: String (Required)
+     *     title: String (Required)
+     *     severity: String(high/medium/low) (Required)
+     *     category: String (Required)
+     *     status: String(active/resolved/ignored) (Required)
+     *     trace_count: int (Required)
+     *     created_at: long (Required)
+     *     updated_at: long (Required)
+     *     description: String (Required)
+     *     details (Optional): {
+     *         highlighted_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 summary: String (Required)
+     *                 duration_ms: long (Required)
+     *                 total_tokens: Integer (Optional)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         linked_traces (Required): [
+     *              (Required){
+     *                 trace_id: String (Required)
+     *                 timestamp: long (Required)
+     *             }
+     *         ]
+     *         recommended_actions (Required): {
+     *             proposed_fix (Required): {
+     *                 kind: String(prose/code_change/prompt_change) (Required)
+     *                 text: String (Required)
+     *                 changes (Optional): [
+     *                      (Optional){
+     *                         path: String (Optional)
+     *                         language: String (Optional)
+     *                         diff: String (Optional)
+     *                         surface: String(instructions/tool) (Optional)
+     *                         target: String (Optional)
+     *                         old_value: BinaryData (Optional)
+     *                         new_value: BinaryData (Optional)
+     *                     }
+     *                 ]
+     *             }
+     *         }
+     *     }
+     * }
+     * }
+     * 
+ * + * @param monitorId The identifier of the monitor. + * @param insightId The identifier of the insight. + * @param update The insight fields to update. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a persisted issue discovered from an agent's traces along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response updateInsightWithResponse(String monitorId, String insightId, BinaryData update, + RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return service.updateInsightSync(this.client.getEndpoint(), monitorId, insightId, contentType, + this.client.getServiceVersion().getVersion(), accept, update, requestOptions, Context.NONE); + } + + private List getValues(BinaryData binaryData, String... path) { + try { + Object value = binaryData.toObject(Map.class); + for (String segment : path) { + value = ((Map) value).get(segment); + } + List values = (List) value; + return values.stream().map(BinaryData::fromObject).collect(Collectors.toList()); + } catch (RuntimeException e) { + return null; + } + } + + private String getNextLink(BinaryData binaryData, String... path) { + try { + Object value = binaryData.toObject(Map.class); + for (String segment : path) { + value = ((Map) value).get(segment); + } + return (String) value; + } catch (RuntimeException e) { + return null; + } + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaRoutinesImpl.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaRoutinesImpl.java index ee41d4063561..6496433527ec 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaRoutinesImpl.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaRoutinesImpl.java @@ -55,7 +55,7 @@ public final class BetaRoutinesImpl { /** * Initializes an instance of BetaRoutinesImpl. - * + * * @param client the instance of the service client containing this operation class. */ BetaRoutinesImpl(AIProjectClientImpl client) { @@ -66,7 +66,7 @@ public final class BetaRoutinesImpl { /** * Gets Service version. - * + * * @return the serviceVersion value. */ public AIProjectsServiceVersion getServiceVersion() { @@ -291,10 +291,10 @@ Response listRoutineRunsNextSync(@PathParam(value = "nextLink", enco /** * Create or update a routine - * + * * Creates a new routine or replaces an existing routine with the supplied definition. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -308,12 +308,15 @@ Response listRoutineRunsNextSync(@PathParam(value = "nextLink", enco
      *     action (Optional): {
      *         type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required)
      *     }
+     *     authorization (Optional): {
+     *         identity: String(agent/creator) (Optional)
+     *     }
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -333,7 +336,7 @@ Response listRoutineRunsNextSync(@PathParam(value = "nextLink", enco
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param createOrUpdateRoutineRequest The createOrUpdateRoutineRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -356,10 +359,10 @@ public Mono> createOrUpdateRoutineWithResponseAsync(String /** * Create or update a routine - * + * * Creates a new routine or replaces an existing routine with the supplied definition. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -373,12 +376,15 @@ public Mono> createOrUpdateRoutineWithResponseAsync(String
      *     action (Optional): {
      *         type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required)
      *     }
+     *     authorization (Optional): {
+     *         identity: String(agent/creator) (Optional)
+     *     }
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -398,7 +404,7 @@ public Mono> createOrUpdateRoutineWithResponseAsync(String
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param createOrUpdateRoutineRequest The createOrUpdateRoutineRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -420,10 +426,10 @@ public Response createOrUpdateRoutineWithResponse(String routineName /** * Get a routine - * + * * Retrieves the specified routine and its current configuration. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -443,7 +449,7 @@ public Response createOrUpdateRoutineWithResponse(String routineName
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -451,7 +457,7 @@ public Response createOrUpdateRoutineWithResponse(String routineName * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return a routine - * + * * Retrieves the specified routine and its current configuration along with {@link Response} on successful * completion of {@link Mono}. */ @@ -464,10 +470,10 @@ public Mono> getRoutineWithResponseAsync(String routineName /** * Get a routine - * + * * Retrieves the specified routine and its current configuration. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -487,7 +493,7 @@ public Mono> getRoutineWithResponseAsync(String routineName
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -495,7 +501,7 @@ public Mono> getRoutineWithResponseAsync(String routineName * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @return a routine - * + * * Retrieves the specified routine and its current configuration along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) @@ -507,10 +513,10 @@ public Response getRoutineWithResponse(String routineName, RequestOp /** * Enable a routine - * + * * Enables the specified routine so it can be dispatched. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -530,7 +536,7 @@ public Response getRoutineWithResponse(String routineName, RequestOp
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -550,10 +556,10 @@ public Mono> enableRoutineWithResponseAsync(String routineN /** * Enable a routine - * + * * Enables the specified routine so it can be dispatched. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -573,7 +579,7 @@ public Mono> enableRoutineWithResponseAsync(String routineN
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -591,10 +597,10 @@ public Response enableRoutineWithResponse(String routineName, Reques /** * Disable a routine - * + * * Disables the specified routine so it no longer runs. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -614,7 +620,7 @@ public Response enableRoutineWithResponse(String routineName, Reques
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -634,10 +640,10 @@ public Mono> disableRoutineWithResponseAsync(String routine /** * Disable a routine - * + * * Disables the specified routine so it no longer runs. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -657,7 +663,7 @@ public Mono> disableRoutineWithResponseAsync(String routine
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -675,7 +681,7 @@ public Response disableRoutineWithResponse(String routineName, Reque /** * List routines - * + * * Returns the routines available in the current project. *

Query Parameters

* @@ -690,7 +696,7 @@ public Response disableRoutineWithResponse(String routineName, Reque *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -710,7 +716,7 @@ public Response disableRoutineWithResponse(String routineName, Reque
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -731,7 +737,7 @@ private Mono> listRoutinesSinglePageAsync(RequestOptio /** * List routines - * + * * Returns the routines available in the current project. *

Query Parameters

* @@ -746,7 +752,7 @@ private Mono> listRoutinesSinglePageAsync(RequestOptio *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -766,7 +772,7 @@ private Mono> listRoutinesSinglePageAsync(RequestOptio
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -785,7 +791,7 @@ public PagedFlux listRoutinesAsync(RequestOptions requestOptions) { /** * List routines - * + * * Returns the routines available in the current project. *

Query Parameters

* @@ -800,7 +806,7 @@ public PagedFlux listRoutinesAsync(RequestOptions requestOptions) { *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -820,7 +826,7 @@ public PagedFlux listRoutinesAsync(RequestOptions requestOptions) {
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -839,7 +845,7 @@ private PagedResponse listRoutinesSinglePage(RequestOptions requestO /** * List routines - * + * * Returns the routines available in the current project. *

Query Parameters

* @@ -854,7 +860,7 @@ private PagedResponse listRoutinesSinglePage(RequestOptions requestO *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -874,7 +880,7 @@ private PagedResponse listRoutinesSinglePage(RequestOptions requestO
      * }
      * }
      * 
- * + * * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -893,9 +899,9 @@ public PagedIterable listRoutines(RequestOptions requestOptions) { /** * Delete a routine - * + * * Deletes the specified routine. - * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -912,9 +918,9 @@ public Mono> deleteRoutineWithResponseAsync(String routineName, R /** * Delete a routine - * + * * Deletes the specified routine. - * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -931,7 +937,7 @@ public Response deleteRoutineWithResponse(String routineName, RequestOptio /** * List prior runs for a routine - * + * * Returns prior runs recorded for the specified routine. *

Query Parameters

* @@ -948,7 +954,7 @@ public Response deleteRoutineWithResponse(String routineName, RequestOptio *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -980,7 +986,7 @@ public Response deleteRoutineWithResponse(String routineName, RequestOptio
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1003,7 +1009,7 @@ private Mono> listRoutineRunsSinglePageAsync(String ro /** * List prior runs for a routine - * + * * Returns prior runs recorded for the specified routine. *

Query Parameters

* @@ -1020,7 +1026,7 @@ private Mono> listRoutineRunsSinglePageAsync(String ro *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1052,7 +1058,7 @@ private Mono> listRoutineRunsSinglePageAsync(String ro
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1072,7 +1078,7 @@ public PagedFlux listRoutineRunsAsync(String routineName, RequestOpt /** * List prior runs for a routine - * + * * Returns prior runs recorded for the specified routine. *

Query Parameters

* @@ -1089,7 +1095,7 @@ public PagedFlux listRoutineRunsAsync(String routineName, RequestOpt *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1121,7 +1127,7 @@ public PagedFlux listRoutineRunsAsync(String routineName, RequestOpt
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1141,7 +1147,7 @@ private PagedResponse listRoutineRunsSinglePage(String routineName, /** * List prior runs for a routine - * + * * Returns prior runs recorded for the specified routine. *

Query Parameters

* @@ -1158,7 +1164,7 @@ private PagedResponse listRoutineRunsSinglePage(String routineName, *
* You can add these to a request with {@link RequestOptions#addQueryParam} *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1190,7 +1196,7 @@ private PagedResponse listRoutineRunsSinglePage(String routineName,
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1210,10 +1216,10 @@ public PagedIterable listRoutineRuns(String routineName, RequestOpti /** * Queue an asynchronous routine dispatch - * + * * Queues an asynchronous dispatch for the specified routine. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1223,9 +1229,9 @@ public PagedIterable listRoutineRuns(String routineName, RequestOpti
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1235,7 +1241,7 @@ public PagedIterable listRoutineRuns(String routineName, RequestOpti
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param dispatchRoutineAsyncRequest The dispatchRoutineAsyncRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1258,10 +1264,10 @@ public Mono> dispatchRoutineWithResponseAsync(String routin /** * Queue an asynchronous routine dispatch - * + * * Queues an asynchronous dispatch for the specified routine. *

Request Body Schema

- * + * *
      * {@code
      * {
@@ -1271,9 +1277,9 @@ public Mono> dispatchRoutineWithResponseAsync(String routin
      * }
      * }
      * 
- * + * *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1283,7 +1289,7 @@ public Mono> dispatchRoutineWithResponseAsync(String routin
      * }
      * }
      * 
- * + * * @param routineName The unique name of the routine. * @param dispatchRoutineAsyncRequest The dispatchRoutineAsyncRequest parameter. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. @@ -1305,10 +1311,10 @@ public Response dispatchRoutineWithResponse(String routineName, Bina /** * List routines - * + * * Get the next page of items. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1328,7 +1334,7 @@ public Response dispatchRoutineWithResponse(String routineName, Bina
      * }
      * }
      * 
- * + * * @param nextLink The URL to get the next list of items. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1350,10 +1356,10 @@ private Mono> listRoutinesNextSinglePageAsync(String n /** * List routines - * + * * Get the next page of items. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1373,7 +1379,7 @@ private Mono> listRoutinesNextSinglePageAsync(String n
      * }
      * }
      * 
- * + * * @param nextLink The URL to get the next list of items. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1393,10 +1399,10 @@ private PagedResponse listRoutinesNextSinglePage(String nextLink, Re /** * List prior runs for a routine - * + * * Get the next page of items. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1428,7 +1434,7 @@ private PagedResponse listRoutinesNextSinglePage(String nextLink, Re
      * }
      * }
      * 
- * + * * @param nextLink The URL to get the next list of items. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. @@ -1451,10 +1457,10 @@ private Mono> listRoutineRunsNextSinglePageAsync(Strin /** * List prior runs for a routine - * + * * Get the next page of items. *

Response Body Schema

- * + * *
      * {@code
      * {
@@ -1486,7 +1492,7 @@ private Mono> listRoutineRunsNextSinglePageAsync(Strin
      * }
      * }
      * 
- * + * * @param nextLink The URL to get the next list of items. * @param requestOptions The options to configure the HTTP request before HTTP client sends it. * @throws HttpResponseException thrown if the request is rejected by server. diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/JsonMergePatchHelper.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/JsonMergePatchHelper.java index 49c26150ece1..9b8b3ebda15d 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/JsonMergePatchHelper.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/JsonMergePatchHelper.java @@ -5,6 +5,9 @@ package com.azure.ai.projects.implementation; import com.azure.ai.projects.models.AIProjectIndex; +import com.azure.ai.projects.models.AgentInsightMonitorUpdate; +import com.azure.ai.projects.models.AgentInsightUpdate; +import com.azure.ai.projects.models.AgentInsightsOverviewOverride; import com.azure.ai.projects.models.DatasetVersion; import com.azure.ai.projects.models.EmbeddingConfiguration; import com.azure.ai.projects.models.FieldMapping; @@ -15,6 +18,57 @@ * This is the Helper class to enable json merge patch serialization for a model. */ public class JsonMergePatchHelper { + private static AgentInsightMonitorUpdateAccessor agentInsightMonitorUpdateAccessor; + + public interface AgentInsightMonitorUpdateAccessor { + AgentInsightMonitorUpdate prepareModelForJsonMergePatch(AgentInsightMonitorUpdate agentInsightMonitorUpdate, + boolean jsonMergePatchEnabled); + + boolean isJsonMergePatch(AgentInsightMonitorUpdate agentInsightMonitorUpdate); + } + + public static void setAgentInsightMonitorUpdateAccessor(AgentInsightMonitorUpdateAccessor accessor) { + agentInsightMonitorUpdateAccessor = accessor; + } + + public static AgentInsightMonitorUpdateAccessor getAgentInsightMonitorUpdateAccessor() { + return agentInsightMonitorUpdateAccessor; + } + + private static AgentInsightsOverviewOverrideAccessor agentInsightsOverviewOverrideAccessor; + + public interface AgentInsightsOverviewOverrideAccessor { + AgentInsightsOverviewOverride prepareModelForJsonMergePatch( + AgentInsightsOverviewOverride agentInsightsOverviewOverride, boolean jsonMergePatchEnabled); + + boolean isJsonMergePatch(AgentInsightsOverviewOverride agentInsightsOverviewOverride); + } + + public static void setAgentInsightsOverviewOverrideAccessor(AgentInsightsOverviewOverrideAccessor accessor) { + agentInsightsOverviewOverrideAccessor = accessor; + } + + public static AgentInsightsOverviewOverrideAccessor getAgentInsightsOverviewOverrideAccessor() { + return agentInsightsOverviewOverrideAccessor; + } + + private static AgentInsightUpdateAccessor agentInsightUpdateAccessor; + + public interface AgentInsightUpdateAccessor { + AgentInsightUpdate prepareModelForJsonMergePatch(AgentInsightUpdate agentInsightUpdate, + boolean jsonMergePatchEnabled); + + boolean isJsonMergePatch(AgentInsightUpdate agentInsightUpdate); + } + + public static void setAgentInsightUpdateAccessor(AgentInsightUpdateAccessor accessor) { + agentInsightUpdateAccessor = accessor; + } + + public static AgentInsightUpdateAccessor getAgentInsightUpdateAccessor() { + return agentInsightUpdateAccessor; + } + private static UpdateModelVersionInputAccessor updateModelVersionInputAccessor; public interface UpdateModelVersionInputAccessor { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/CreateOrUpdateRoutineRequest.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/CreateOrUpdateRoutineRequest.java index 12463e3a9be3..975e7cfda95f 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/CreateOrUpdateRoutineRequest.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/CreateOrUpdateRoutineRequest.java @@ -4,6 +4,7 @@ package com.azure.ai.projects.implementation.models; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; @@ -120,6 +121,7 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeBooleanField("enabled", this.enabled); jsonWriter.writeMapField("triggers", this.triggers, (writer, element) -> writer.writeJson(element)); jsonWriter.writeJsonField("action", this.action); + jsonWriter.writeJsonField("authorization", this.authorization); return jsonWriter.writeEndObject(); } @@ -147,6 +149,8 @@ public static CreateOrUpdateRoutineRequest fromJson(JsonReader jsonReader) throw deserializedCreateOrUpdateRoutineRequest.triggers = triggers; } else if ("action".equals(fieldName)) { deserializedCreateOrUpdateRoutineRequest.action = RoutineAction.fromJson(reader); + } else if ("authorization".equals(fieldName)) { + deserializedCreateOrUpdateRoutineRequest.authorization = RoutineAuthorization.fromJson(reader); } else { reader.skipChildren(); } @@ -186,4 +190,35 @@ public CreateOrUpdateRoutineRequest setAction(RoutineAction action) { this.action = action; return this; } + + /* + * Optional authorization configuration for dispatching a newly created routine. Ignored when updating an existing + * routine. + */ + @Generated + private RoutineAuthorization authorization; + + /** + * Get the authorization property: Optional authorization configuration for dispatching a newly created routine. + * Ignored when updating an existing routine. + * + * @return the authorization value. + */ + @Generated + public RoutineAuthorization getAuthorization() { + return this.authorization; + } + + /** + * Set the authorization property: Optional authorization configuration for dispatching a newly created routine. + * Ignored when updating an existing routine. + * + * @param authorization the authorization value to set. + * @return the CreateOrUpdateRoutineRequest object itself. + */ + @Generated + public CreateOrUpdateRoutineRequest setAuthorization(RoutineAuthorization authorization) { + this.authorization = authorization; + return this; + } } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/FoundryFeaturesOptInKeys.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/FoundryFeaturesOptInKeys.java index f7a5d284960e..cee3b5736e99 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/FoundryFeaturesOptInKeys.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/models/FoundryFeaturesOptInKeys.java @@ -28,6 +28,11 @@ public enum FoundryFeaturesOptInKeys { */ INSIGHTS_V1_PREVIEW("Insights=V1Preview"), + /** + * Enum value AgentInsights=V1Preview. + */ + AGENT_INSIGHTS_V1_PREVIEW("AgentInsights=V1Preview"), + /** * Enum value MemoryStores=V1Preview. */ @@ -56,7 +61,12 @@ public enum FoundryFeaturesOptInKeys { /** * Enum value AgentsOptimization=V2Preview. */ - AGENTS_OPTIMIZATION_V2_PREVIEW("AgentsOptimization=V2Preview"); + AGENTS_OPTIMIZATION_V2_PREVIEW("AgentsOptimization=V2Preview"), + + /** + * Enum value ModelRouterControls=V1Preview. + */ + MODEL_ROUTER_CONTROLS_V1_PREVIEW("ModelRouterControls=V1Preview"); /** * The actual serialized value for a FoundryFeaturesOptInKeys instance. @@ -69,7 +79,7 @@ public enum FoundryFeaturesOptInKeys { /** * Parses a serialized value to a FoundryFeaturesOptInKeys instance. - * + * * @param value the serialized value to parse. * @return the parsed FoundryFeaturesOptInKeys object, or null if unable to parse. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java new file mode 100644 index 000000000000..988019b20586 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java @@ -0,0 +1,300 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * A persisted issue discovered from an agent's traces. + */ +@Immutable +public final class AgentInsight implements JsonSerializable { + /* + * The insight identifier. + */ + @Generated + private String id; + + /* + * The Agent Insights monitor this insight belongs to. + */ + @Generated + private String monitorId; + + /* + * The agent this insight belongs to. + */ + @Generated + private String agentName; + + /* + * The latest immutable agent version associated with this insight. + */ + @Generated + private String agentVersion; + + /* + * A short title for the issue. + */ + @Generated + private String title; + + /* + * The severity of the issue. + */ + @Generated + private AgentInsightSeverity severity; + + /* + * An open, service-generated category label for the issue. Clients must accept previously unseen values. + */ + @Generated + private String category; + + /* + * The lifecycle status of the insight. + */ + @Generated + private AgentInsightStatus status; + + /* + * The number of traces that provide evidence for this insight. + */ + @Generated + private int traceCount; + + /* + * The time when this insight was created. + */ + @Generated + private long createdAt; + + /* + * The time when this insight was last updated. + */ + @Generated + private long updatedAt; + + /* + * The root-cause diagnosis for the issue. + */ + @Generated + private String description; + + /* + * Additional insight details. Omitted unless details are requested. + */ + @Generated + private AgentInsightDetails details; + + /** + * Creates an instance of AgentInsight class. + */ + @Generated + private AgentInsight() { + } + + /** + * Get the id property: The insight identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the monitorId property: The Agent Insights monitor this insight belongs to. + * + * @return the monitorId value. + */ + @Generated + public String getMonitorId() { + return this.monitorId; + } + + /** + * Get the agentName property: The agent this insight belongs to. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the agentVersion property: The latest immutable agent version associated with this insight. + * + * @return the agentVersion value. + */ + @Generated + public String getAgentVersion() { + return this.agentVersion; + } + + /** + * Get the title property: A short title for the issue. + * + * @return the title value. + */ + @Generated + public String getTitle() { + return this.title; + } + + /** + * Get the severity property: The severity of the issue. + * + * @return the severity value. + */ + @Generated + public AgentInsightSeverity getSeverity() { + return this.severity; + } + + /** + * Get the category property: An open, service-generated category label for the issue. Clients must accept + * previously unseen values. + * + * @return the category value. + */ + @Generated + public String getCategory() { + return this.category; + } + + /** + * Get the status property: The lifecycle status of the insight. + * + * @return the status value. + */ + @Generated + public AgentInsightStatus getStatus() { + return this.status; + } + + /** + * Get the traceCount property: The number of traces that provide evidence for this insight. + * + * @return the traceCount value. + */ + @Generated + public int getTraceCount() { + return this.traceCount; + } + + /** + * Get the createdAt property: The time when this insight was created. + * + * @return the createdAt value. + */ + @Generated + public OffsetDateTime getCreatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.createdAt), ZoneOffset.UTC); + } + + /** + * Get the updatedAt property: The time when this insight was last updated. + * + * @return the updatedAt value. + */ + @Generated + public OffsetDateTime getUpdatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.updatedAt), ZoneOffset.UTC); + } + + /** + * Get the description property: The root-cause diagnosis for the issue. + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Get the details property: Additional insight details. Omitted unless details are requested. + * + * @return the details value. + */ + @Generated + public AgentInsightDetails getDetails() { + return this.details; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsight from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsight if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsight. + */ + @Generated + public static AgentInsight fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsight deserializedAgentInsight = new AgentInsight(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + deserializedAgentInsight.id = reader.getString(); + } else if ("monitor_id".equals(fieldName)) { + deserializedAgentInsight.monitorId = reader.getString(); + } else if ("agent_name".equals(fieldName)) { + deserializedAgentInsight.agentName = reader.getString(); + } else if ("agent_version".equals(fieldName)) { + deserializedAgentInsight.agentVersion = reader.getString(); + } else if ("title".equals(fieldName)) { + deserializedAgentInsight.title = reader.getString(); + } else if ("severity".equals(fieldName)) { + deserializedAgentInsight.severity = AgentInsightSeverity.fromString(reader.getString()); + } else if ("category".equals(fieldName)) { + deserializedAgentInsight.category = reader.getString(); + } else if ("status".equals(fieldName)) { + deserializedAgentInsight.status = AgentInsightStatus.fromString(reader.getString()); + } else if ("trace_count".equals(fieldName)) { + deserializedAgentInsight.traceCount = reader.getInt(); + } else if ("created_at".equals(fieldName)) { + deserializedAgentInsight.createdAt = reader.getLong(); + } else if ("updated_at".equals(fieldName)) { + deserializedAgentInsight.updatedAt = reader.getLong(); + } else if ("description".equals(fieldName)) { + deserializedAgentInsight.description = reader.getString(); + } else if ("details".equals(fieldName)) { + deserializedAgentInsight.details = AgentInsightDetails.fromJson(reader); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsight; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java new file mode 100644 index 000000000000..fa1e440a1646 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * Additional insight details. Omitted unless details are requested. + */ +@Immutable +public final class AgentInsightDetails implements JsonSerializable { + /* + * Up to 5 highlighted traces that provide evidence for this insight. + */ + @Generated + private final List highlightedTraces; + + /* + * Up to 200 most recent traces linked to this insight as supporting evidence. + */ + @Generated + private final List linkedTraces; + + /* + * The recommended remediation for this insight. + */ + @Generated + private final AgentInsightRecommendedAction recommendedActions; + + /** + * Creates an instance of AgentInsightDetails class. + * + * @param highlightedTraces the highlightedTraces value to set. + * @param linkedTraces the linkedTraces value to set. + * @param recommendedActions the recommendedActions value to set. + */ + @Generated + private AgentInsightDetails(List highlightedTraces, + List linkedTraces, AgentInsightRecommendedAction recommendedActions) { + this.highlightedTraces = highlightedTraces; + this.linkedTraces = linkedTraces; + this.recommendedActions = recommendedActions; + } + + /** + * Get the highlightedTraces property: Up to 5 highlighted traces that provide evidence for this insight. + * + * @return the highlightedTraces value. + */ + @Generated + public List getHighlightedTraces() { + return this.highlightedTraces; + } + + /** + * Get the linkedTraces property: Up to 200 most recent traces linked to this insight as supporting evidence. + * + * @return the linkedTraces value. + */ + @Generated + public List getLinkedTraces() { + return this.linkedTraces; + } + + /** + * Get the recommendedActions property: The recommended remediation for this insight. + * + * @return the recommendedActions value. + */ + @Generated + public AgentInsightRecommendedAction getRecommendedActions() { + return this.recommendedActions; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("highlighted_traces", this.highlightedTraces, + (writer, element) -> writer.writeJson(element)); + jsonWriter.writeArrayField("linked_traces", this.linkedTraces, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeJsonField("recommended_actions", this.recommendedActions); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightDetails from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightDetails if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightDetails. + */ + @Generated + public static AgentInsightDetails fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + List highlightedTraces = null; + List linkedTraces = null; + AgentInsightRecommendedAction recommendedActions = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("highlighted_traces".equals(fieldName)) { + highlightedTraces = reader.readArray(reader1 -> AgentInsightHighlightedTrace.fromJson(reader1)); + } else if ("linked_traces".equals(fieldName)) { + linkedTraces = reader.readArray(reader1 -> AgentInsightLinkedTrace.fromJson(reader1)); + } else if ("recommended_actions".equals(fieldName)) { + recommendedActions = AgentInsightRecommendedAction.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return new AgentInsightDetails(highlightedTraces, linkedTraces, recommendedActions); + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java new file mode 100644 index 000000000000..b0b140da6432 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Estimated Agent Insights cost. + */ +@Immutable +public final class AgentInsightEstimatedCost implements JsonSerializable { + /* + * Estimated cost amount. + */ + @Generated + private final double amount; + + /* + * Currency for the estimated cost amount. Agent Insights estimates are reported in US dollars. + */ + @Generated + private final String currency = "USD"; + + /** + * Creates an instance of AgentInsightEstimatedCost class. + * + * @param amount the amount value to set. + */ + @Generated + private AgentInsightEstimatedCost(double amount) { + this.amount = amount; + } + + /** + * Get the amount property: Estimated cost amount. + * + * @return the amount value. + */ + @Generated + public double getAmount() { + return this.amount; + } + + /** + * Get the currency property: Currency for the estimated cost amount. Agent Insights estimates are reported in US + * dollars. + * + * @return the currency value. + */ + @Generated + public String getCurrency() { + return this.currency; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeDoubleField("amount", this.amount); + jsonWriter.writeStringField("currency", this.currency); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightEstimatedCost from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightEstimatedCost if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightEstimatedCost. + */ + @Generated + public static AgentInsightEstimatedCost fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + double amount = 0.0; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("amount".equals(fieldName)) { + amount = reader.getDouble(); + } else { + reader.skipChildren(); + } + } + return new AgentInsightEstimatedCost(amount); + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java new file mode 100644 index 000000000000..abf805582438 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java @@ -0,0 +1,185 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * A highlighted trace that provides evidence for an agent insight. + */ +@Immutable +public final class AgentInsightHighlightedTrace implements JsonSerializable { + /* + * The trace identifier. + */ + @Generated + private String traceId; + + /* + * A short summary of the trace. + */ + @Generated + private final String summary; + + /* + * The end-to-end duration of the trace in milliseconds. + */ + @Generated + private final long durationMs; + + /* + * 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. + */ + @Generated + private Integer totalTokens; + + /* + * The time when the trace was recorded. + */ + @Generated + private final long timestamp; + + /** + * Creates an instance of AgentInsightHighlightedTrace class. + * + * @param summary the summary value to set. + * @param durationMs the durationMs value to set. + * @param timestamp the timestamp value to set. + */ + @Generated + private AgentInsightHighlightedTrace(String summary, Duration durationMs, OffsetDateTime timestamp) { + this.summary = summary; + if (durationMs == null) { + this.durationMs = 0L; + } else { + this.durationMs = durationMs.toMillis(); + } + if (timestamp == null) { + this.timestamp = 0L; + } else { + this.timestamp = timestamp.toEpochSecond(); + } + } + + /** + * Get the traceId property: The trace identifier. + * + * @return the traceId value. + */ + @Generated + public String getTraceId() { + return this.traceId; + } + + /** + * Get the summary property: A short summary of the trace. + * + * @return the summary value. + */ + @Generated + public String getSummary() { + return this.summary; + } + + /** + * Get the durationMs property: The end-to-end duration of the trace in milliseconds. + * + * @return the durationMs value. + */ + @Generated + public Duration getDurationMs() { + return Duration.ofMillis(this.durationMs); + } + + /** + * Get the totalTokens property: 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. + * + * @return the totalTokens value. + */ + @Generated + public Integer getTotalTokens() { + return this.totalTokens; + } + + /** + * Get the timestamp property: The time when the trace was recorded. + * + * @return the timestamp value. + */ + @Generated + public OffsetDateTime getTimestamp() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.timestamp), ZoneOffset.UTC); + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("summary", this.summary); + jsonWriter.writeLongField("duration_ms", this.durationMs); + jsonWriter.writeLongField("timestamp", this.timestamp); + jsonWriter.writeNumberField("total_tokens", this.totalTokens); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightHighlightedTrace from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightHighlightedTrace if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightHighlightedTrace. + */ + @Generated + public static AgentInsightHighlightedTrace fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String traceId = null; + String summary = null; + Duration durationMs = null; + OffsetDateTime timestamp = null; + Integer totalTokens = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("trace_id".equals(fieldName)) { + traceId = reader.getString(); + } else if ("summary".equals(fieldName)) { + summary = reader.getString(); + } else if ("duration_ms".equals(fieldName)) { + durationMs = Duration.ofMillis(reader.getLong()); + } else if ("timestamp".equals(fieldName)) { + timestamp = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else if ("total_tokens".equals(fieldName)) { + totalTokens = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + AgentInsightHighlightedTrace deserializedAgentInsightHighlightedTrace + = new AgentInsightHighlightedTrace(summary, durationMs, timestamp); + deserializedAgentInsightHighlightedTrace.traceId = traceId; + deserializedAgentInsightHighlightedTrace.totalTokens = totalTokens; + + return deserializedAgentInsightHighlightedTrace; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java new file mode 100644 index 000000000000..13b07d626fb7 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java @@ -0,0 +1,101 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * A lightweight trace reference linked to an agent insight as supporting evidence. + */ +@Immutable +public final class AgentInsightLinkedTrace implements JsonSerializable { + /* + * The trace identifier. + */ + @Generated + private String traceId; + + /* + * The time when the trace was recorded. + */ + @Generated + private long timestamp; + + /** + * Creates an instance of AgentInsightLinkedTrace class. + */ + @Generated + private AgentInsightLinkedTrace() { + } + + /** + * Get the traceId property: The trace identifier. + * + * @return the traceId value. + */ + @Generated + public String getTraceId() { + return this.traceId; + } + + /** + * Get the timestamp property: The time when the trace was recorded. + * + * @return the timestamp value. + */ + @Generated + public OffsetDateTime getTimestamp() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.timestamp), ZoneOffset.UTC); + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightLinkedTrace from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightLinkedTrace if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightLinkedTrace. + */ + @Generated + public static AgentInsightLinkedTrace fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightLinkedTrace deserializedAgentInsightLinkedTrace = new AgentInsightLinkedTrace(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("trace_id".equals(fieldName)) { + deserializedAgentInsightLinkedTrace.traceId = reader.getString(); + } else if ("timestamp".equals(fieldName)) { + deserializedAgentInsightLinkedTrace.timestamp = reader.getLong(); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightLinkedTrace; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java new file mode 100644 index 000000000000..a30472506620 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java @@ -0,0 +1,252 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * A per-agent Agent Insights monitor that owns configuration, runs, and discovered insights. + */ +@Immutable +public final class AgentInsightMonitor implements JsonSerializable { + /* + * The monitor identifier. + */ + @Generated + private String id; + + /* + * The agent this monitor analyzes. There can be only one monitor per agent. + */ + @Generated + private String agentName; + + /* + * Whether scheduled insight generation is armed for the monitor. + */ + @Generated + private boolean enabled; + + /* + * Interval between scheduled insight runs, in hours. + */ + @Generated + private double runIntervalHours; + + /* + * The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection + * name as '{connectionName}/modelDeploymentName'. + */ + @Generated + private String modelDeploymentName; + + /* + * The next time a scheduled agent insight run will start. Omitted when scheduled generation is disabled. + */ + @Generated + private Long nextScheduledRunAt; + + /* + * Estimated cost accumulated by Agent Insights for this monitor. + */ + @Generated + private AgentInsightEstimatedCost estimatedCost; + + /* + * Why the system suspended scheduled generation. Null when the monitor is not suspended. + */ + @Generated + private AgentInsightSuspension suspension; + + /* + * The effective overview, or null before an overview is available. + */ + @Generated + private AgentInsightsOverview overview; + + /* + * The time when this monitor was last updated. + */ + @Generated + private long updatedAt; + + /** + * Creates an instance of AgentInsightMonitor class. + */ + @Generated + private AgentInsightMonitor() { + } + + /** + * Get the id property: The monitor identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the agentName property: The agent this monitor analyzes. There can be only one monitor per agent. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the enabled property: Whether scheduled insight generation is armed for the monitor. + * + * @return the enabled value. + */ + @Generated + public boolean isEnabled() { + return this.enabled; + } + + /** + * Get the runIntervalHours property: Interval between scheduled insight runs, in hours. + * + * @return the runIntervalHours value. + */ + @Generated + public double getRunIntervalHours() { + return this.runIntervalHours; + } + + /** + * Get the modelDeploymentName property: The model deployment to use for analyzing traces. Accepts either the + * deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. + * + * @return the modelDeploymentName value. + */ + @Generated + public String getModelDeploymentName() { + return this.modelDeploymentName; + } + + /** + * Get the nextScheduledRunAt property: The next time a scheduled agent insight run will start. Omitted when + * scheduled generation is disabled. + * + * @return the nextScheduledRunAt value. + */ + @Generated + public OffsetDateTime getNextScheduledRunAt() { + if (this.nextScheduledRunAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.nextScheduledRunAt), ZoneOffset.UTC); + } + + /** + * Get the estimatedCost property: Estimated cost accumulated by Agent Insights for this monitor. + * + * @return the estimatedCost value. + */ + @Generated + public AgentInsightEstimatedCost getEstimatedCost() { + return this.estimatedCost; + } + + /** + * Get the suspension property: Why the system suspended scheduled generation. Null when the monitor is not + * suspended. + * + * @return the suspension value. + */ + @Generated + public AgentInsightSuspension getSuspension() { + return this.suspension; + } + + /** + * Get the overview property: The effective overview, or null before an overview is available. + * + * @return the overview value. + */ + @Generated + public AgentInsightsOverview getOverview() { + return this.overview; + } + + /** + * Get the updatedAt property: The time when this monitor was last updated. + * + * @return the updatedAt value. + */ + @Generated + public OffsetDateTime getUpdatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.updatedAt), ZoneOffset.UTC); + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightMonitor from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightMonitor if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightMonitor. + */ + @Generated + public static AgentInsightMonitor fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightMonitor deserializedAgentInsightMonitor = new AgentInsightMonitor(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + deserializedAgentInsightMonitor.id = reader.getString(); + } else if ("agent_name".equals(fieldName)) { + deserializedAgentInsightMonitor.agentName = reader.getString(); + } else if ("enabled".equals(fieldName)) { + deserializedAgentInsightMonitor.enabled = reader.getBoolean(); + } else if ("run_interval_hours".equals(fieldName)) { + deserializedAgentInsightMonitor.runIntervalHours = reader.getDouble(); + } else if ("model_deployment_name".equals(fieldName)) { + deserializedAgentInsightMonitor.modelDeploymentName = reader.getString(); + } else if ("suspension".equals(fieldName)) { + deserializedAgentInsightMonitor.suspension = AgentInsightSuspension.fromJson(reader); + } else if ("overview".equals(fieldName)) { + deserializedAgentInsightMonitor.overview = AgentInsightsOverview.fromJson(reader); + } else if ("updated_at".equals(fieldName)) { + deserializedAgentInsightMonitor.updatedAt = reader.getLong(); + } else if ("next_scheduled_run_at".equals(fieldName)) { + deserializedAgentInsightMonitor.nextScheduledRunAt = reader.getNullable(JsonReader::getLong); + } else if ("estimated_cost".equals(fieldName)) { + deserializedAgentInsightMonitor.estimatedCost = AgentInsightEstimatedCost.fromJson(reader); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightMonitor; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java new file mode 100644 index 000000000000..b257f011bb5a --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Fields accepted when creating an Agent Insights monitor for an agent. + */ +@Fluent +public final class AgentInsightMonitorCreate implements JsonSerializable { + /* + * The agent this monitor should analyze. + */ + @Generated + private final String agentName; + + /* + * Whether scheduled insight generation should be armed. Defaults to false. + */ + @Generated + private Boolean enabled; + + /* + * Interval between scheduled insight runs, in hours. Defaults to 6. + */ + @Generated + private Double runIntervalHours; + + /* + * The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection + * name as '{connectionName}/modelDeploymentName'. + */ + @Generated + private final String modelDeploymentName; + + /** + * Creates an instance of AgentInsightMonitorCreate class. + * + * @param agentName the agentName value to set. + * @param modelDeploymentName the modelDeploymentName value to set. + */ + @Generated + public AgentInsightMonitorCreate(String agentName, String modelDeploymentName) { + this.agentName = agentName; + this.modelDeploymentName = modelDeploymentName; + } + + /** + * Get the agentName property: The agent this monitor should analyze. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the enabled property: Whether scheduled insight generation should be armed. Defaults to false. + * + * @return the enabled value. + */ + @Generated + public Boolean isEnabled() { + return this.enabled; + } + + /** + * Set the enabled property: Whether scheduled insight generation should be armed. Defaults to false. + * + * @param enabled the enabled value to set. + * @return the AgentInsightMonitorCreate object itself. + */ + @Generated + public AgentInsightMonitorCreate setEnabled(Boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * Get the runIntervalHours property: Interval between scheduled insight runs, in hours. Defaults to 6. + * + * @return the runIntervalHours value. + */ + @Generated + public Double getRunIntervalHours() { + return this.runIntervalHours; + } + + /** + * Set the runIntervalHours property: Interval between scheduled insight runs, in hours. Defaults to 6. + * + * @param runIntervalHours the runIntervalHours value to set. + * @return the AgentInsightMonitorCreate object itself. + */ + @Generated + public AgentInsightMonitorCreate setRunIntervalHours(Double runIntervalHours) { + this.runIntervalHours = runIntervalHours; + return this; + } + + /** + * Get the modelDeploymentName property: The model deployment to use for analyzing traces. Accepts either the + * deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. + * + * @return the modelDeploymentName value. + */ + @Generated + public String getModelDeploymentName() { + return this.modelDeploymentName; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("agent_name", this.agentName); + jsonWriter.writeStringField("model_deployment_name", this.modelDeploymentName); + jsonWriter.writeBooleanField("enabled", this.enabled); + jsonWriter.writeNumberField("run_interval_hours", this.runIntervalHours); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightMonitorCreate from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightMonitorCreate if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightMonitorCreate. + */ + @Generated + public static AgentInsightMonitorCreate fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String agentName = null; + String modelDeploymentName = null; + Boolean enabled = null; + Double runIntervalHours = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("agent_name".equals(fieldName)) { + agentName = reader.getString(); + } else if ("model_deployment_name".equals(fieldName)) { + modelDeploymentName = reader.getString(); + } else if ("enabled".equals(fieldName)) { + enabled = reader.getNullable(JsonReader::getBoolean); + } else if ("run_interval_hours".equals(fieldName)) { + runIntervalHours = reader.getNullable(JsonReader::getDouble); + } else { + reader.skipChildren(); + } + } + AgentInsightMonitorCreate deserializedAgentInsightMonitorCreate + = new AgentInsightMonitorCreate(agentName, modelDeploymentName); + deserializedAgentInsightMonitorCreate.enabled = enabled; + deserializedAgentInsightMonitorCreate.runIntervalHours = runIntervalHours; + + return deserializedAgentInsightMonitorCreate; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java new file mode 100644 index 000000000000..7e6720367a79 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java @@ -0,0 +1,235 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * An Agent Insights monitor summary returned by list operations. + */ +@Immutable +public final class AgentInsightMonitorListItem implements JsonSerializable { + /* + * The monitor identifier. + */ + @Generated + private String id; + + /* + * The agent this monitor analyzes. There can be only one monitor per agent. + */ + @Generated + private String agentName; + + /* + * Whether scheduled insight generation is armed for the monitor. + */ + @Generated + private boolean enabled; + + /* + * Interval between scheduled insight runs, in hours. + */ + @Generated + private double runIntervalHours; + + /* + * The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection + * name as '{connectionName}/modelDeploymentName'. + */ + @Generated + private String modelDeploymentName; + + /* + * The next time a scheduled agent insight run will start. Omitted when scheduled generation is disabled. + */ + @Generated + private Long nextScheduledRunAt; + + /* + * Estimated cost accumulated by Agent Insights for this monitor. + */ + @Generated + private AgentInsightEstimatedCost estimatedCost; + + /* + * Why the system suspended scheduled generation. Null when the monitor is not suspended. + */ + @Generated + private AgentInsightSuspension suspension; + + /* + * The time when this monitor was last updated. + */ + @Generated + private long updatedAt; + + /** + * Creates an instance of AgentInsightMonitorListItem class. + */ + @Generated + private AgentInsightMonitorListItem() { + } + + /** + * Get the id property: The monitor identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the agentName property: The agent this monitor analyzes. There can be only one monitor per agent. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the enabled property: Whether scheduled insight generation is armed for the monitor. + * + * @return the enabled value. + */ + @Generated + public boolean isEnabled() { + return this.enabled; + } + + /** + * Get the runIntervalHours property: Interval between scheduled insight runs, in hours. + * + * @return the runIntervalHours value. + */ + @Generated + public double getRunIntervalHours() { + return this.runIntervalHours; + } + + /** + * Get the modelDeploymentName property: The model deployment to use for analyzing traces. Accepts either the + * deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. + * + * @return the modelDeploymentName value. + */ + @Generated + public String getModelDeploymentName() { + return this.modelDeploymentName; + } + + /** + * Get the nextScheduledRunAt property: The next time a scheduled agent insight run will start. Omitted when + * scheduled generation is disabled. + * + * @return the nextScheduledRunAt value. + */ + @Generated + public OffsetDateTime getNextScheduledRunAt() { + if (this.nextScheduledRunAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.nextScheduledRunAt), ZoneOffset.UTC); + } + + /** + * Get the estimatedCost property: Estimated cost accumulated by Agent Insights for this monitor. + * + * @return the estimatedCost value. + */ + @Generated + public AgentInsightEstimatedCost getEstimatedCost() { + return this.estimatedCost; + } + + /** + * Get the suspension property: Why the system suspended scheduled generation. Null when the monitor is not + * suspended. + * + * @return the suspension value. + */ + @Generated + public AgentInsightSuspension getSuspension() { + return this.suspension; + } + + /** + * Get the updatedAt property: The time when this monitor was last updated. + * + * @return the updatedAt value. + */ + @Generated + public OffsetDateTime getUpdatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.updatedAt), ZoneOffset.UTC); + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightMonitorListItem from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightMonitorListItem if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightMonitorListItem. + */ + @Generated + public static AgentInsightMonitorListItem fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightMonitorListItem deserializedAgentInsightMonitorListItem = new AgentInsightMonitorListItem(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.id = reader.getString(); + } else if ("agent_name".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.agentName = reader.getString(); + } else if ("enabled".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.enabled = reader.getBoolean(); + } else if ("run_interval_hours".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.runIntervalHours = reader.getDouble(); + } else if ("model_deployment_name".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.modelDeploymentName = reader.getString(); + } else if ("suspension".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.suspension = AgentInsightSuspension.fromJson(reader); + } else if ("updated_at".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.updatedAt = reader.getLong(); + } else if ("next_scheduled_run_at".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.nextScheduledRunAt + = reader.getNullable(JsonReader::getLong); + } else if ("estimated_cost".equals(fieldName)) { + deserializedAgentInsightMonitorListItem.estimatedCost = AgentInsightEstimatedCost.fromJson(reader); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightMonitorListItem; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java new file mode 100644 index 000000000000..22f97aa943d9 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java @@ -0,0 +1,274 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.ai.projects.implementation.JsonMergePatchHelper; +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +/** + * Fields that can be updated on an Agent Insights monitor. + */ +@Fluent +public final class AgentInsightMonitorUpdate implements JsonSerializable { + /* + * Whether scheduled insight generation is armed for the monitor. + */ + @Generated + private Boolean enabled; + + /* + * Interval between scheduled insight runs, in hours. + */ + @Generated + private Double runIntervalHours; + + /* + * The model deployment to use for analyzing traces. Accepts either the deployment name alone or with the connection + * name as '{connectionName}/modelDeploymentName'. + */ + @Generated + private String modelDeploymentName; + + /* + * Sets the effective user overview, or clears it when explicitly set to null. Omission leaves + * the overview unchanged. This field cannot be combined with other monitor updates. + */ + @Generated + private AgentInsightsOverviewOverride overviewOverride; + + /** + * Stores updated model property, the value is property name, not serialized name. + */ + @Generated + private final Set updatedProperties = new HashSet<>(); + + @Generated + private boolean jsonMergePatch; + + @Generated + private void serializeAsJsonMergePatch(boolean jsonMergePatch) { + this.jsonMergePatch = jsonMergePatch; + } + + static { + JsonMergePatchHelper + .setAgentInsightMonitorUpdateAccessor(new JsonMergePatchHelper.AgentInsightMonitorUpdateAccessor() { + @Override + public AgentInsightMonitorUpdate prepareModelForJsonMergePatch(AgentInsightMonitorUpdate model, + boolean jsonMergePatchEnabled) { + model.serializeAsJsonMergePatch(jsonMergePatchEnabled); + return model; + } + + @Override + public boolean isJsonMergePatch(AgentInsightMonitorUpdate model) { + return model.jsonMergePatch; + } + }); + } + + /** + * Creates an instance of AgentInsightMonitorUpdate class. + */ + @Generated + public AgentInsightMonitorUpdate() { + } + + /** + * Get the enabled property: Whether scheduled insight generation is armed for the monitor. + * + * @return the enabled value. + */ + @Generated + public Boolean isEnabled() { + return this.enabled; + } + + /** + * Set the enabled property: Whether scheduled insight generation is armed for the monitor. + * + * @param enabled the enabled value to set. + * @return the AgentInsightMonitorUpdate object itself. + */ + @Generated + public AgentInsightMonitorUpdate setEnabled(Boolean enabled) { + this.enabled = enabled; + this.updatedProperties.add("enabled"); + return this; + } + + /** + * Get the runIntervalHours property: Interval between scheduled insight runs, in hours. + * + * @return the runIntervalHours value. + */ + @Generated + public Double getRunIntervalHours() { + return this.runIntervalHours; + } + + /** + * Set the runIntervalHours property: Interval between scheduled insight runs, in hours. + * + * @param runIntervalHours the runIntervalHours value to set. + * @return the AgentInsightMonitorUpdate object itself. + */ + @Generated + public AgentInsightMonitorUpdate setRunIntervalHours(Double runIntervalHours) { + this.runIntervalHours = runIntervalHours; + this.updatedProperties.add("runIntervalHours"); + return this; + } + + /** + * Get the modelDeploymentName property: The model deployment to use for analyzing traces. Accepts either the + * deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. + * + * @return the modelDeploymentName value. + */ + @Generated + public String getModelDeploymentName() { + return this.modelDeploymentName; + } + + /** + * Set the modelDeploymentName property: The model deployment to use for analyzing traces. Accepts either the + * deployment name alone or with the connection name as '{connectionName}/modelDeploymentName'. + * + * @param modelDeploymentName the modelDeploymentName value to set. + * @return the AgentInsightMonitorUpdate object itself. + */ + @Generated + public AgentInsightMonitorUpdate setModelDeploymentName(String modelDeploymentName) { + this.modelDeploymentName = modelDeploymentName; + this.updatedProperties.add("modelDeploymentName"); + return this; + } + + /** + * Get the overviewOverride property: Sets the effective user overview, or clears it when explicitly set to null. + * Omission leaves + * the overview unchanged. This field cannot be combined with other monitor updates. + * + * @return the overviewOverride value. + */ + @Generated + public AgentInsightsOverviewOverride getOverviewOverride() { + return this.overviewOverride; + } + + /** + * Set the overviewOverride property: Sets the effective user overview, or clears it when explicitly set to null. + * Omission leaves + * the overview unchanged. This field cannot be combined with other monitor updates. + * + * @param overviewOverride the overviewOverride value to set. + * @return the AgentInsightMonitorUpdate object itself. + */ + @Generated + public AgentInsightMonitorUpdate setOverviewOverride(AgentInsightsOverviewOverride overviewOverride) { + this.overviewOverride = overviewOverride; + this.updatedProperties.add("overviewOverride"); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + if (jsonMergePatch) { + return toJsonMergePatch(jsonWriter); + } else { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("enabled", this.enabled); + jsonWriter.writeNumberField("run_interval_hours", this.runIntervalHours); + jsonWriter.writeStringField("model_deployment_name", this.modelDeploymentName); + jsonWriter.writeJsonField("overview_override", this.overviewOverride); + return jsonWriter.writeEndObject(); + } + } + + @Generated + private JsonWriter toJsonMergePatch(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + if (updatedProperties.contains("enabled")) { + if (this.enabled == null) { + jsonWriter.writeNullField("enabled"); + } else { + jsonWriter.writeBooleanField("enabled", this.enabled); + } + } + if (updatedProperties.contains("runIntervalHours")) { + if (this.runIntervalHours == null) { + jsonWriter.writeNullField("run_interval_hours"); + } else { + jsonWriter.writeNumberField("run_interval_hours", this.runIntervalHours); + } + } + if (updatedProperties.contains("modelDeploymentName")) { + if (this.modelDeploymentName == null) { + jsonWriter.writeNullField("model_deployment_name"); + } else { + jsonWriter.writeStringField("model_deployment_name", this.modelDeploymentName); + } + } + if (updatedProperties.contains("overviewOverride")) { + if (this.overviewOverride == null) { + jsonWriter.writeNullField("overview_override"); + } else { + JsonMergePatchHelper.getAgentInsightsOverviewOverrideAccessor() + .prepareModelForJsonMergePatch(this.overviewOverride, true); + jsonWriter.writeJsonField("overview_override", this.overviewOverride); + JsonMergePatchHelper.getAgentInsightsOverviewOverrideAccessor() + .prepareModelForJsonMergePatch(this.overviewOverride, false); + } + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightMonitorUpdate from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightMonitorUpdate if the JsonReader was pointing to an instance of it, or null if + * it was pointing to JSON null. + * @throws IOException If an error occurs while reading the AgentInsightMonitorUpdate. + */ + @Generated + public static AgentInsightMonitorUpdate fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightMonitorUpdate deserializedAgentInsightMonitorUpdate = new AgentInsightMonitorUpdate(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("enabled".equals(fieldName)) { + deserializedAgentInsightMonitorUpdate.enabled = reader.getNullable(JsonReader::getBoolean); + } else if ("run_interval_hours".equals(fieldName)) { + deserializedAgentInsightMonitorUpdate.runIntervalHours = reader.getNullable(JsonReader::getDouble); + } else if ("model_deployment_name".equals(fieldName)) { + deserializedAgentInsightMonitorUpdate.modelDeploymentName = reader.getString(); + } else if ("overview_override".equals(fieldName)) { + deserializedAgentInsightMonitorUpdate.overviewOverride + = AgentInsightsOverviewOverride.fromJson(reader); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightMonitorUpdate; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java new file mode 100644 index 000000000000..be493d572289 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Identifies where an Agent Insights overview came from. + */ +public final class AgentInsightOverviewSource extends ExpandableStringEnum { + /** + * The overview was generated by Agent Insights. + */ + @Generated + public static final AgentInsightOverviewSource GENERATED = fromString("generated"); + + /** + * The overview was provided by the user. + */ + @Generated + public static final AgentInsightOverviewSource USER_OVERRIDE = fromString("user_override"); + + /** + * Creates a new instance of AgentInsightOverviewSource value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public AgentInsightOverviewSource() { + } + + /** + * Creates or finds a AgentInsightOverviewSource from its string representation. + * + * @param name a name to look for. + * @return the corresponding AgentInsightOverviewSource. + */ + @Generated + public static AgentInsightOverviewSource fromString(String name) { + return fromString(name, AgentInsightOverviewSource.class); + } + + /** + * Gets known AgentInsightOverviewSource values. + * + * @return known AgentInsightOverviewSource values. + */ + @Generated + public static Collection values() { + return values(AgentInsightOverviewSource.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java new file mode 100644 index 000000000000..023452dbf0e7 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The Prompt surface changed by a proposed fix. + */ +public final class AgentInsightPromptSurface extends ExpandableStringEnum { + /** + * The Prompt instructions. + */ + @Generated + public static final AgentInsightPromptSurface INSTRUCTIONS = fromString("instructions"); + + /** + * A function tool definition. + */ + @Generated + public static final AgentInsightPromptSurface TOOL = fromString("tool"); + + /** + * Creates a new instance of AgentInsightPromptSurface value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public AgentInsightPromptSurface() { + } + + /** + * Creates or finds a AgentInsightPromptSurface from its string representation. + * + * @param name a name to look for. + * @return the corresponding AgentInsightPromptSurface. + */ + @Generated + public static AgentInsightPromptSurface fromString(String name) { + return fromString(name, AgentInsightPromptSurface.class); + } + + /** + * Gets known AgentInsightPromptSurface values. + * + * @return known AgentInsightPromptSurface values. + */ + @Generated + public static Collection values() { + return values(AgentInsightPromptSurface.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java new file mode 100644 index 000000000000..4975768d24c9 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * A recommended fix for an agent insight. + */ +@Immutable +public final class AgentInsightProposedFix implements JsonSerializable { + /* + * The proposed-fix discriminator. + */ + @Generated + private final AgentInsightProposedFixKind kind; + + /* + * The human-readable remediation guidance. + */ + @Generated + private final String text; + + /* + * The concrete changes. Omitted for a prose-only fix. + */ + @Generated + private List changes; + + /** + * Creates an instance of AgentInsightProposedFix class. + * + * @param kind the kind value to set. + * @param text the text value to set. + */ + @Generated + private AgentInsightProposedFix(AgentInsightProposedFixKind kind, String text) { + this.kind = kind; + this.text = text; + } + + /** + * Get the kind property: The proposed-fix discriminator. + * + * @return the kind value. + */ + @Generated + public AgentInsightProposedFixKind getKind() { + return this.kind; + } + + /** + * Get the text property: The human-readable remediation guidance. + * + * @return the text value. + */ + @Generated + public String getText() { + return this.text; + } + + /** + * Get the changes property: The concrete changes. Omitted for a prose-only fix. + * + * @return the changes value. + */ + @Generated + public List getChanges() { + return this.changes; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("kind", this.kind == null ? null : this.kind.toString()); + jsonWriter.writeStringField("text", this.text); + jsonWriter.writeArrayField("changes", this.changes, (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightProposedFix from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightProposedFix if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightProposedFix. + */ + @Generated + public static AgentInsightProposedFix fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightProposedFixKind kind = null; + String text = null; + List changes = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("kind".equals(fieldName)) { + kind = AgentInsightProposedFixKind.fromString(reader.getString()); + } else if ("text".equals(fieldName)) { + text = reader.getString(); + } else if ("changes".equals(fieldName)) { + changes = reader.readArray(reader1 -> AgentInsightProposedFixChange.fromJson(reader1)); + } else { + reader.skipChildren(); + } + } + AgentInsightProposedFix deserializedAgentInsightProposedFix = new AgentInsightProposedFix(kind, text); + deserializedAgentInsightProposedFix.changes = changes; + + return deserializedAgentInsightProposedFix; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java new file mode 100644 index 000000000000..0d8ba60f862a --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java @@ -0,0 +1,207 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A customer-renderable change in a proposed fix. + */ +@Immutable +public final class AgentInsightProposedFixChange implements JsonSerializable { + /* + * The source path changed by a code change. + */ + @Generated + private String path; + + /* + * The language of the changed source path. + */ + @Generated + private String language; + + /* + * The unified diff for the changed source path. + */ + @Generated + private String diff; + + /* + * The Prompt surface changed by a Prompt change. + */ + @Generated + private AgentInsightPromptSurface surface; + + /* + * The user-visible target within a Prompt surface, when needed. + */ + @Generated + private String target; + + /* + * The bounded Prompt value before the change. Present for Prompt changes, including when null. + */ + @Generated + private BinaryData oldValue; + + /* + * The bounded Prompt value after the change. Present for Prompt changes, including when null. + */ + @Generated + private BinaryData newValue; + + /** + * Creates an instance of AgentInsightProposedFixChange class. + */ + @Generated + private AgentInsightProposedFixChange() { + } + + /** + * Get the path property: The source path changed by a code change. + * + * @return the path value. + */ + @Generated + public String getPath() { + return this.path; + } + + /** + * Get the language property: The language of the changed source path. + * + * @return the language value. + */ + @Generated + public String getLanguage() { + return this.language; + } + + /** + * Get the diff property: The unified diff for the changed source path. + * + * @return the diff value. + */ + @Generated + public String getDiff() { + return this.diff; + } + + /** + * Get the surface property: The Prompt surface changed by a Prompt change. + * + * @return the surface value. + */ + @Generated + public AgentInsightPromptSurface getSurface() { + return this.surface; + } + + /** + * Get the target property: The user-visible target within a Prompt surface, when needed. + * + * @return the target value. + */ + @Generated + public String getTarget() { + return this.target; + } + + /** + * Get the oldValue property: The bounded Prompt value before the change. Present for Prompt changes, including when + * null. + * + * @return the oldValue value. + */ + @Generated + public BinaryData getOldValue() { + return this.oldValue; + } + + /** + * Get the newValue property: The bounded Prompt value after the change. Present for Prompt changes, including when + * null. + * + * @return the newValue value. + */ + @Generated + public BinaryData getNewValue() { + return this.newValue; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("path", this.path); + jsonWriter.writeStringField("language", this.language); + jsonWriter.writeStringField("diff", this.diff); + jsonWriter.writeStringField("surface", this.surface == null ? null : this.surface.toString()); + jsonWriter.writeStringField("target", this.target); + if (this.oldValue != null) { + jsonWriter.writeFieldName("old_value"); + this.oldValue.writeTo(jsonWriter); + } + if (this.newValue != null) { + jsonWriter.writeFieldName("new_value"); + this.newValue.writeTo(jsonWriter); + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightProposedFixChange from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightProposedFixChange if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the AgentInsightProposedFixChange. + */ + @Generated + public static AgentInsightProposedFixChange fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightProposedFixChange deserializedAgentInsightProposedFixChange + = new AgentInsightProposedFixChange(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("path".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.path = reader.getString(); + } else if ("language".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.language = reader.getString(); + } else if ("diff".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.diff = reader.getString(); + } else if ("surface".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.surface + = AgentInsightPromptSurface.fromString(reader.getString()); + } else if ("target".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.target = reader.getString(); + } else if ("old_value".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.oldValue + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else if ("new_value".equals(fieldName)) { + deserializedAgentInsightProposedFixChange.newValue + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightProposedFixChange; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java new file mode 100644 index 000000000000..c561d44561c5 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The customer-renderable kind of an agent insight's proposed fix. + */ +public final class AgentInsightProposedFixKind extends ExpandableStringEnum { + /** + * Text-only remediation guidance. + */ + @Generated + public static final AgentInsightProposedFixKind PROSE = fromString("prose"); + + /** + * A validated source-code change. + */ + @Generated + public static final AgentInsightProposedFixKind CODE_CHANGE = fromString("code_change"); + + /** + * A validated Prompt change. + */ + @Generated + public static final AgentInsightProposedFixKind PROMPT_CHANGE = fromString("prompt_change"); + + /** + * Creates a new instance of AgentInsightProposedFixKind value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public AgentInsightProposedFixKind() { + } + + /** + * Creates or finds a AgentInsightProposedFixKind from its string representation. + * + * @param name a name to look for. + * @return the corresponding AgentInsightProposedFixKind. + */ + @Generated + public static AgentInsightProposedFixKind fromString(String name) { + return fromString(name, AgentInsightProposedFixKind.class); + } + + /** + * Gets known AgentInsightProposedFixKind values. + * + * @return known AgentInsightProposedFixKind values. + */ + @Generated + public static Collection values() { + return values(AgentInsightProposedFixKind.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java new file mode 100644 index 000000000000..c3d00332643b --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The recommended remediation for an agent insight. + */ +@Immutable +public final class AgentInsightRecommendedAction implements JsonSerializable { + /* + * The single recommended fix for the issue represented by the insight. + */ + @Generated + private final AgentInsightProposedFix proposedFix; + + /** + * Creates an instance of AgentInsightRecommendedAction class. + * + * @param proposedFix the proposedFix value to set. + */ + @Generated + private AgentInsightRecommendedAction(AgentInsightProposedFix proposedFix) { + this.proposedFix = proposedFix; + } + + /** + * Get the proposedFix property: The single recommended fix for the issue represented by the insight. + * + * @return the proposedFix value. + */ + @Generated + public AgentInsightProposedFix getProposedFix() { + return this.proposedFix; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("proposed_fix", this.proposedFix); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightRecommendedAction from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightRecommendedAction if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightRecommendedAction. + */ + @Generated + public static AgentInsightRecommendedAction fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightProposedFix proposedFix = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("proposed_fix".equals(fieldName)) { + proposedFix = AgentInsightProposedFix.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return new AgentInsightRecommendedAction(proposedFix); + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java new file mode 100644 index 000000000000..f8323d2360d3 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java @@ -0,0 +1,342 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * A long-running run that analyzes one agent's traces and updates that agent's insights. + */ +@Immutable +public final class AgentInsightRun implements JsonSerializable { + /* + * Server-assigned unique identifier. + */ + @Generated + private String id; + + /* + * Caller-supplied inputs. + */ + @Generated + private AgentInsightRunCreate inputs; + + /* + * Result produced on success. + */ + @Generated + private AgentInsightRunResult result; + + /* + * Current lifecycle status. + */ + @Generated + private JobStatus status; + + /* + * Error details — populated only on failure. + */ + @Generated + private ApiError error; + + /* + * The Agent Insights monitor this run belongs to. + */ + @Generated + private String monitorId; + + /* + * The agent whose traces are analyzed by this run. + */ + @Generated + private String agentName; + + /* + * The trigger that started the run. + */ + @Generated + private AgentInsightRunTrigger trigger; + + /* + * The time when this run was created. + */ + @Generated + private long createdAt; + + /* + * The time when this run was last updated. + */ + @Generated + private long updatedAt; + + /* + * The start of the trace window analyzed by this run. + */ + @Generated + private long windowStart; + + /* + * The end of the trace window analyzed by this run. + */ + @Generated + private long windowEnd; + + /* + * The time when this run started processing. + */ + @Generated + private Long startedAt; + + /* + * The time when this run reached a terminal status. + */ + @Generated + private Long completedAt; + + /* + * The model deployment used to analyze traces for this run. + */ + @Generated + private String modelDeploymentName; + + /** + * Creates an instance of AgentInsightRun class. + */ + @Generated + private AgentInsightRun() { + } + + /** + * Get the id property: Server-assigned unique identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the inputs property: Caller-supplied inputs. + * + * @return the inputs value. + */ + @Generated + public AgentInsightRunCreate getInputs() { + return this.inputs; + } + + /** + * Get the result property: Result produced on success. + * + * @return the result value. + */ + @Generated + public AgentInsightRunResult getResult() { + return this.result; + } + + /** + * Get the status property: Current lifecycle status. + * + * @return the status value. + */ + @Generated + public JobStatus getStatus() { + return this.status; + } + + /** + * Get the error property: Error details — populated only on failure. + * + * @return the error value. + */ + @Generated + public ApiError getError() { + return this.error; + } + + /** + * Get the monitorId property: The Agent Insights monitor this run belongs to. + * + * @return the monitorId value. + */ + @Generated + public String getMonitorId() { + return this.monitorId; + } + + /** + * Get the agentName property: The agent whose traces are analyzed by this run. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the trigger property: The trigger that started the run. + * + * @return the trigger value. + */ + @Generated + public AgentInsightRunTrigger getTrigger() { + return this.trigger; + } + + /** + * Get the createdAt property: The time when this run was created. + * + * @return the createdAt value. + */ + @Generated + public OffsetDateTime getCreatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.createdAt), ZoneOffset.UTC); + } + + /** + * Get the updatedAt property: The time when this run was last updated. + * + * @return the updatedAt value. + */ + @Generated + public OffsetDateTime getUpdatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.updatedAt), ZoneOffset.UTC); + } + + /** + * Get the windowStart property: The start of the trace window analyzed by this run. + * + * @return the windowStart value. + */ + @Generated + public OffsetDateTime getWindowStart() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.windowStart), ZoneOffset.UTC); + } + + /** + * Get the windowEnd property: The end of the trace window analyzed by this run. + * + * @return the windowEnd value. + */ + @Generated + public OffsetDateTime getWindowEnd() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.windowEnd), ZoneOffset.UTC); + } + + /** + * Get the startedAt property: The time when this run started processing. + * + * @return the startedAt value. + */ + @Generated + public OffsetDateTime getStartedAt() { + if (this.startedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.startedAt), ZoneOffset.UTC); + } + + /** + * Get the completedAt property: The time when this run reached a terminal status. + * + * @return the completedAt value. + */ + @Generated + public OffsetDateTime getCompletedAt() { + if (this.completedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.completedAt), ZoneOffset.UTC); + } + + /** + * Get the modelDeploymentName property: The model deployment used to analyze traces for this run. + * + * @return the modelDeploymentName value. + */ + @Generated + public String getModelDeploymentName() { + return this.modelDeploymentName; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeJsonField("inputs", this.inputs); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightRun from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightRun if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightRun. + */ + @Generated + public static AgentInsightRun fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightRun deserializedAgentInsightRun = new AgentInsightRun(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + deserializedAgentInsightRun.id = reader.getString(); + } else if ("status".equals(fieldName)) { + deserializedAgentInsightRun.status = JobStatus.fromString(reader.getString()); + } else if ("monitor_id".equals(fieldName)) { + deserializedAgentInsightRun.monitorId = reader.getString(); + } else if ("agent_name".equals(fieldName)) { + deserializedAgentInsightRun.agentName = reader.getString(); + } else if ("trigger".equals(fieldName)) { + deserializedAgentInsightRun.trigger = AgentInsightRunTrigger.fromString(reader.getString()); + } else if ("created_at".equals(fieldName)) { + deserializedAgentInsightRun.createdAt = reader.getLong(); + } else if ("updated_at".equals(fieldName)) { + deserializedAgentInsightRun.updatedAt = reader.getLong(); + } else if ("window_start".equals(fieldName)) { + deserializedAgentInsightRun.windowStart = reader.getLong(); + } else if ("window_end".equals(fieldName)) { + deserializedAgentInsightRun.windowEnd = reader.getLong(); + } else if ("model_deployment_name".equals(fieldName)) { + deserializedAgentInsightRun.modelDeploymentName = reader.getString(); + } else if ("inputs".equals(fieldName)) { + deserializedAgentInsightRun.inputs = AgentInsightRunCreate.fromJson(reader); + } else if ("result".equals(fieldName)) { + deserializedAgentInsightRun.result = AgentInsightRunResult.fromJson(reader); + } else if ("error".equals(fieldName)) { + deserializedAgentInsightRun.error = ApiError.fromJson(reader); + } else if ("started_at".equals(fieldName)) { + deserializedAgentInsightRun.startedAt = reader.getNullable(JsonReader::getLong); + } else if ("completed_at".equals(fieldName)) { + deserializedAgentInsightRun.completedAt = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightRun; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java new file mode 100644 index 000000000000..f33855397953 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Inputs used when creating an agent insight run. + */ +@Fluent +public final class AgentInsightRunCreate implements JsonSerializable { + /* + * Optional finite positive number of hours of trace history to analyze, up to 2,160. Defaults to 168. + */ + @Generated + private Double lookbackHours; + + /** + * Creates an instance of AgentInsightRunCreate class. + */ + @Generated + public AgentInsightRunCreate() { + } + + /** + * Get the lookbackHours property: Optional finite positive number of hours of trace history to analyze, up to + * 2,160. Defaults to 168. + * + * @return the lookbackHours value. + */ + @Generated + public Double getLookbackHours() { + return this.lookbackHours; + } + + /** + * Set the lookbackHours property: Optional finite positive number of hours of trace history to analyze, up to + * 2,160. Defaults to 168. + * + * @param lookbackHours the lookbackHours value to set. + * @return the AgentInsightRunCreate object itself. + */ + @Generated + public AgentInsightRunCreate setLookbackHours(Double lookbackHours) { + this.lookbackHours = lookbackHours; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeNumberField("lookback_hours", this.lookbackHours); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightRunCreate from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightRunCreate if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the AgentInsightRunCreate. + */ + @Generated + public static AgentInsightRunCreate fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightRunCreate deserializedAgentInsightRunCreate = new AgentInsightRunCreate(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("lookback_hours".equals(fieldName)) { + deserializedAgentInsightRunCreate.lookbackHours = reader.getNullable(JsonReader::getDouble); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightRunCreate; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java new file mode 100644 index 000000000000..0d4e4ea2c152 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java @@ -0,0 +1,195 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Result statistics produced when an agent insight run succeeds. + */ +@Immutable +public final class AgentInsightRunResult implements JsonSerializable { + /* + * The number of traces in the analyzed time window. + */ + @Generated + private final int tracesInWindow; + + /* + * The number of traces analyzed by the run. + */ + @Generated + private final int tracesAnalyzed; + + /* + * The number of insights created by the run. + */ + @Generated + private final int insightsCreated; + + /* + * The number of insights updated by the run. + */ + @Generated + private final int insightsUpdated; + + /* + * The number of insights reopened by the run. + */ + @Generated + private final int insightsReopened; + + /* + * Token usage for the run's insight-generation analysis. + */ + @Generated + private final AgentInsightTokenUsage tokenUsage; + + /** + * Creates an instance of AgentInsightRunResult class. + * + * @param tracesInWindow the tracesInWindow value to set. + * @param tracesAnalyzed the tracesAnalyzed value to set. + * @param insightsCreated the insightsCreated value to set. + * @param insightsUpdated the insightsUpdated value to set. + * @param insightsReopened the insightsReopened value to set. + * @param tokenUsage the tokenUsage value to set. + */ + @Generated + private AgentInsightRunResult(int tracesInWindow, int tracesAnalyzed, int insightsCreated, int insightsUpdated, + int insightsReopened, AgentInsightTokenUsage tokenUsage) { + this.tracesInWindow = tracesInWindow; + this.tracesAnalyzed = tracesAnalyzed; + this.insightsCreated = insightsCreated; + this.insightsUpdated = insightsUpdated; + this.insightsReopened = insightsReopened; + this.tokenUsage = tokenUsage; + } + + /** + * Get the tracesInWindow property: The number of traces in the analyzed time window. + * + * @return the tracesInWindow value. + */ + @Generated + public int getTracesInWindow() { + return this.tracesInWindow; + } + + /** + * Get the tracesAnalyzed property: The number of traces analyzed by the run. + * + * @return the tracesAnalyzed value. + */ + @Generated + public int getTracesAnalyzed() { + return this.tracesAnalyzed; + } + + /** + * Get the insightsCreated property: The number of insights created by the run. + * + * @return the insightsCreated value. + */ + @Generated + public int getInsightsCreated() { + return this.insightsCreated; + } + + /** + * Get the insightsUpdated property: The number of insights updated by the run. + * + * @return the insightsUpdated value. + */ + @Generated + public int getInsightsUpdated() { + return this.insightsUpdated; + } + + /** + * Get the insightsReopened property: The number of insights reopened by the run. + * + * @return the insightsReopened value. + */ + @Generated + public int getInsightsReopened() { + return this.insightsReopened; + } + + /** + * Get the tokenUsage property: Token usage for the run's insight-generation analysis. + * + * @return the tokenUsage value. + */ + @Generated + public AgentInsightTokenUsage getTokenUsage() { + return this.tokenUsage; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeIntField("traces_in_window", this.tracesInWindow); + jsonWriter.writeIntField("traces_analyzed", this.tracesAnalyzed); + jsonWriter.writeIntField("insights_created", this.insightsCreated); + jsonWriter.writeIntField("insights_updated", this.insightsUpdated); + jsonWriter.writeIntField("insights_reopened", this.insightsReopened); + jsonWriter.writeJsonField("token_usage", this.tokenUsage); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightRunResult from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightRunResult if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightRunResult. + */ + @Generated + public static AgentInsightRunResult fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + int tracesInWindow = 0; + int tracesAnalyzed = 0; + int insightsCreated = 0; + int insightsUpdated = 0; + int insightsReopened = 0; + AgentInsightTokenUsage tokenUsage = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("traces_in_window".equals(fieldName)) { + tracesInWindow = reader.getInt(); + } else if ("traces_analyzed".equals(fieldName)) { + tracesAnalyzed = reader.getInt(); + } else if ("insights_created".equals(fieldName)) { + insightsCreated = reader.getInt(); + } else if ("insights_updated".equals(fieldName)) { + insightsUpdated = reader.getInt(); + } else if ("insights_reopened".equals(fieldName)) { + insightsReopened = reader.getInt(); + } else if ("token_usage".equals(fieldName)) { + tokenUsage = AgentInsightTokenUsage.fromJson(reader); + } else { + reader.skipChildren(); + } + } + return new AgentInsightRunResult(tracesInWindow, tracesAnalyzed, insightsCreated, insightsUpdated, + insightsReopened, tokenUsage); + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java new file mode 100644 index 000000000000..e8d7296334fb --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The trigger that started an agent insight run. + */ +public final class AgentInsightRunTrigger extends ExpandableStringEnum { + /** + * The run was started on demand by a user or client. + */ + @Generated + public static final AgentInsightRunTrigger ON_DEMAND = fromString("on_demand"); + + /** + * The run was started by scheduled insight generation. + */ + @Generated + public static final AgentInsightRunTrigger SCHEDULED = fromString("scheduled"); + + /** + * Creates a new instance of AgentInsightRunTrigger value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public AgentInsightRunTrigger() { + } + + /** + * Creates or finds a AgentInsightRunTrigger from its string representation. + * + * @param name a name to look for. + * @return the corresponding AgentInsightRunTrigger. + */ + @Generated + public static AgentInsightRunTrigger fromString(String name) { + return fromString(name, AgentInsightRunTrigger.class); + } + + /** + * Gets known AgentInsightRunTrigger values. + * + * @return known AgentInsightRunTrigger values. + */ + @Generated + public static Collection values() { + return values(AgentInsightRunTrigger.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java new file mode 100644 index 000000000000..0d9317a89d19 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The severity of an agent insight. + */ +public final class AgentInsightSeverity extends ExpandableStringEnum { + /** + * The insight has high severity. + */ + @Generated + public static final AgentInsightSeverity HIGH = fromString("high"); + + /** + * The insight has medium severity. + */ + @Generated + public static final AgentInsightSeverity MEDIUM = fromString("medium"); + + /** + * The insight has low severity. + */ + @Generated + public static final AgentInsightSeverity LOW = fromString("low"); + + /** + * Creates a new instance of AgentInsightSeverity value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public AgentInsightSeverity() { + } + + /** + * Creates or finds a AgentInsightSeverity from its string representation. + * + * @param name a name to look for. + * @return the corresponding AgentInsightSeverity. + */ + @Generated + public static AgentInsightSeverity fromString(String name) { + return fromString(name, AgentInsightSeverity.class); + } + + /** + * Gets known AgentInsightSeverity values. + * + * @return known AgentInsightSeverity values. + */ + @Generated + public static Collection values() { + return values(AgentInsightSeverity.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java new file mode 100644 index 000000000000..cfde79b55189 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The lifecycle status of an agent insight. + */ +public final class AgentInsightStatus extends ExpandableStringEnum { + /** + * The insight is active and should be reviewed. + */ + @Generated + public static final AgentInsightStatus ACTIVE = fromString("active"); + + /** + * The insight was resolved by the user. + */ + @Generated + public static final AgentInsightStatus RESOLVED = fromString("resolved"); + + /** + * The insight was ignored by the user. + */ + @Generated + public static final AgentInsightStatus IGNORED = fromString("ignored"); + + /** + * Creates a new instance of AgentInsightStatus value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public AgentInsightStatus() { + } + + /** + * Creates or finds a AgentInsightStatus from its string representation. + * + * @param name a name to look for. + * @return the corresponding AgentInsightStatus. + */ + @Generated + public static AgentInsightStatus fromString(String name) { + return fromString(name, AgentInsightStatus.class); + } + + /** + * Gets known AgentInsightStatus values. + * + * @return known AgentInsightStatus values. + */ + @Generated + public static Collection values() { + return values(AgentInsightStatus.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java new file mode 100644 index 000000000000..d2238376144f --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java @@ -0,0 +1,167 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.Map; + +/** + * Structured reason why scheduled generation is suspended for a monitor. + */ +@Immutable +public final class AgentInsightSuspension implements JsonSerializable { + /* + * Stable, machine-readable suspension category. + */ + @Generated + private final String code; + + /* + * Human-readable description of the suspension. + */ + @Generated + private final String message; + + /* + * The time when the suspension occurred. + */ + @Generated + private final long occurredAt; + + /* + * Additional reason-specific suspension details. + */ + @Generated + private Map details; + + /** + * Creates an instance of AgentInsightSuspension class. + * + * @param code the code value to set. + * @param message the message value to set. + * @param occurredAt the occurredAt value to set. + */ + @Generated + private AgentInsightSuspension(String code, String message, OffsetDateTime occurredAt) { + this.code = code; + this.message = message; + if (occurredAt == null) { + this.occurredAt = 0L; + } else { + this.occurredAt = occurredAt.toEpochSecond(); + } + } + + /** + * Get the code property: Stable, machine-readable suspension category. + * + * @return the code value. + */ + @Generated + public String getCode() { + return this.code; + } + + /** + * Get the message property: Human-readable description of the suspension. + * + * @return the message value. + */ + @Generated + public String getMessage() { + return this.message; + } + + /** + * Get the occurredAt property: The time when the suspension occurred. + * + * @return the occurredAt value. + */ + @Generated + public OffsetDateTime getOccurredAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.occurredAt), ZoneOffset.UTC); + } + + /** + * Get the details property: Additional reason-specific suspension details. + * + * @return the details value. + */ + @Generated + public Map getDetails() { + return this.details; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("code", this.code); + jsonWriter.writeStringField("message", this.message); + jsonWriter.writeLongField("occurred_at", this.occurredAt); + jsonWriter.writeMapField("details", this.details, (writer, element) -> { + if (element == null) { + writer.writeNull(); + } else { + element.writeTo(writer); + } + }); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightSuspension from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightSuspension if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightSuspension. + */ + @Generated + public static AgentInsightSuspension fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String code = null; + String message = null; + OffsetDateTime occurredAt = null; + Map details = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("code".equals(fieldName)) { + code = reader.getString(); + } else if ("message".equals(fieldName)) { + message = reader.getString(); + } else if ("occurred_at".equals(fieldName)) { + occurredAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else if ("details".equals(fieldName)) { + details = reader.readMap(reader1 -> reader1 + .getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped()))); + } else { + reader.skipChildren(); + } + } + AgentInsightSuspension deserializedAgentInsightSuspension + = new AgentInsightSuspension(code, message, occurredAt); + deserializedAgentInsightSuspension.details = details; + + return deserializedAgentInsightSuspension; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java new file mode 100644 index 000000000000..a05a63a5b0bc --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java @@ -0,0 +1,151 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Token usage for an Agent Insights run. + */ +@Immutable +public final class AgentInsightTokenUsage implements JsonSerializable { + /* + * The number of input tokens used by the run. + */ + @Generated + private final int inputTokens; + + /* + * The number of output tokens used by the run. + */ + @Generated + private final int outputTokens; + + /* + * The number of input tokens served from cache. + */ + @Generated + private Integer cachedTokens; + + /* + * The total number of tokens used by the run. + */ + @Generated + private final int totalTokens; + + /** + * Creates an instance of AgentInsightTokenUsage class. + * + * @param inputTokens the inputTokens value to set. + * @param outputTokens the outputTokens value to set. + * @param totalTokens the totalTokens value to set. + */ + @Generated + private AgentInsightTokenUsage(int inputTokens, int outputTokens, int totalTokens) { + this.inputTokens = inputTokens; + this.outputTokens = outputTokens; + this.totalTokens = totalTokens; + } + + /** + * Get the inputTokens property: The number of input tokens used by the run. + * + * @return the inputTokens value. + */ + @Generated + public int getInputTokens() { + return this.inputTokens; + } + + /** + * Get the outputTokens property: The number of output tokens used by the run. + * + * @return the outputTokens value. + */ + @Generated + public int getOutputTokens() { + return this.outputTokens; + } + + /** + * Get the cachedTokens property: The number of input tokens served from cache. + * + * @return the cachedTokens value. + */ + @Generated + public Integer getCachedTokens() { + return this.cachedTokens; + } + + /** + * Get the totalTokens property: The total number of tokens used by the run. + * + * @return the totalTokens value. + */ + @Generated + public int getTotalTokens() { + return this.totalTokens; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeIntField("input_tokens", this.inputTokens); + jsonWriter.writeIntField("output_tokens", this.outputTokens); + jsonWriter.writeIntField("total_tokens", this.totalTokens); + jsonWriter.writeNumberField("cached_tokens", this.cachedTokens); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightTokenUsage from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightTokenUsage if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightTokenUsage. + */ + @Generated + public static AgentInsightTokenUsage fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + int inputTokens = 0; + int outputTokens = 0; + int totalTokens = 0; + Integer cachedTokens = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("input_tokens".equals(fieldName)) { + inputTokens = reader.getInt(); + } else if ("output_tokens".equals(fieldName)) { + outputTokens = reader.getInt(); + } else if ("total_tokens".equals(fieldName)) { + totalTokens = reader.getInt(); + } else if ("cached_tokens".equals(fieldName)) { + cachedTokens = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + AgentInsightTokenUsage deserializedAgentInsightTokenUsage + = new AgentInsightTokenUsage(inputTokens, outputTokens, totalTokens); + deserializedAgentInsightTokenUsage.cachedTokens = cachedTokens; + + return deserializedAgentInsightTokenUsage; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java new file mode 100644 index 000000000000..7013745086f0 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.ai.projects.implementation.JsonMergePatchHelper; +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +/** + * Fields that can be updated on an agent insight. + */ +@Fluent +public final class AgentInsightUpdate implements JsonSerializable { + /* + * The lifecycle status to apply to the insight. + */ + @Generated + private AgentInsightStatus status; + + /** + * Stores updated model property, the value is property name, not serialized name. + */ + @Generated + private final Set updatedProperties = new HashSet<>(); + + @Generated + private boolean jsonMergePatch; + + @Generated + private void serializeAsJsonMergePatch(boolean jsonMergePatch) { + this.jsonMergePatch = jsonMergePatch; + } + + static { + JsonMergePatchHelper.setAgentInsightUpdateAccessor(new JsonMergePatchHelper.AgentInsightUpdateAccessor() { + @Override + public AgentInsightUpdate prepareModelForJsonMergePatch(AgentInsightUpdate model, + boolean jsonMergePatchEnabled) { + model.serializeAsJsonMergePatch(jsonMergePatchEnabled); + return model; + } + + @Override + public boolean isJsonMergePatch(AgentInsightUpdate model) { + return model.jsonMergePatch; + } + }); + } + + /** + * Creates an instance of AgentInsightUpdate class. + */ + @Generated + public AgentInsightUpdate() { + } + + /** + * Get the status property: The lifecycle status to apply to the insight. + * + * @return the status value. + */ + @Generated + public AgentInsightStatus getStatus() { + return this.status; + } + + /** + * Set the status property: The lifecycle status to apply to the insight. + * + * @param status the status value to set. + * @return the AgentInsightUpdate object itself. + */ + @Generated + public AgentInsightUpdate setStatus(AgentInsightStatus status) { + this.status = status; + this.updatedProperties.add("status"); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + if (jsonMergePatch) { + return toJsonMergePatch(jsonWriter); + } else { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + return jsonWriter.writeEndObject(); + } + } + + @Generated + private JsonWriter toJsonMergePatch(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + if (updatedProperties.contains("status")) { + if (this.status == null) { + jsonWriter.writeNullField("status"); + } else { + jsonWriter.writeStringField("status", this.status.toString()); + } + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightUpdate from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightUpdate if the JsonReader was pointing to an instance of it, or null if it was + * pointing to JSON null. + * @throws IOException If an error occurs while reading the AgentInsightUpdate. + */ + @Generated + public static AgentInsightUpdate fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightUpdate deserializedAgentInsightUpdate = new AgentInsightUpdate(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("status".equals(fieldName)) { + deserializedAgentInsightUpdate.status = AgentInsightStatus.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightUpdate; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java new file mode 100644 index 000000000000..52b75ee4caf7 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; + +/** + * The effective overview for an Agent Insights monitor. + */ +@Immutable +public final class AgentInsightsOverview implements JsonSerializable { + /* + * The overview content. + */ + @Generated + private final String content; + + /* + * Where the effective overview came from. + */ + @Generated + private final AgentInsightOverviewSource source; + + /* + * The time when this overview was last updated. + */ + @Generated + private final long updatedAt; + + /** + * Creates an instance of AgentInsightsOverview class. + * + * @param content the content value to set. + * @param source the source value to set. + * @param updatedAt the updatedAt value to set. + */ + @Generated + private AgentInsightsOverview(String content, AgentInsightOverviewSource source, OffsetDateTime updatedAt) { + this.content = content; + this.source = source; + if (updatedAt == null) { + this.updatedAt = 0L; + } else { + this.updatedAt = updatedAt.toEpochSecond(); + } + } + + /** + * Get the content property: The overview content. + * + * @return the content value. + */ + @Generated + public String getContent() { + return this.content; + } + + /** + * Get the source property: Where the effective overview came from. + * + * @return the source value. + */ + @Generated + public AgentInsightOverviewSource getSource() { + return this.source; + } + + /** + * Get the updatedAt property: The time when this overview was last updated. + * + * @return the updatedAt value. + */ + @Generated + public OffsetDateTime getUpdatedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.updatedAt), ZoneOffset.UTC); + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("content", this.content); + jsonWriter.writeStringField("source", this.source == null ? null : this.source.toString()); + jsonWriter.writeLongField("updated_at", this.updatedAt); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightsOverview from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightsOverview if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IllegalStateException If the deserialized JSON object was missing any required properties. + * @throws IOException If an error occurs while reading the AgentInsightsOverview. + */ + @Generated + public static AgentInsightsOverview fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String content = null; + AgentInsightOverviewSource source = null; + OffsetDateTime updatedAt = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("content".equals(fieldName)) { + content = reader.getString(); + } else if ("source".equals(fieldName)) { + source = AgentInsightOverviewSource.fromString(reader.getString()); + } else if ("updated_at".equals(fieldName)) { + updatedAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else { + reader.skipChildren(); + } + } + return new AgentInsightsOverview(content, source, updatedAt); + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java new file mode 100644 index 000000000000..f84b96332722 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.ai.projects.implementation.JsonMergePatchHelper; +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +/** + * A user-provided overview that becomes effective immediately and seeds the next generation. + */ +@Fluent +public final class AgentInsightsOverviewOverride implements JsonSerializable { + /* + * The nonblank overview content, limited to 64 KiB when encoded as UTF-8. + */ + @Generated + private String content; + + /** + * Stores updated model property, the value is property name, not serialized name. + */ + @Generated + private final Set updatedProperties = new HashSet<>(); + + @Generated + private boolean jsonMergePatch; + + @Generated + private void serializeAsJsonMergePatch(boolean jsonMergePatch) { + this.jsonMergePatch = jsonMergePatch; + } + + static { + JsonMergePatchHelper + .setAgentInsightsOverviewOverrideAccessor(new JsonMergePatchHelper.AgentInsightsOverviewOverrideAccessor() { + @Override + public AgentInsightsOverviewOverride prepareModelForJsonMergePatch(AgentInsightsOverviewOverride model, + boolean jsonMergePatchEnabled) { + model.serializeAsJsonMergePatch(jsonMergePatchEnabled); + return model; + } + + @Override + public boolean isJsonMergePatch(AgentInsightsOverviewOverride model) { + return model.jsonMergePatch; + } + }); + } + + /** + * Creates an instance of AgentInsightsOverviewOverride class. + */ + @Generated + public AgentInsightsOverviewOverride() { + } + + /** + * Get the content property: The nonblank overview content, limited to 64 KiB when encoded as UTF-8. + * + * @return the content value. + */ + @Generated + public String getContent() { + return this.content; + } + + /** + * Set the content property: The nonblank overview content, limited to 64 KiB when encoded as UTF-8. + *

Required when create the resource.

+ * + * @param content the content value to set. + * @return the AgentInsightsOverviewOverride object itself. + */ + @Generated + public AgentInsightsOverviewOverride setContent(String content) { + this.content = content; + this.updatedProperties.add("content"); + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + if (jsonMergePatch) { + return toJsonMergePatch(jsonWriter); + } else { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("content", this.content); + return jsonWriter.writeEndObject(); + } + } + + @Generated + private JsonWriter toJsonMergePatch(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + if (updatedProperties.contains("content")) { + if (this.content == null) { + jsonWriter.writeNullField("content"); + } else { + jsonWriter.writeStringField("content", this.content); + } + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of AgentInsightsOverviewOverride from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of AgentInsightsOverviewOverride if the JsonReader was pointing to an instance of it, or null + * if it was pointing to JSON null. + * @throws IOException If an error occurs while reading the AgentInsightsOverviewOverride. + */ + @Generated + public static AgentInsightsOverviewOverride fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + AgentInsightsOverviewOverride deserializedAgentInsightsOverviewOverride + = new AgentInsightsOverviewOverride(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("content".equals(fieldName)) { + deserializedAgentInsightsOverviewOverride.content = reader.getString(); + } else { + reader.skipChildren(); + } + } + + return deserializedAgentInsightsOverviewOverride; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java new file mode 100644 index 000000000000..8b95f71b4258 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java @@ -0,0 +1,95 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * Optional authorization configuration for a routine dispatch. + */ +@Fluent +public final class RoutineAuthorization implements JsonSerializable { + /* + * 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. + */ + @Generated + private RoutineDispatchIdentity identity; + + /** + * Creates an instance of RoutineAuthorization class. + */ + @Generated + public RoutineAuthorization() { + } + + /** + * Get the identity property: 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. + * + * @return the identity value. + */ + @Generated + public RoutineDispatchIdentity getIdentity() { + return this.identity; + } + + /** + * Set the identity property: 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. + * + * @param identity the identity value to set. + * @return the RoutineAuthorization object itself. + */ + @Generated + public RoutineAuthorization setIdentity(RoutineDispatchIdentity identity) { + this.identity = identity; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("identity", this.identity == null ? null : this.identity.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of RoutineAuthorization from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of RoutineAuthorization if the JsonReader was pointing to an instance of it, or null if it + * was pointing to JSON null. + * @throws IOException If an error occurs while reading the RoutineAuthorization. + */ + @Generated + public static RoutineAuthorization fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + RoutineAuthorization deserializedRoutineAuthorization = new RoutineAuthorization(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("identity".equals(fieldName)) { + deserializedRoutineAuthorization.identity = RoutineDispatchIdentity.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + + return deserializedRoutineAuthorization; + }); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java new file mode 100644 index 000000000000..a83412329ab0 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.projects.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The supported identities for routine dispatch authorization. + */ +public final class RoutineDispatchIdentity extends ExpandableStringEnum { + /** + * Dispatches with the target agent identity and a foundation token. + */ + @Generated + public static final RoutineDispatchIdentity AGENT = fromString("agent"); + + /** + * An explicit customer opt-in to dispatch as the principal that created the routine. + */ + @Generated + public static final RoutineDispatchIdentity CREATOR = fromString("creator"); + + /** + * Creates a new instance of RoutineDispatchIdentity value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public RoutineDispatchIdentity() { + } + + /** + * Creates or finds a RoutineDispatchIdentity from its string representation. + * + * @param name a name to look for. + * @return the corresponding RoutineDispatchIdentity. + */ + @Generated + public static RoutineDispatchIdentity fromString(String name) { + return fromString(name, RoutineDispatchIdentity.class); + } + + /** + * Gets known RoutineDispatchIdentity values. + * + * @return known RoutineDispatchIdentity values. + */ + @Generated + public static Collection values() { + return values(RoutineDispatchIdentity.class); + } +} diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/SimulationSeedDataGenerationJobOptions.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/SimulationSeedDataGenerationJobOptions.java index 9d9105934b8f..ea68e78e59da 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/SimulationSeedDataGenerationJobOptions.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/SimulationSeedDataGenerationJobOptions.java @@ -12,7 +12,7 @@ import java.io.IOException; /** - * The options for a simulation seed data generation job. Use with multiturn evaluation scenarios and with prompt, file, + * The options for a task generation 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`. */ diff --git a/sdk/ai/azure-ai-projects/src/main/resources/META-INF/azure-ai-projects_metadata.json b/sdk/ai/azure-ai-projects/src/main/resources/META-INF/azure-ai-projects_metadata.json index 94e57a183f6b..7e41f1fe6e1b 100644 --- a/sdk/ai/azure-ai-projects/src/main/resources/META-INF/azure-ai-projects_metadata.json +++ b/sdk/ai/azure-ai-projects/src/main/resources/META-INF/azure-ai-projects_metadata.json @@ -1 +1 @@ -{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"9e07d9f47e84","crossLanguageDefinitions":{"com.azure.ai.projects.AIProjectClientBuilder":"Azure.AI.Projects","com.azure.ai.projects.BetaDatasetsAsyncClient":"Azure.AI.Projects.Beta.Datasets","com.azure.ai.projects.BetaDatasetsAsyncClient.beginCreateGenerationJob":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsAsyncClient.beginCreateGenerationJobWithModel":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsAsyncClient.cancelGenerationJob":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsAsyncClient.cancelGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsAsyncClient.deleteGenerationJob":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsAsyncClient.deleteGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsAsyncClient.getGenerationJob":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsAsyncClient.getGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsAsyncClient.listGenerationJobs":"Azure.AI.Projects.DataGenerationJobs.list","com.azure.ai.projects.BetaDatasetsClient":"Azure.AI.Projects.Beta.Datasets","com.azure.ai.projects.BetaDatasetsClient.beginCreateGenerationJob":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsClient.beginCreateGenerationJobWithModel":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsClient.cancelGenerationJob":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsClient.cancelGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsClient.deleteGenerationJob":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsClient.deleteGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsClient.getGenerationJob":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsClient.getGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsClient.listGenerationJobs":"Azure.AI.Projects.DataGenerationJobs.list","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient":"Azure.AI.Projects.Beta.EvaluationTaxonomies","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.createEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.createEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.deleteEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.deleteEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.getEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.getEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.listEvaluationTaxonomies":"Azure.AI.Projects.EvaluationTaxonomies.list","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.updateEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.updateEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluationTaxonomiesClient":"Azure.AI.Projects.Beta.EvaluationTaxonomies","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.createEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.createEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.deleteEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.deleteEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.getEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.getEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.listEvaluationTaxonomies":"Azure.AI.Projects.EvaluationTaxonomies.list","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.updateEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.updateEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluatorsAsyncClient":"Azure.AI.Projects.Beta.Evaluators","com.azure.ai.projects.BetaEvaluatorsAsyncClient.beginCreateEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsAsyncClient.beginCreateEvaluatorGenerationJobWithModel":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsAsyncClient.cancelEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsAsyncClient.cancelEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsAsyncClient.createEvaluatorVersion":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.createEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorVersion":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getCredentials":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getCredentialsWithResponse":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorVersion":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.listEvaluatorGenerationJobs":"Azure.AI.Projects.EvaluatorGenerationJobs.list","com.azure.ai.projects.BetaEvaluatorsAsyncClient.listEvaluatorVersions":"Azure.AI.Projects.Evaluators.listVersions","com.azure.ai.projects.BetaEvaluatorsAsyncClient.listLatestEvaluatorVersions":"Azure.AI.Projects.Evaluators.listLatestVersions","com.azure.ai.projects.BetaEvaluatorsAsyncClient.startPendingUpload":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsAsyncClient.startPendingUploadWithResponse":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsAsyncClient.updateEvaluatorVersion":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.updateEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaEvaluatorsClient":"Azure.AI.Projects.Beta.Evaluators","com.azure.ai.projects.BetaEvaluatorsClient.beginCreateEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsClient.beginCreateEvaluatorGenerationJobWithModel":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsClient.cancelEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsClient.cancelEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsClient.createEvaluatorVersion":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsClient.createEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorVersion":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsClient.getCredentials":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsClient.getCredentialsWithResponse":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorVersion":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsClient.listEvaluatorGenerationJobs":"Azure.AI.Projects.EvaluatorGenerationJobs.list","com.azure.ai.projects.BetaEvaluatorsClient.listEvaluatorVersions":"Azure.AI.Projects.Evaluators.listVersions","com.azure.ai.projects.BetaEvaluatorsClient.listLatestEvaluatorVersions":"Azure.AI.Projects.Evaluators.listLatestVersions","com.azure.ai.projects.BetaEvaluatorsClient.startPendingUpload":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsClient.startPendingUploadWithResponse":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsClient.updateEvaluatorVersion":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaEvaluatorsClient.updateEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaInsightsAsyncClient":"Azure.AI.Projects.Beta.Insights","com.azure.ai.projects.BetaInsightsAsyncClient.generateInsight":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsAsyncClient.generateInsightWithResponse":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsAsyncClient.getInsight":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsAsyncClient.getInsightWithResponse":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsAsyncClient.listInsights":"Azure.AI.Projects.Insights.list","com.azure.ai.projects.BetaInsightsClient":"Azure.AI.Projects.Beta.Insights","com.azure.ai.projects.BetaInsightsClient.generateInsight":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsClient.generateInsightWithResponse":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsClient.getInsight":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsClient.getInsightWithResponse":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsClient.listInsights":"Azure.AI.Projects.Insights.list","com.azure.ai.projects.BetaModelsAsyncClient":"Azure.AI.Projects.Beta.Models","com.azure.ai.projects.BetaModelsAsyncClient.createModelVersionAsyncWithResponse":"Azure.AI.Projects.Models.createAsync","com.azure.ai.projects.BetaModelsAsyncClient.deleteModelVersion":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsAsyncClient.deleteModelVersionWithResponse":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsAsyncClient.getModelCredentials":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsAsyncClient.getModelCredentialsWithResponse":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsAsyncClient.getModelVersion":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsAsyncClient.getModelVersionWithResponse":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsAsyncClient.listLatestModelVersions":"Azure.AI.Projects.Models.listLatest","com.azure.ai.projects.BetaModelsAsyncClient.listModelVersions":"Azure.AI.Projects.Models.listVersions","com.azure.ai.projects.BetaModelsAsyncClient.startModelPendingUpload":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsAsyncClient.startModelPendingUploadWithResponse":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsAsyncClient.updateModelVersion":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaModelsAsyncClient.updateModelVersionWithResponse":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaModelsClient":"Azure.AI.Projects.Beta.Models","com.azure.ai.projects.BetaModelsClient.createModelVersionAsyncWithResponse":"Azure.AI.Projects.Models.createAsync","com.azure.ai.projects.BetaModelsClient.deleteModelVersion":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsClient.deleteModelVersionWithResponse":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsClient.getModelCredentials":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsClient.getModelCredentialsWithResponse":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsClient.getModelVersion":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsClient.getModelVersionWithResponse":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsClient.listLatestModelVersions":"Azure.AI.Projects.Models.listLatest","com.azure.ai.projects.BetaModelsClient.listModelVersions":"Azure.AI.Projects.Models.listVersions","com.azure.ai.projects.BetaModelsClient.startModelPendingUpload":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsClient.startModelPendingUploadWithResponse":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsClient.updateModelVersion":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaModelsClient.updateModelVersionWithResponse":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaRedTeamsAsyncClient":"Azure.AI.Projects.Beta.RedTeams","com.azure.ai.projects.BetaRedTeamsAsyncClient.createRedTeamRun":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsAsyncClient.createRedTeamRunWithResponse":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsAsyncClient.getRedTeam":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsAsyncClient.getRedTeamWithResponse":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsAsyncClient.listRedTeams":"Azure.AI.Projects.RedTeams.list","com.azure.ai.projects.BetaRedTeamsClient":"Azure.AI.Projects.Beta.RedTeams","com.azure.ai.projects.BetaRedTeamsClient.createRedTeamRun":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsClient.createRedTeamRunWithResponse":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsClient.getRedTeam":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsClient.getRedTeamWithResponse":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsClient.listRedTeams":"Azure.AI.Projects.RedTeams.list","com.azure.ai.projects.BetaRoutinesAsyncClient":"Azure.AI.Projects.Beta.Routines","com.azure.ai.projects.BetaRoutinesAsyncClient.createOrUpdateRoutine":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.createOrUpdateRoutineWithResponse":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.deleteRoutine":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.deleteRoutineWithResponse":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.disableRoutine":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.disableRoutineWithResponse":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.dispatchRoutine":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesAsyncClient.dispatchRoutineWithResponse":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesAsyncClient.enableRoutine":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.enableRoutineWithResponse":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.getRoutine":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.getRoutineWithResponse":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.listRoutineRuns":"Azure.AI.Projects.Routines.listRoutineRuns","com.azure.ai.projects.BetaRoutinesAsyncClient.listRoutines":"Azure.AI.Projects.Routines.listRoutines","com.azure.ai.projects.BetaRoutinesClient":"Azure.AI.Projects.Beta.Routines","com.azure.ai.projects.BetaRoutinesClient.createOrUpdateRoutine":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesClient.createOrUpdateRoutineWithResponse":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesClient.deleteRoutine":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesClient.deleteRoutineWithResponse":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesClient.disableRoutine":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesClient.disableRoutineWithResponse":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesClient.dispatchRoutine":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesClient.dispatchRoutineWithResponse":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesClient.enableRoutine":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesClient.enableRoutineWithResponse":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesClient.getRoutine":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesClient.getRoutineWithResponse":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesClient.listRoutineRuns":"Azure.AI.Projects.Routines.listRoutineRuns","com.azure.ai.projects.BetaRoutinesClient.listRoutines":"Azure.AI.Projects.Routines.listRoutines","com.azure.ai.projects.BetaSchedulesAsyncClient":"Azure.AI.Projects.Beta.Schedules","com.azure.ai.projects.BetaSchedulesAsyncClient.createOrUpdateSchedule":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesAsyncClient.createOrUpdateScheduleWithResponse":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesAsyncClient.deleteSchedule":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesAsyncClient.deleteScheduleWithResponse":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesAsyncClient.getSchedule":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesAsyncClient.getScheduleRun":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesAsyncClient.getScheduleRunWithResponse":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesAsyncClient.getScheduleWithResponse":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesAsyncClient.listScheduleRuns":"Azure.AI.Projects.Schedules.listRuns","com.azure.ai.projects.BetaSchedulesAsyncClient.listSchedules":"Azure.AI.Projects.Schedules.list","com.azure.ai.projects.BetaSchedulesClient":"Azure.AI.Projects.Beta.Schedules","com.azure.ai.projects.BetaSchedulesClient.createOrUpdateSchedule":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesClient.createOrUpdateScheduleWithResponse":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesClient.deleteSchedule":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesClient.deleteScheduleWithResponse":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesClient.getSchedule":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesClient.getScheduleRun":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesClient.getScheduleRunWithResponse":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesClient.getScheduleWithResponse":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesClient.listScheduleRuns":"Azure.AI.Projects.Schedules.listRuns","com.azure.ai.projects.BetaSchedulesClient.listSchedules":"Azure.AI.Projects.Schedules.list","com.azure.ai.projects.BetaSkillsAsyncClient":"Azure.AI.Projects.Beta.Skills","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersion":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersionFromFiles":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersionFromFilesWithResponse":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersionWithResponse":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.getSkill":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillContent":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillContentWithResponse":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersion":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersionContent":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersionContentWithResponse":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersionWithResponse":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillWithResponse":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsAsyncClient.listSkillVersions":"Azure.AI.Projects.Skills.listSkillVersions","com.azure.ai.projects.BetaSkillsAsyncClient.listSkills":"Azure.AI.Projects.Skills.listSkills","com.azure.ai.projects.BetaSkillsAsyncClient.updateSkill":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.BetaSkillsAsyncClient.updateSkillWithResponse":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.BetaSkillsClient":"Azure.AI.Projects.Beta.Skills","com.azure.ai.projects.BetaSkillsClient.createSkillVersion":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsClient.createSkillVersionFromFiles":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsClient.createSkillVersionFromFilesWithResponse":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsClient.createSkillVersionWithResponse":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsClient.getSkill":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsClient.getSkillContent":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsClient.getSkillContentWithResponse":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsClient.getSkillVersion":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsClient.getSkillVersionContent":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsClient.getSkillVersionContentWithResponse":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsClient.getSkillVersionWithResponse":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsClient.getSkillWithResponse":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsClient.listSkillVersions":"Azure.AI.Projects.Skills.listSkillVersions","com.azure.ai.projects.BetaSkillsClient.listSkills":"Azure.AI.Projects.Skills.listSkills","com.azure.ai.projects.BetaSkillsClient.updateSkill":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.BetaSkillsClient.updateSkillWithResponse":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.ConnectionsAsyncClient":"Azure.AI.Projects.Connections","com.azure.ai.projects.ConnectionsAsyncClient.getConnection":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsAsyncClient.getConnectionWithCredentials":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsAsyncClient.getConnectionWithCredentialsWithResponse":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsAsyncClient.getConnectionWithResponse":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsAsyncClient.listConnections":"Azure.AI.Projects.Connections.list","com.azure.ai.projects.ConnectionsClient":"Azure.AI.Projects.Connections","com.azure.ai.projects.ConnectionsClient.getConnection":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsClient.getConnectionWithCredentials":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsClient.getConnectionWithCredentialsWithResponse":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsClient.getConnectionWithResponse":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsClient.listConnections":"Azure.AI.Projects.Connections.list","com.azure.ai.projects.DatasetsAsyncClient":"Azure.AI.Projects.Datasets","com.azure.ai.projects.DatasetsAsyncClient.createOrUpdateDatasetVersion":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsAsyncClient.createOrUpdateDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsAsyncClient.deleteDatasetVersion":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsAsyncClient.deleteDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsAsyncClient.getCredentials":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsAsyncClient.getCredentialsWithResponse":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsAsyncClient.getDatasetVersion":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsAsyncClient.getDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsAsyncClient.listDatasetVersions":"Azure.AI.Projects.Datasets.listVersions","com.azure.ai.projects.DatasetsAsyncClient.listLatestDatasetVersions":"Azure.AI.Projects.Datasets.listLatest","com.azure.ai.projects.DatasetsAsyncClient.pendingUpload":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DatasetsAsyncClient.pendingUploadWithResponse":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DatasetsClient":"Azure.AI.Projects.Datasets","com.azure.ai.projects.DatasetsClient.createOrUpdateDatasetVersion":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsClient.createOrUpdateDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsClient.deleteDatasetVersion":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsClient.deleteDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsClient.getCredentials":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsClient.getCredentialsWithResponse":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsClient.getDatasetVersion":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsClient.getDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsClient.listDatasetVersions":"Azure.AI.Projects.Datasets.listVersions","com.azure.ai.projects.DatasetsClient.listLatestDatasetVersions":"Azure.AI.Projects.Datasets.listLatest","com.azure.ai.projects.DatasetsClient.pendingUpload":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DatasetsClient.pendingUploadWithResponse":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DeploymentsAsyncClient":"Azure.AI.Projects.Deployments","com.azure.ai.projects.DeploymentsAsyncClient.getDeployment":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsAsyncClient.getDeploymentWithResponse":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsAsyncClient.listDeployments":"Azure.AI.Projects.Deployments.list","com.azure.ai.projects.DeploymentsClient":"Azure.AI.Projects.Deployments","com.azure.ai.projects.DeploymentsClient.getDeployment":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsClient.getDeploymentWithResponse":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsClient.listDeployments":"Azure.AI.Projects.Deployments.list","com.azure.ai.projects.EvaluationRulesAsyncClient":"Azure.AI.Projects.EvaluationRules","com.azure.ai.projects.EvaluationRulesAsyncClient.createOrUpdateEvaluationRule":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesAsyncClient.createOrUpdateEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesAsyncClient.deleteEvaluationRule":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesAsyncClient.deleteEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesAsyncClient.getEvaluationRule":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesAsyncClient.getEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesAsyncClient.listEvaluationRules":"Azure.AI.Projects.EvaluationRules.list","com.azure.ai.projects.EvaluationRulesClient":"Azure.AI.Projects.EvaluationRules","com.azure.ai.projects.EvaluationRulesClient.createOrUpdateEvaluationRule":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesClient.createOrUpdateEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesClient.deleteEvaluationRule":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesClient.deleteEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesClient.getEvaluationRule":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesClient.getEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesClient.listEvaluationRules":"Azure.AI.Projects.EvaluationRules.list","com.azure.ai.projects.IndexesAsyncClient":"Azure.AI.Projects.Indexes","com.azure.ai.projects.IndexesAsyncClient.createOrUpdateIndexVersion":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesAsyncClient.createOrUpdateIndexVersionWithResponse":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesAsyncClient.deleteIndexVersion":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesAsyncClient.deleteIndexVersionWithResponse":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesAsyncClient.getIndexVersion":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesAsyncClient.getIndexVersionWithResponse":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesAsyncClient.listIndexVersions":"Azure.AI.Projects.Indexes.listVersions","com.azure.ai.projects.IndexesAsyncClient.listLatestIndexVersions":"Azure.AI.Projects.Indexes.listLatest","com.azure.ai.projects.IndexesClient":"Azure.AI.Projects.Indexes","com.azure.ai.projects.IndexesClient.createOrUpdateIndexVersion":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesClient.createOrUpdateIndexVersionWithResponse":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesClient.deleteIndexVersion":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesClient.deleteIndexVersionWithResponse":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesClient.getIndexVersion":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesClient.getIndexVersionWithResponse":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesClient.listIndexVersions":"Azure.AI.Projects.Indexes.listVersions","com.azure.ai.projects.IndexesClient.listLatestIndexVersions":"Azure.AI.Projects.Indexes.listLatest","com.azure.ai.projects.implementation.models.CreateOrUpdateRoutineRequest":"Azure.AI.Projects.createOrUpdateRoutine.Request.anonymous","com.azure.ai.projects.implementation.models.CreateSkillVersionRequest":"Azure.AI.Projects.createSkillVersion.Request.anonymous","com.azure.ai.projects.implementation.models.DispatchRoutineAsyncRequest":"Azure.AI.Projects.dispatchRoutineAsync.Request.anonymous","com.azure.ai.projects.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.projects.implementation.models.UpdateSkillRequest":"Azure.AI.Projects.updateSkill.Request.anonymous","com.azure.ai.projects.models.AIProjectIndex":"Azure.AI.Projects.Index","com.azure.ai.projects.models.AgentClusterInsightRequest":"Azure.AI.Projects.AgentClusterInsightRequest","com.azure.ai.projects.models.AgentClusterInsightResult":"Azure.AI.Projects.AgentClusterInsightResult","com.azure.ai.projects.models.AgentDataGenerationJobSource":"Azure.AI.Projects.AgentDataGenerationJobSource","com.azure.ai.projects.models.AgentEvaluatorGenerationJobSource":"Azure.AI.Projects.AgentEvaluatorGenerationJobSource","com.azure.ai.projects.models.AgentTaxonomyInput":"Azure.AI.Projects.AgentTaxonomyInput","com.azure.ai.projects.models.AgenticIdentityPreviewCredential":"Azure.AI.Projects.AgenticIdentityPreviewCredentials","com.azure.ai.projects.models.ApiError":"OpenAI.Error","com.azure.ai.projects.models.ApiKeyCredential":"Azure.AI.Projects.ApiKeyCredentials","com.azure.ai.projects.models.ArtifactProfile":"Azure.AI.Projects.ArtifactProfile","com.azure.ai.projects.models.AttackStrategy":"Azure.AI.Projects.AttackStrategy","com.azure.ai.projects.models.AzureAIAgentTarget":"Azure.AI.Projects.AzureAIAgentTarget","com.azure.ai.projects.models.AzureAIModelTarget":"Azure.AI.Projects.AzureAIModelTarget","com.azure.ai.projects.models.AzureAISearchIndex":"Azure.AI.Projects.AzureAISearchIndex","com.azure.ai.projects.models.AzureOpenAIModelConfiguration":"Azure.AI.Projects.AzureOpenAIModelConfiguration","com.azure.ai.projects.models.BaseCredential":"Azure.AI.Projects.BaseCredentials","com.azure.ai.projects.models.BlobReference":"Azure.AI.Projects.BlobReference","com.azure.ai.projects.models.BlobReferenceSasCredential":"Azure.AI.Projects.SasCredential","com.azure.ai.projects.models.ChartCoordinate":"Azure.AI.Projects.ChartCoordinate","com.azure.ai.projects.models.ClusterInsightResult":"Azure.AI.Projects.ClusterInsightResult","com.azure.ai.projects.models.ClusterTokenUsage":"Azure.AI.Projects.ClusterTokenUsage","com.azure.ai.projects.models.CodeBasedEvaluatorDefinition":"Azure.AI.Projects.CodeBasedEvaluatorDefinition","com.azure.ai.projects.models.Connection":"Azure.AI.Projects.Connection","com.azure.ai.projects.models.ConnectionType":"Azure.AI.Projects.ConnectionType","com.azure.ai.projects.models.ContinuousEvaluationRuleAction":"Azure.AI.Projects.ContinuousEvaluationRuleAction","com.azure.ai.projects.models.CosmosDBIndex":"Azure.AI.Projects.CosmosDBIndex","com.azure.ai.projects.models.CreateAsyncResponse":"Azure.AI.Projects.createAsync.Response.anonymous","com.azure.ai.projects.models.CreateSkillVersionFromFilesBody":"Azure.AI.Projects.CreateSkillVersionFromFilesBody","com.azure.ai.projects.models.CredentialType":"Azure.AI.Projects.CredentialType","com.azure.ai.projects.models.CronTrigger":"Azure.AI.Projects.CronTrigger","com.azure.ai.projects.models.CustomCredential":"Azure.AI.Projects.CustomCredential","com.azure.ai.projects.models.CustomRoutineTrigger":"Azure.AI.Projects.CustomRoutineTrigger","com.azure.ai.projects.models.DailyRecurrenceSchedule":"Azure.AI.Projects.DailyRecurrenceSchedule","com.azure.ai.projects.models.DataGenerationJob":"Azure.AI.Projects.DataGenerationJob","com.azure.ai.projects.models.DataGenerationJobInputs":"Azure.AI.Projects.DataGenerationJobInputs","com.azure.ai.projects.models.DataGenerationJobOptions":"Azure.AI.Projects.DataGenerationJobOptions","com.azure.ai.projects.models.DataGenerationJobOutput":"Azure.AI.Projects.DataGenerationJobOutput","com.azure.ai.projects.models.DataGenerationJobOutputOptions":"Azure.AI.Projects.DataGenerationJobOutputOptions","com.azure.ai.projects.models.DataGenerationJobOutputType":"Azure.AI.Projects.DataGenerationJobOutputType","com.azure.ai.projects.models.DataGenerationJobResult":"Azure.AI.Projects.DataGenerationJobResult","com.azure.ai.projects.models.DataGenerationJobScenario":"Azure.AI.Projects.DataGenerationJobScenario","com.azure.ai.projects.models.DataGenerationJobSource":"Azure.AI.Projects.DataGenerationJobSource","com.azure.ai.projects.models.DataGenerationJobSourceType":"Azure.AI.Projects.DataGenerationJobSourceType","com.azure.ai.projects.models.DataGenerationJobType":"Azure.AI.Projects.DataGenerationJobType","com.azure.ai.projects.models.DataGenerationModelOptions":"Azure.AI.Projects.DataGenerationModelOptions","com.azure.ai.projects.models.DataGenerationTokenUsage":"Azure.AI.Projects.DataGenerationTokenUsage","com.azure.ai.projects.models.DatasetCredential":"Azure.AI.Projects.AssetCredentialResponse","com.azure.ai.projects.models.DatasetDataGenerationJobOutput":"Azure.AI.Projects.DatasetDataGenerationJobOutput","com.azure.ai.projects.models.DatasetEvaluatorGenerationJobSource":"Azure.AI.Projects.DatasetEvaluatorGenerationJobSource","com.azure.ai.projects.models.DatasetReference":"Azure.AI.Projects.DatasetReference","com.azure.ai.projects.models.DatasetType":"Azure.AI.Projects.DatasetType","com.azure.ai.projects.models.DatasetVersion":"Azure.AI.Projects.DatasetVersion","com.azure.ai.projects.models.Deployment":"Azure.AI.Projects.Deployment","com.azure.ai.projects.models.DeploymentType":"Azure.AI.Projects.DeploymentType","com.azure.ai.projects.models.Dimension":"Azure.AI.Projects.Dimension","com.azure.ai.projects.models.DispatchRoutineResult":"Azure.AI.Projects.DispatchRoutineResponse","com.azure.ai.projects.models.EmbeddingConfiguration":"Azure.AI.Projects.EmbeddingConfiguration","com.azure.ai.projects.models.EndpointBasedEvaluatorDefinition":"Azure.AI.Projects.EndpointBasedEvaluatorDefinition","com.azure.ai.projects.models.EntraIdCredential":"Azure.AI.Projects.EntraIDCredentials","com.azure.ai.projects.models.EvaluationComparisonInsightRequest":"Azure.AI.Projects.EvaluationComparisonInsightRequest","com.azure.ai.projects.models.EvaluationComparisonInsightResult":"Azure.AI.Projects.EvaluationComparisonInsightResult","com.azure.ai.projects.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.projects.models.EvaluationResult":"Azure.AI.Projects.EvalResult","com.azure.ai.projects.models.EvaluationResultSample":"Azure.AI.Projects.EvaluationResultSample","com.azure.ai.projects.models.EvaluationRule":"Azure.AI.Projects.EvaluationRule","com.azure.ai.projects.models.EvaluationRuleAction":"Azure.AI.Projects.EvaluationRuleAction","com.azure.ai.projects.models.EvaluationRuleActionType":"Azure.AI.Projects.EvaluationRuleActionType","com.azure.ai.projects.models.EvaluationRuleEventType":"Azure.AI.Projects.EvaluationRuleEventType","com.azure.ai.projects.models.EvaluationRuleFilter":"Azure.AI.Projects.EvaluationRuleFilter","com.azure.ai.projects.models.EvaluationRunClusterInsightRequest":"Azure.AI.Projects.EvaluationRunClusterInsightRequest","com.azure.ai.projects.models.EvaluationRunClusterInsightResult":"Azure.AI.Projects.EvaluationRunClusterInsightResult","com.azure.ai.projects.models.EvaluationRunResultCompareItem":"Azure.AI.Projects.EvalRunResultCompareItem","com.azure.ai.projects.models.EvaluationRunResultComparison":"Azure.AI.Projects.EvalRunResultComparison","com.azure.ai.projects.models.EvaluationRunResultSummary":"Azure.AI.Projects.EvalRunResultSummary","com.azure.ai.projects.models.EvaluationScheduleTask":"Azure.AI.Projects.EvaluationScheduleTask","com.azure.ai.projects.models.EvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomy","com.azure.ai.projects.models.EvaluationTaxonomyInput":"Azure.AI.Projects.EvaluationTaxonomyInput","com.azure.ai.projects.models.EvaluationTaxonomyInputType":"Azure.AI.Projects.EvaluationTaxonomyInputType","com.azure.ai.projects.models.EvaluatorCategory":"Azure.AI.Projects.EvaluatorCategory","com.azure.ai.projects.models.EvaluatorCredentialInput":"Azure.AI.Projects.EvaluatorCredentialRequest","com.azure.ai.projects.models.EvaluatorDefinition":"Azure.AI.Projects.EvaluatorDefinition","com.azure.ai.projects.models.EvaluatorDefinitionType":"Azure.AI.Projects.EvaluatorDefinitionType","com.azure.ai.projects.models.EvaluatorGenerationArtifacts":"Azure.AI.Projects.EvaluatorGenerationArtifacts","com.azure.ai.projects.models.EvaluatorGenerationInputs":"Azure.AI.Projects.EvaluatorGenerationInputs","com.azure.ai.projects.models.EvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJob","com.azure.ai.projects.models.EvaluatorGenerationJobSource":"Azure.AI.Projects.EvaluatorGenerationJobSource","com.azure.ai.projects.models.EvaluatorGenerationJobSourceType":"Azure.AI.Projects.EvaluatorGenerationJobSourceType","com.azure.ai.projects.models.EvaluatorGenerationTokenUsage":"Azure.AI.Projects.EvaluatorGenerationTokenUsage","com.azure.ai.projects.models.EvaluatorMetric":"Azure.AI.Projects.EvaluatorMetric","com.azure.ai.projects.models.EvaluatorMetricDirection":"Azure.AI.Projects.EvaluatorMetricDirection","com.azure.ai.projects.models.EvaluatorMetricType":"Azure.AI.Projects.EvaluatorMetricType","com.azure.ai.projects.models.EvaluatorType":"Azure.AI.Projects.EvaluatorType","com.azure.ai.projects.models.EvaluatorVersion":"Azure.AI.Projects.EvaluatorVersion","com.azure.ai.projects.models.FieldMapping":"Azure.AI.Projects.FieldMapping","com.azure.ai.projects.models.FileDataGenerationJobOutput":"Azure.AI.Projects.FileDataGenerationJobOutput","com.azure.ai.projects.models.FileDataGenerationJobSource":"Azure.AI.Projects.FileDataGenerationJobSource","com.azure.ai.projects.models.FileDatasetVersion":"Azure.AI.Projects.FileDatasetVersion","com.azure.ai.projects.models.FolderDatasetVersion":"Azure.AI.Projects.FolderDatasetVersion","com.azure.ai.projects.models.FoundryModelArtifactProfileCategory":"Azure.AI.Projects.FoundryModelArtifactProfileCategory","com.azure.ai.projects.models.FoundryModelArtifactProfileSignal":"Azure.AI.Projects.FoundryModelArtifactProfileSignal","com.azure.ai.projects.models.FoundryModelSourceType":"Azure.AI.Projects.FoundryModelSourceType","com.azure.ai.projects.models.FoundryModelWarning":"Azure.AI.Projects.FoundryModelWarning","com.azure.ai.projects.models.FoundryModelWarningCode":"Azure.AI.Projects.FoundryModelWarningCode","com.azure.ai.projects.models.FoundryModelWeightType":"Azure.AI.Projects.FoundryModelWeightType","com.azure.ai.projects.models.GenerationWarningType":"Azure.AI.Projects.GenerationWarningType","com.azure.ai.projects.models.GitHubIssueEvent":"Azure.AI.Projects.GitHubIssueEvent","com.azure.ai.projects.models.GitHubIssueRoutineTrigger":"Azure.AI.Projects.GitHubIssueRoutineTrigger","com.azure.ai.projects.models.GraderAzureAIEvaluator":"Azure.AI.Projects.GraderAzureAIEvaluator","com.azure.ai.projects.models.HourlyRecurrenceSchedule":"Azure.AI.Projects.HourlyRecurrenceSchedule","com.azure.ai.projects.models.HumanEvaluationPreviewRuleAction":"Azure.AI.Projects.HumanEvaluationPreviewRuleAction","com.azure.ai.projects.models.IndexType":"Azure.AI.Projects.IndexType","com.azure.ai.projects.models.Insight":"Azure.AI.Projects.Insight","com.azure.ai.projects.models.InsightCluster":"Azure.AI.Projects.InsightCluster","com.azure.ai.projects.models.InsightModelConfiguration":"Azure.AI.Projects.InsightModelConfiguration","com.azure.ai.projects.models.InsightRequest":"Azure.AI.Projects.InsightRequest","com.azure.ai.projects.models.InsightResult":"Azure.AI.Projects.InsightResult","com.azure.ai.projects.models.InsightSample":"Azure.AI.Projects.InsightSample","com.azure.ai.projects.models.InsightScheduleTask":"Azure.AI.Projects.InsightScheduleTask","com.azure.ai.projects.models.InsightSummary":"Azure.AI.Projects.InsightSummary","com.azure.ai.projects.models.InsightType":"Azure.AI.Projects.InsightType","com.azure.ai.projects.models.InsightsMetadata":"Azure.AI.Projects.InsightsMetadata","com.azure.ai.projects.models.InvokeAgentInvocationsApiDispatchPayload":"Azure.AI.Projects.InvokeAgentInvocationsApiDispatchPayload","com.azure.ai.projects.models.InvokeAgentInvocationsApiRoutineAction":"Azure.AI.Projects.InvokeAgentInvocationsApiRoutineAction","com.azure.ai.projects.models.InvokeAgentResponsesApiDispatchPayload":"Azure.AI.Projects.InvokeAgentResponsesApiDispatchPayload","com.azure.ai.projects.models.InvokeAgentResponsesApiRoutineAction":"Azure.AI.Projects.InvokeAgentResponsesApiRoutineAction","com.azure.ai.projects.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.projects.models.ListVersionsRequestType":"Azure.AI.Projects.listVersions.RequestType.anonymous","com.azure.ai.projects.models.LoraConfig":"Azure.AI.Projects.LoraConfig","com.azure.ai.projects.models.ManagedAzureAISearchIndex":"Azure.AI.Projects.ManagedAzureAISearchIndex","com.azure.ai.projects.models.ModelCredentialInput":"Azure.AI.Projects.ModelCredentialRequest","com.azure.ai.projects.models.ModelDeployment":"Azure.AI.Projects.ModelDeployment","com.azure.ai.projects.models.ModelDeploymentSku":"Azure.AI.Projects.Sku","com.azure.ai.projects.models.ModelPendingUploadInput":"Azure.AI.Projects.ModelPendingUploadRequest","com.azure.ai.projects.models.ModelPendingUploadResult":"Azure.AI.Projects.ModelPendingUploadResponse","com.azure.ai.projects.models.ModelSamplingParams":"Azure.AI.Projects.ModelSamplingParams","com.azure.ai.projects.models.ModelSourceData":"Azure.AI.Projects.ModelSourceData","com.azure.ai.projects.models.ModelVersion":"Azure.AI.Projects.ModelVersion","com.azure.ai.projects.models.MonthlyRecurrenceSchedule":"Azure.AI.Projects.MonthlyRecurrenceSchedule","com.azure.ai.projects.models.NoAuthenticationCredential":"Azure.AI.Projects.NoAuthenticationCredentials","com.azure.ai.projects.models.OneTimeTrigger":"Azure.AI.Projects.OneTimeTrigger","com.azure.ai.projects.models.OperationStatus":"Azure.Core.Foundations.OperationState","com.azure.ai.projects.models.PendingUploadRequest":"Azure.AI.Projects.PendingUploadRequest","com.azure.ai.projects.models.PendingUploadResponse":"Azure.AI.Projects.PendingUploadResponse","com.azure.ai.projects.models.PendingUploadType":"Azure.AI.Projects.PendingUploadType","com.azure.ai.projects.models.PromptBasedEvaluatorDefinition":"Azure.AI.Projects.PromptBasedEvaluatorDefinition","com.azure.ai.projects.models.PromptDataGenerationJobSource":"Azure.AI.Projects.PromptDataGenerationJobSource","com.azure.ai.projects.models.PromptEvaluatorGenerationJobSource":"Azure.AI.Projects.PromptEvaluatorGenerationJobSource","com.azure.ai.projects.models.RecurrenceSchedule":"Azure.AI.Projects.RecurrenceSchedule","com.azure.ai.projects.models.RecurrenceTrigger":"Azure.AI.Projects.RecurrenceTrigger","com.azure.ai.projects.models.RecurrenceType":"Azure.AI.Projects.RecurrenceType","com.azure.ai.projects.models.RedTeam":"Azure.AI.Projects.RedTeam","com.azure.ai.projects.models.RiskCategory":"Azure.AI.Projects.RiskCategory","com.azure.ai.projects.models.Routine":"Azure.AI.Projects.Routine","com.azure.ai.projects.models.RoutineAction":"Azure.AI.Projects.RoutineAction","com.azure.ai.projects.models.RoutineActionType":"Azure.AI.Projects.RoutineActionType","com.azure.ai.projects.models.RoutineAttemptSource":"Azure.AI.Projects.RoutineAttemptSource","com.azure.ai.projects.models.RoutineDispatchPayload":"Azure.AI.Projects.RoutineDispatchPayload","com.azure.ai.projects.models.RoutineDispatchPayloadType":"Azure.AI.Projects.RoutineDispatchPayloadType","com.azure.ai.projects.models.RoutineRun":"Azure.AI.Projects.RoutineRun","com.azure.ai.projects.models.RoutineRunPhase":"Azure.AI.Projects.RoutineRunPhase","com.azure.ai.projects.models.RoutineTrigger":"Azure.AI.Projects.RoutineTrigger","com.azure.ai.projects.models.RoutineTriggerType":"Azure.AI.Projects.RoutineTriggerType","com.azure.ai.projects.models.RubricBasedEvaluatorDefinition":"Azure.AI.Projects.RubricBasedEvaluatorDefinition","com.azure.ai.projects.models.RubricGenerationInputQualityWarning":"Azure.AI.Projects.RubricGenerationInputQualityWarning","com.azure.ai.projects.models.RubricGenerationInputQualityWarningCode":"Azure.AI.Projects.RubricGenerationInputQualityWarningCode","com.azure.ai.projects.models.RubricGenerationInputQualityWarningSeverity":"Azure.AI.Projects.RubricGenerationInputQualityWarningSeverity","com.azure.ai.projects.models.RubricGenerationInputQualityWarningSource":"Azure.AI.Projects.RubricGenerationInputQualityWarningSource","com.azure.ai.projects.models.SampleType":"Azure.AI.Projects.SampleType","com.azure.ai.projects.models.SasCredential":"Azure.AI.Projects.SASCredentials","com.azure.ai.projects.models.Schedule":"Azure.AI.Projects.Schedule","com.azure.ai.projects.models.ScheduleProvisioningStatus":"Azure.AI.Projects.ScheduleProvisioningStatus","com.azure.ai.projects.models.ScheduleRoutineTrigger":"Azure.AI.Projects.ScheduleRoutineTrigger","com.azure.ai.projects.models.ScheduleRun":"Azure.AI.Projects.ScheduleRun","com.azure.ai.projects.models.ScheduleTask":"Azure.AI.Projects.ScheduleTask","com.azure.ai.projects.models.ScheduleTaskType":"Azure.AI.Projects.ScheduleTaskType","com.azure.ai.projects.models.SimpleQnADataGenerationJobOptions":"Azure.AI.Projects.SimpleQnADataGenerationJobOptions","com.azure.ai.projects.models.SimpleQnAFineTuningQuestionType":"Azure.AI.Projects.SimpleQnAFineTuningQuestionType","com.azure.ai.projects.models.SimulationSeedDataGenerationJobOptions":"Azure.AI.Projects.SimulationSeedDataGenerationJobOptions","com.azure.ai.projects.models.SkillDetails":"Azure.AI.Projects.Skill","com.azure.ai.projects.models.SkillFileDetails":"TypeSpec.Http.File","com.azure.ai.projects.models.SkillInlineContent":"Azure.AI.Projects.SkillInlineContent","com.azure.ai.projects.models.SkillVersion":"Azure.AI.Projects.SkillVersion","com.azure.ai.projects.models.Target":"Azure.AI.Projects.Target","com.azure.ai.projects.models.TargetConfig":"Azure.AI.Projects.RedTeamTargetConfig","com.azure.ai.projects.models.TaxonomyCategory":"Azure.AI.Projects.TaxonomyCategory","com.azure.ai.projects.models.TaxonomySubCategory":"Azure.AI.Projects.TaxonomySubCategory","com.azure.ai.projects.models.TestingCriterionAzureAIEvaluator":"Azure.AI.Projects.TestingCriterionAzureAIEvaluator","com.azure.ai.projects.models.TimerRoutineTrigger":"Azure.AI.Projects.TimerRoutineTrigger","com.azure.ai.projects.models.ToolDescription":"Azure.AI.Projects.ToolDescription","com.azure.ai.projects.models.ToolUseFineTuningDataGenerationJobOptions":"Azure.AI.Projects.ToolUseFineTuningDataGenerationJobOptions","com.azure.ai.projects.models.TracesDataGenerationJobOptions":"Azure.AI.Projects.TracesDataGenerationJobOptions","com.azure.ai.projects.models.TracesDataGenerationJobSource":"Azure.AI.Projects.TracesDataGenerationJobSource","com.azure.ai.projects.models.TracesEvaluatorGenerationJobSource":"Azure.AI.Projects.TracesEvaluatorGenerationJobSource","com.azure.ai.projects.models.TreatmentEffectType":"Azure.AI.Projects.TreatmentEffectType","com.azure.ai.projects.models.Trigger":"Azure.AI.Projects.Trigger","com.azure.ai.projects.models.TriggerType":"Azure.AI.Projects.TriggerType","com.azure.ai.projects.models.UpdateModelVersionInput":"Azure.AI.Projects.UpdateModelVersionRequest","com.azure.ai.projects.models.WeeklyRecurrenceSchedule":"Azure.AI.Projects.WeeklyRecurrenceSchedule"},"generatedFiles":["src/main/java/com/azure/ai/projects/AIProjectClientBuilder.java","src/main/java/com/azure/ai/projects/AIProjectsServiceVersion.java","src/main/java/com/azure/ai/projects/BetaDatasetsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaDatasetsClient.java","src/main/java/com/azure/ai/projects/BetaEvaluationTaxonomiesAsyncClient.java","src/main/java/com/azure/ai/projects/BetaEvaluationTaxonomiesClient.java","src/main/java/com/azure/ai/projects/BetaEvaluatorsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaEvaluatorsClient.java","src/main/java/com/azure/ai/projects/BetaInsightsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaInsightsClient.java","src/main/java/com/azure/ai/projects/BetaModelsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaModelsClient.java","src/main/java/com/azure/ai/projects/BetaRedTeamsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaRedTeamsClient.java","src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java","src/main/java/com/azure/ai/projects/BetaRoutinesClient.java","src/main/java/com/azure/ai/projects/BetaSchedulesAsyncClient.java","src/main/java/com/azure/ai/projects/BetaSchedulesClient.java","src/main/java/com/azure/ai/projects/BetaSkillsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaSkillsClient.java","src/main/java/com/azure/ai/projects/ConnectionsAsyncClient.java","src/main/java/com/azure/ai/projects/ConnectionsClient.java","src/main/java/com/azure/ai/projects/DatasetsAsyncClient.java","src/main/java/com/azure/ai/projects/DatasetsClient.java","src/main/java/com/azure/ai/projects/DeploymentsAsyncClient.java","src/main/java/com/azure/ai/projects/DeploymentsClient.java","src/main/java/com/azure/ai/projects/EvaluationRulesAsyncClient.java","src/main/java/com/azure/ai/projects/EvaluationRulesClient.java","src/main/java/com/azure/ai/projects/IndexesAsyncClient.java","src/main/java/com/azure/ai/projects/IndexesClient.java","src/main/java/com/azure/ai/projects/implementation/AIProjectClientImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaDatasetsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaEvaluationTaxonomiesImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaEvaluatorsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaInsightsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaModelsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaRedTeamsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaRoutinesImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaSchedulesImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaSkillsImpl.java","src/main/java/com/azure/ai/projects/implementation/ConnectionsImpl.java","src/main/java/com/azure/ai/projects/implementation/DatasetsImpl.java","src/main/java/com/azure/ai/projects/implementation/DeploymentsImpl.java","src/main/java/com/azure/ai/projects/implementation/EvaluationRulesImpl.java","src/main/java/com/azure/ai/projects/implementation/IndexesImpl.java","src/main/java/com/azure/ai/projects/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/projects/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/projects/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/projects/implementation/PollingUtils.java","src/main/java/com/azure/ai/projects/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/projects/implementation/models/CreateOrUpdateRoutineRequest.java","src/main/java/com/azure/ai/projects/implementation/models/CreateSkillVersionRequest.java","src/main/java/com/azure/ai/projects/implementation/models/DispatchRoutineAsyncRequest.java","src/main/java/com/azure/ai/projects/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/projects/implementation/models/UpdateSkillRequest.java","src/main/java/com/azure/ai/projects/implementation/models/package-info.java","src/main/java/com/azure/ai/projects/implementation/package-info.java","src/main/java/com/azure/ai/projects/models/AIProjectIndex.java","src/main/java/com/azure/ai/projects/models/AgentClusterInsightRequest.java","src/main/java/com/azure/ai/projects/models/AgentClusterInsightResult.java","src/main/java/com/azure/ai/projects/models/AgentDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/AgentEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/AgentTaxonomyInput.java","src/main/java/com/azure/ai/projects/models/AgenticIdentityPreviewCredential.java","src/main/java/com/azure/ai/projects/models/ApiError.java","src/main/java/com/azure/ai/projects/models/ApiKeyCredential.java","src/main/java/com/azure/ai/projects/models/ArtifactProfile.java","src/main/java/com/azure/ai/projects/models/AttackStrategy.java","src/main/java/com/azure/ai/projects/models/AzureAIAgentTarget.java","src/main/java/com/azure/ai/projects/models/AzureAIModelTarget.java","src/main/java/com/azure/ai/projects/models/AzureAISearchIndex.java","src/main/java/com/azure/ai/projects/models/AzureOpenAIModelConfiguration.java","src/main/java/com/azure/ai/projects/models/BaseCredential.java","src/main/java/com/azure/ai/projects/models/BlobReference.java","src/main/java/com/azure/ai/projects/models/BlobReferenceSasCredential.java","src/main/java/com/azure/ai/projects/models/ChartCoordinate.java","src/main/java/com/azure/ai/projects/models/ClusterInsightResult.java","src/main/java/com/azure/ai/projects/models/ClusterTokenUsage.java","src/main/java/com/azure/ai/projects/models/CodeBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/Connection.java","src/main/java/com/azure/ai/projects/models/ConnectionType.java","src/main/java/com/azure/ai/projects/models/ContinuousEvaluationRuleAction.java","src/main/java/com/azure/ai/projects/models/CosmosDBIndex.java","src/main/java/com/azure/ai/projects/models/CreateAsyncResponse.java","src/main/java/com/azure/ai/projects/models/CreateSkillVersionFromFilesBody.java","src/main/java/com/azure/ai/projects/models/CredentialType.java","src/main/java/com/azure/ai/projects/models/CronTrigger.java","src/main/java/com/azure/ai/projects/models/CustomCredential.java","src/main/java/com/azure/ai/projects/models/CustomRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/DailyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/DataGenerationJob.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobInputs.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOutput.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOutputOptions.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOutputType.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobResult.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobScenario.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobSourceType.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobType.java","src/main/java/com/azure/ai/projects/models/DataGenerationModelOptions.java","src/main/java/com/azure/ai/projects/models/DataGenerationTokenUsage.java","src/main/java/com/azure/ai/projects/models/DatasetCredential.java","src/main/java/com/azure/ai/projects/models/DatasetDataGenerationJobOutput.java","src/main/java/com/azure/ai/projects/models/DatasetEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/DatasetReference.java","src/main/java/com/azure/ai/projects/models/DatasetType.java","src/main/java/com/azure/ai/projects/models/DatasetVersion.java","src/main/java/com/azure/ai/projects/models/Deployment.java","src/main/java/com/azure/ai/projects/models/DeploymentType.java","src/main/java/com/azure/ai/projects/models/Dimension.java","src/main/java/com/azure/ai/projects/models/DispatchRoutineResult.java","src/main/java/com/azure/ai/projects/models/EmbeddingConfiguration.java","src/main/java/com/azure/ai/projects/models/EndpointBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/EntraIdCredential.java","src/main/java/com/azure/ai/projects/models/EvaluationComparisonInsightRequest.java","src/main/java/com/azure/ai/projects/models/EvaluationComparisonInsightResult.java","src/main/java/com/azure/ai/projects/models/EvaluationLevel.java","src/main/java/com/azure/ai/projects/models/EvaluationResult.java","src/main/java/com/azure/ai/projects/models/EvaluationResultSample.java","src/main/java/com/azure/ai/projects/models/EvaluationRule.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleAction.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleActionType.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleEventType.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleFilter.java","src/main/java/com/azure/ai/projects/models/EvaluationRunClusterInsightRequest.java","src/main/java/com/azure/ai/projects/models/EvaluationRunClusterInsightResult.java","src/main/java/com/azure/ai/projects/models/EvaluationRunResultCompareItem.java","src/main/java/com/azure/ai/projects/models/EvaluationRunResultComparison.java","src/main/java/com/azure/ai/projects/models/EvaluationRunResultSummary.java","src/main/java/com/azure/ai/projects/models/EvaluationScheduleTask.java","src/main/java/com/azure/ai/projects/models/EvaluationTaxonomy.java","src/main/java/com/azure/ai/projects/models/EvaluationTaxonomyInput.java","src/main/java/com/azure/ai/projects/models/EvaluationTaxonomyInputType.java","src/main/java/com/azure/ai/projects/models/EvaluatorCategory.java","src/main/java/com/azure/ai/projects/models/EvaluatorCredentialInput.java","src/main/java/com/azure/ai/projects/models/EvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/EvaluatorDefinitionType.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationArtifacts.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationInputs.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationJob.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationJobSourceType.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationTokenUsage.java","src/main/java/com/azure/ai/projects/models/EvaluatorMetric.java","src/main/java/com/azure/ai/projects/models/EvaluatorMetricDirection.java","src/main/java/com/azure/ai/projects/models/EvaluatorMetricType.java","src/main/java/com/azure/ai/projects/models/EvaluatorType.java","src/main/java/com/azure/ai/projects/models/EvaluatorVersion.java","src/main/java/com/azure/ai/projects/models/FieldMapping.java","src/main/java/com/azure/ai/projects/models/FileDataGenerationJobOutput.java","src/main/java/com/azure/ai/projects/models/FileDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/FileDatasetVersion.java","src/main/java/com/azure/ai/projects/models/FolderDatasetVersion.java","src/main/java/com/azure/ai/projects/models/FoundryModelArtifactProfileCategory.java","src/main/java/com/azure/ai/projects/models/FoundryModelArtifactProfileSignal.java","src/main/java/com/azure/ai/projects/models/FoundryModelSourceType.java","src/main/java/com/azure/ai/projects/models/FoundryModelWarning.java","src/main/java/com/azure/ai/projects/models/FoundryModelWarningCode.java","src/main/java/com/azure/ai/projects/models/FoundryModelWeightType.java","src/main/java/com/azure/ai/projects/models/GenerationWarningType.java","src/main/java/com/azure/ai/projects/models/GitHubIssueEvent.java","src/main/java/com/azure/ai/projects/models/GitHubIssueRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/GraderAzureAIEvaluator.java","src/main/java/com/azure/ai/projects/models/HourlyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/HumanEvaluationPreviewRuleAction.java","src/main/java/com/azure/ai/projects/models/IndexType.java","src/main/java/com/azure/ai/projects/models/Insight.java","src/main/java/com/azure/ai/projects/models/InsightCluster.java","src/main/java/com/azure/ai/projects/models/InsightModelConfiguration.java","src/main/java/com/azure/ai/projects/models/InsightRequest.java","src/main/java/com/azure/ai/projects/models/InsightResult.java","src/main/java/com/azure/ai/projects/models/InsightSample.java","src/main/java/com/azure/ai/projects/models/InsightScheduleTask.java","src/main/java/com/azure/ai/projects/models/InsightSummary.java","src/main/java/com/azure/ai/projects/models/InsightType.java","src/main/java/com/azure/ai/projects/models/InsightsMetadata.java","src/main/java/com/azure/ai/projects/models/InvokeAgentInvocationsApiDispatchPayload.java","src/main/java/com/azure/ai/projects/models/InvokeAgentInvocationsApiRoutineAction.java","src/main/java/com/azure/ai/projects/models/InvokeAgentResponsesApiDispatchPayload.java","src/main/java/com/azure/ai/projects/models/InvokeAgentResponsesApiRoutineAction.java","src/main/java/com/azure/ai/projects/models/JobStatus.java","src/main/java/com/azure/ai/projects/models/ListVersionsRequestType.java","src/main/java/com/azure/ai/projects/models/LoraConfig.java","src/main/java/com/azure/ai/projects/models/ManagedAzureAISearchIndex.java","src/main/java/com/azure/ai/projects/models/ModelCredentialInput.java","src/main/java/com/azure/ai/projects/models/ModelDeployment.java","src/main/java/com/azure/ai/projects/models/ModelDeploymentSku.java","src/main/java/com/azure/ai/projects/models/ModelPendingUploadInput.java","src/main/java/com/azure/ai/projects/models/ModelPendingUploadResult.java","src/main/java/com/azure/ai/projects/models/ModelSamplingParams.java","src/main/java/com/azure/ai/projects/models/ModelSourceData.java","src/main/java/com/azure/ai/projects/models/ModelVersion.java","src/main/java/com/azure/ai/projects/models/MonthlyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/NoAuthenticationCredential.java","src/main/java/com/azure/ai/projects/models/OneTimeTrigger.java","src/main/java/com/azure/ai/projects/models/OperationStatus.java","src/main/java/com/azure/ai/projects/models/PendingUploadRequest.java","src/main/java/com/azure/ai/projects/models/PendingUploadResponse.java","src/main/java/com/azure/ai/projects/models/PendingUploadType.java","src/main/java/com/azure/ai/projects/models/PromptBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/PromptDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/PromptEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/RecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/RecurrenceTrigger.java","src/main/java/com/azure/ai/projects/models/RecurrenceType.java","src/main/java/com/azure/ai/projects/models/RedTeam.java","src/main/java/com/azure/ai/projects/models/RiskCategory.java","src/main/java/com/azure/ai/projects/models/Routine.java","src/main/java/com/azure/ai/projects/models/RoutineAction.java","src/main/java/com/azure/ai/projects/models/RoutineActionType.java","src/main/java/com/azure/ai/projects/models/RoutineAttemptSource.java","src/main/java/com/azure/ai/projects/models/RoutineDispatchPayload.java","src/main/java/com/azure/ai/projects/models/RoutineDispatchPayloadType.java","src/main/java/com/azure/ai/projects/models/RoutineRun.java","src/main/java/com/azure/ai/projects/models/RoutineRunPhase.java","src/main/java/com/azure/ai/projects/models/RoutineTrigger.java","src/main/java/com/azure/ai/projects/models/RoutineTriggerType.java","src/main/java/com/azure/ai/projects/models/RubricBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarning.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarningCode.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarningSeverity.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarningSource.java","src/main/java/com/azure/ai/projects/models/SampleType.java","src/main/java/com/azure/ai/projects/models/SasCredential.java","src/main/java/com/azure/ai/projects/models/Schedule.java","src/main/java/com/azure/ai/projects/models/ScheduleProvisioningStatus.java","src/main/java/com/azure/ai/projects/models/ScheduleRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/ScheduleRun.java","src/main/java/com/azure/ai/projects/models/ScheduleTask.java","src/main/java/com/azure/ai/projects/models/ScheduleTaskType.java","src/main/java/com/azure/ai/projects/models/SimpleQnADataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/SimpleQnAFineTuningQuestionType.java","src/main/java/com/azure/ai/projects/models/SimulationSeedDataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/SkillDetails.java","src/main/java/com/azure/ai/projects/models/SkillFileDetails.java","src/main/java/com/azure/ai/projects/models/SkillInlineContent.java","src/main/java/com/azure/ai/projects/models/SkillVersion.java","src/main/java/com/azure/ai/projects/models/Target.java","src/main/java/com/azure/ai/projects/models/TargetConfig.java","src/main/java/com/azure/ai/projects/models/TaxonomyCategory.java","src/main/java/com/azure/ai/projects/models/TaxonomySubCategory.java","src/main/java/com/azure/ai/projects/models/TestingCriterionAzureAIEvaluator.java","src/main/java/com/azure/ai/projects/models/TimerRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/ToolDescription.java","src/main/java/com/azure/ai/projects/models/ToolUseFineTuningDataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/TracesDataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/TracesDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/TracesEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/TreatmentEffectType.java","src/main/java/com/azure/ai/projects/models/Trigger.java","src/main/java/com/azure/ai/projects/models/TriggerType.java","src/main/java/com/azure/ai/projects/models/UpdateModelVersionInput.java","src/main/java/com/azure/ai/projects/models/WeeklyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/package-info.java","src/main/java/com/azure/ai/projects/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file +{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"7fdb5e2d7a91","crossLanguageDefinitions":{"com.azure.ai.projects.AIProjectClientBuilder":"Azure.AI.Projects","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient":"Azure.AI.Projects.Beta.AgentInsightMonitors","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.beginCreateRun":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.beginCreateRunWithModel":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.cancelRun":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.cancelRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.create":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.createWithResponse":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.delete":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.deleteWithResponse":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.get":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getInsight":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getRun":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getWithResponse":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.list":"Azure.AI.Projects.AgentInsightMonitors.list","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.listInsights":"Azure.AI.Projects.AgentInsightMonitors.listInsights","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.listRuns":"Azure.AI.Projects.AgentInsightMonitors.listRuns","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.reset":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.resetWithResponse":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.update":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateInsight":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateWithResponse":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsClient":"Azure.AI.Projects.Beta.AgentInsightMonitors","com.azure.ai.projects.BetaAgentInsightMonitorsClient.beginCreateRun":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.beginCreateRunWithModel":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.cancelRun":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.cancelRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.create":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsClient.createWithResponse":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsClient.delete":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsClient.deleteWithResponse":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsClient.get":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getInsight":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getRun":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getWithResponse":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsClient.list":"Azure.AI.Projects.AgentInsightMonitors.list","com.azure.ai.projects.BetaAgentInsightMonitorsClient.listInsights":"Azure.AI.Projects.AgentInsightMonitors.listInsights","com.azure.ai.projects.BetaAgentInsightMonitorsClient.listRuns":"Azure.AI.Projects.AgentInsightMonitors.listRuns","com.azure.ai.projects.BetaAgentInsightMonitorsClient.reset":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsClient.resetWithResponse":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsClient.update":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateInsight":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateWithResponse":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaDatasetsAsyncClient":"Azure.AI.Projects.Beta.Datasets","com.azure.ai.projects.BetaDatasetsAsyncClient.beginCreateGenerationJob":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsAsyncClient.beginCreateGenerationJobWithModel":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsAsyncClient.cancelGenerationJob":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsAsyncClient.cancelGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsAsyncClient.deleteGenerationJob":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsAsyncClient.deleteGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsAsyncClient.getGenerationJob":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsAsyncClient.getGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsAsyncClient.listGenerationJobs":"Azure.AI.Projects.DataGenerationJobs.list","com.azure.ai.projects.BetaDatasetsClient":"Azure.AI.Projects.Beta.Datasets","com.azure.ai.projects.BetaDatasetsClient.beginCreateGenerationJob":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsClient.beginCreateGenerationJobWithModel":"Azure.AI.Projects.DataGenerationJobs.create","com.azure.ai.projects.BetaDatasetsClient.cancelGenerationJob":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsClient.cancelGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.cancel","com.azure.ai.projects.BetaDatasetsClient.deleteGenerationJob":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsClient.deleteGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.delete","com.azure.ai.projects.BetaDatasetsClient.getGenerationJob":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsClient.getGenerationJobWithResponse":"Azure.AI.Projects.DataGenerationJobs.get","com.azure.ai.projects.BetaDatasetsClient.listGenerationJobs":"Azure.AI.Projects.DataGenerationJobs.list","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient":"Azure.AI.Projects.Beta.EvaluationTaxonomies","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.createEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.createEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.deleteEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.deleteEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.getEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.getEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.listEvaluationTaxonomies":"Azure.AI.Projects.EvaluationTaxonomies.list","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.updateEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluationTaxonomiesAsyncClient.updateEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluationTaxonomiesClient":"Azure.AI.Projects.Beta.EvaluationTaxonomies","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.createEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.createEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.create","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.deleteEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.deleteEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.delete","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.getEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.getEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.get","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.listEvaluationTaxonomies":"Azure.AI.Projects.EvaluationTaxonomies.list","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.updateEvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluationTaxonomiesClient.updateEvaluationTaxonomyWithResponse":"Azure.AI.Projects.EvaluationTaxonomies.update","com.azure.ai.projects.BetaEvaluatorsAsyncClient":"Azure.AI.Projects.Beta.Evaluators","com.azure.ai.projects.BetaEvaluatorsAsyncClient.beginCreateEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsAsyncClient.beginCreateEvaluatorGenerationJobWithModel":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsAsyncClient.cancelEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsAsyncClient.cancelEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsAsyncClient.createEvaluatorVersion":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.createEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorVersion":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.deleteEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getCredentials":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getCredentialsWithResponse":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorVersion":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.getEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.listEvaluatorGenerationJobs":"Azure.AI.Projects.EvaluatorGenerationJobs.list","com.azure.ai.projects.BetaEvaluatorsAsyncClient.listEvaluatorVersions":"Azure.AI.Projects.Evaluators.listVersions","com.azure.ai.projects.BetaEvaluatorsAsyncClient.listLatestEvaluatorVersions":"Azure.AI.Projects.Evaluators.listLatestVersions","com.azure.ai.projects.BetaEvaluatorsAsyncClient.startPendingUpload":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsAsyncClient.startPendingUploadWithResponse":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsAsyncClient.updateEvaluatorVersion":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaEvaluatorsAsyncClient.updateEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaEvaluatorsClient":"Azure.AI.Projects.Beta.Evaluators","com.azure.ai.projects.BetaEvaluatorsClient.beginCreateEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsClient.beginCreateEvaluatorGenerationJobWithModel":"Azure.AI.Projects.EvaluatorGenerationJobs.create","com.azure.ai.projects.BetaEvaluatorsClient.cancelEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsClient.cancelEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.cancel","com.azure.ai.projects.BetaEvaluatorsClient.createEvaluatorVersion":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsClient.createEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.createVersion","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.delete","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorVersion":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsClient.deleteEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.deleteVersion","com.azure.ai.projects.BetaEvaluatorsClient.getCredentials":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsClient.getCredentialsWithResponse":"Azure.AI.Projects.Evaluators.getCredentials","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorGenerationJobWithResponse":"Azure.AI.Projects.EvaluatorGenerationJobs.get","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorVersion":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsClient.getEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.getVersion","com.azure.ai.projects.BetaEvaluatorsClient.listEvaluatorGenerationJobs":"Azure.AI.Projects.EvaluatorGenerationJobs.list","com.azure.ai.projects.BetaEvaluatorsClient.listEvaluatorVersions":"Azure.AI.Projects.Evaluators.listVersions","com.azure.ai.projects.BetaEvaluatorsClient.listLatestEvaluatorVersions":"Azure.AI.Projects.Evaluators.listLatestVersions","com.azure.ai.projects.BetaEvaluatorsClient.startPendingUpload":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsClient.startPendingUploadWithResponse":"Azure.AI.Projects.Evaluators.startPendingUpload","com.azure.ai.projects.BetaEvaluatorsClient.updateEvaluatorVersion":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaEvaluatorsClient.updateEvaluatorVersionWithResponse":"Azure.AI.Projects.Evaluators.updateVersion","com.azure.ai.projects.BetaInsightsAsyncClient":"Azure.AI.Projects.Beta.Insights","com.azure.ai.projects.BetaInsightsAsyncClient.generateInsight":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsAsyncClient.generateInsightWithResponse":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsAsyncClient.getInsight":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsAsyncClient.getInsightWithResponse":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsAsyncClient.listInsights":"Azure.AI.Projects.Insights.list","com.azure.ai.projects.BetaInsightsClient":"Azure.AI.Projects.Beta.Insights","com.azure.ai.projects.BetaInsightsClient.generateInsight":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsClient.generateInsightWithResponse":"Azure.AI.Projects.Insights.generate","com.azure.ai.projects.BetaInsightsClient.getInsight":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsClient.getInsightWithResponse":"Azure.AI.Projects.Insights.get","com.azure.ai.projects.BetaInsightsClient.listInsights":"Azure.AI.Projects.Insights.list","com.azure.ai.projects.BetaModelsAsyncClient":"Azure.AI.Projects.Beta.Models","com.azure.ai.projects.BetaModelsAsyncClient.createModelVersionAsyncWithResponse":"Azure.AI.Projects.Models.createAsync","com.azure.ai.projects.BetaModelsAsyncClient.deleteModelVersion":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsAsyncClient.deleteModelVersionWithResponse":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsAsyncClient.getModelCredentials":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsAsyncClient.getModelCredentialsWithResponse":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsAsyncClient.getModelVersion":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsAsyncClient.getModelVersionWithResponse":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsAsyncClient.listLatestModelVersions":"Azure.AI.Projects.Models.listLatest","com.azure.ai.projects.BetaModelsAsyncClient.listModelVersions":"Azure.AI.Projects.Models.listVersions","com.azure.ai.projects.BetaModelsAsyncClient.startModelPendingUpload":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsAsyncClient.startModelPendingUploadWithResponse":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsAsyncClient.updateModelVersion":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaModelsAsyncClient.updateModelVersionWithResponse":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaModelsClient":"Azure.AI.Projects.Beta.Models","com.azure.ai.projects.BetaModelsClient.createModelVersionAsyncWithResponse":"Azure.AI.Projects.Models.createAsync","com.azure.ai.projects.BetaModelsClient.deleteModelVersion":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsClient.deleteModelVersionWithResponse":"Azure.AI.Projects.Models.deleteVersion","com.azure.ai.projects.BetaModelsClient.getModelCredentials":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsClient.getModelCredentialsWithResponse":"Azure.AI.Projects.Models.getCredentials","com.azure.ai.projects.BetaModelsClient.getModelVersion":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsClient.getModelVersionWithResponse":"Azure.AI.Projects.Models.getVersion","com.azure.ai.projects.BetaModelsClient.listLatestModelVersions":"Azure.AI.Projects.Models.listLatest","com.azure.ai.projects.BetaModelsClient.listModelVersions":"Azure.AI.Projects.Models.listVersions","com.azure.ai.projects.BetaModelsClient.startModelPendingUpload":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsClient.startModelPendingUploadWithResponse":"Azure.AI.Projects.Models.startPendingUpload","com.azure.ai.projects.BetaModelsClient.updateModelVersion":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaModelsClient.updateModelVersionWithResponse":"Azure.AI.Projects.Models.createOrUpdateVersion","com.azure.ai.projects.BetaRedTeamsAsyncClient":"Azure.AI.Projects.Beta.RedTeams","com.azure.ai.projects.BetaRedTeamsAsyncClient.createRedTeamRun":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsAsyncClient.createRedTeamRunWithResponse":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsAsyncClient.getRedTeam":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsAsyncClient.getRedTeamWithResponse":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsAsyncClient.listRedTeams":"Azure.AI.Projects.RedTeams.list","com.azure.ai.projects.BetaRedTeamsClient":"Azure.AI.Projects.Beta.RedTeams","com.azure.ai.projects.BetaRedTeamsClient.createRedTeamRun":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsClient.createRedTeamRunWithResponse":"Azure.AI.Projects.RedTeams.create","com.azure.ai.projects.BetaRedTeamsClient.getRedTeam":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsClient.getRedTeamWithResponse":"Azure.AI.Projects.RedTeams.get","com.azure.ai.projects.BetaRedTeamsClient.listRedTeams":"Azure.AI.Projects.RedTeams.list","com.azure.ai.projects.BetaRoutinesAsyncClient":"Azure.AI.Projects.Beta.Routines","com.azure.ai.projects.BetaRoutinesAsyncClient.createOrUpdateRoutine":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.createOrUpdateRoutineWithResponse":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.deleteRoutine":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.deleteRoutineWithResponse":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.disableRoutine":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.disableRoutineWithResponse":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.dispatchRoutine":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesAsyncClient.dispatchRoutineWithResponse":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesAsyncClient.enableRoutine":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.enableRoutineWithResponse":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.getRoutine":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.getRoutineWithResponse":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesAsyncClient.listRoutineRuns":"Azure.AI.Projects.Routines.listRoutineRuns","com.azure.ai.projects.BetaRoutinesAsyncClient.listRoutines":"Azure.AI.Projects.Routines.listRoutines","com.azure.ai.projects.BetaRoutinesClient":"Azure.AI.Projects.Beta.Routines","com.azure.ai.projects.BetaRoutinesClient.createOrUpdateRoutine":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesClient.createOrUpdateRoutineWithResponse":"Azure.AI.Projects.Routines.createOrUpdateRoutine","com.azure.ai.projects.BetaRoutinesClient.deleteRoutine":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesClient.deleteRoutineWithResponse":"Azure.AI.Projects.Routines.deleteRoutine","com.azure.ai.projects.BetaRoutinesClient.disableRoutine":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesClient.disableRoutineWithResponse":"Azure.AI.Projects.Routines.disableRoutine","com.azure.ai.projects.BetaRoutinesClient.dispatchRoutine":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesClient.dispatchRoutineWithResponse":"Azure.AI.Projects.Routines.dispatchRoutineAsync","com.azure.ai.projects.BetaRoutinesClient.enableRoutine":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesClient.enableRoutineWithResponse":"Azure.AI.Projects.Routines.enableRoutine","com.azure.ai.projects.BetaRoutinesClient.getRoutine":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesClient.getRoutineWithResponse":"Azure.AI.Projects.Routines.getRoutine","com.azure.ai.projects.BetaRoutinesClient.listRoutineRuns":"Azure.AI.Projects.Routines.listRoutineRuns","com.azure.ai.projects.BetaRoutinesClient.listRoutines":"Azure.AI.Projects.Routines.listRoutines","com.azure.ai.projects.BetaSchedulesAsyncClient":"Azure.AI.Projects.Beta.Schedules","com.azure.ai.projects.BetaSchedulesAsyncClient.createOrUpdateSchedule":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesAsyncClient.createOrUpdateScheduleWithResponse":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesAsyncClient.deleteSchedule":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesAsyncClient.deleteScheduleWithResponse":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesAsyncClient.getSchedule":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesAsyncClient.getScheduleRun":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesAsyncClient.getScheduleRunWithResponse":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesAsyncClient.getScheduleWithResponse":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesAsyncClient.listScheduleRuns":"Azure.AI.Projects.Schedules.listRuns","com.azure.ai.projects.BetaSchedulesAsyncClient.listSchedules":"Azure.AI.Projects.Schedules.list","com.azure.ai.projects.BetaSchedulesClient":"Azure.AI.Projects.Beta.Schedules","com.azure.ai.projects.BetaSchedulesClient.createOrUpdateSchedule":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesClient.createOrUpdateScheduleWithResponse":"Azure.AI.Projects.Schedules.createOrUpdate","com.azure.ai.projects.BetaSchedulesClient.deleteSchedule":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesClient.deleteScheduleWithResponse":"Azure.AI.Projects.Schedules.delete","com.azure.ai.projects.BetaSchedulesClient.getSchedule":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesClient.getScheduleRun":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesClient.getScheduleRunWithResponse":"Azure.AI.Projects.Schedules.getRun","com.azure.ai.projects.BetaSchedulesClient.getScheduleWithResponse":"Azure.AI.Projects.Schedules.get","com.azure.ai.projects.BetaSchedulesClient.listScheduleRuns":"Azure.AI.Projects.Schedules.listRuns","com.azure.ai.projects.BetaSchedulesClient.listSchedules":"Azure.AI.Projects.Schedules.list","com.azure.ai.projects.BetaSkillsAsyncClient":"Azure.AI.Projects.Beta.Skills","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersion":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersionFromFiles":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersionFromFilesWithResponse":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsAsyncClient.createSkillVersionWithResponse":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.getSkill":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillContent":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillContentWithResponse":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersion":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersionContent":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersionContentWithResponse":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillVersionWithResponse":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsAsyncClient.getSkillWithResponse":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsAsyncClient.listSkillVersions":"Azure.AI.Projects.Skills.listSkillVersions","com.azure.ai.projects.BetaSkillsAsyncClient.listSkills":"Azure.AI.Projects.Skills.listSkills","com.azure.ai.projects.BetaSkillsAsyncClient.updateSkill":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.BetaSkillsAsyncClient.updateSkillWithResponse":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.BetaSkillsClient":"Azure.AI.Projects.Beta.Skills","com.azure.ai.projects.BetaSkillsClient.createSkillVersion":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsClient.createSkillVersionFromFiles":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsClient.createSkillVersionFromFilesWithResponse":"Azure.AI.Projects.Skills.createSkillVersionFromFiles","com.azure.ai.projects.BetaSkillsClient.createSkillVersionWithResponse":"Azure.AI.Projects.Skills.createSkillVersion","com.azure.ai.projects.BetaSkillsClient.getSkill":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsClient.getSkillContent":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsClient.getSkillContentWithResponse":"Azure.AI.Projects.Skills.getSkillContent","com.azure.ai.projects.BetaSkillsClient.getSkillVersion":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsClient.getSkillVersionContent":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsClient.getSkillVersionContentWithResponse":"Azure.AI.Projects.Skills.getSkillVersionContent","com.azure.ai.projects.BetaSkillsClient.getSkillVersionWithResponse":"Azure.AI.Projects.Skills.getSkillVersion","com.azure.ai.projects.BetaSkillsClient.getSkillWithResponse":"Azure.AI.Projects.Skills.getSkill","com.azure.ai.projects.BetaSkillsClient.listSkillVersions":"Azure.AI.Projects.Skills.listSkillVersions","com.azure.ai.projects.BetaSkillsClient.listSkills":"Azure.AI.Projects.Skills.listSkills","com.azure.ai.projects.BetaSkillsClient.updateSkill":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.BetaSkillsClient.updateSkillWithResponse":"Azure.AI.Projects.Skills.updateSkill","com.azure.ai.projects.ConnectionsAsyncClient":"Azure.AI.Projects.Connections","com.azure.ai.projects.ConnectionsAsyncClient.getConnection":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsAsyncClient.getConnectionWithCredentials":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsAsyncClient.getConnectionWithCredentialsWithResponse":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsAsyncClient.getConnectionWithResponse":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsAsyncClient.listConnections":"Azure.AI.Projects.Connections.list","com.azure.ai.projects.ConnectionsClient":"Azure.AI.Projects.Connections","com.azure.ai.projects.ConnectionsClient.getConnection":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsClient.getConnectionWithCredentials":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsClient.getConnectionWithCredentialsWithResponse":"Azure.AI.Projects.Connections.getWithCredentials","com.azure.ai.projects.ConnectionsClient.getConnectionWithResponse":"Azure.AI.Projects.Connections.get","com.azure.ai.projects.ConnectionsClient.listConnections":"Azure.AI.Projects.Connections.list","com.azure.ai.projects.DatasetsAsyncClient":"Azure.AI.Projects.Datasets","com.azure.ai.projects.DatasetsAsyncClient.createOrUpdateDatasetVersion":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsAsyncClient.createOrUpdateDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsAsyncClient.deleteDatasetVersion":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsAsyncClient.deleteDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsAsyncClient.getCredentials":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsAsyncClient.getCredentialsWithResponse":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsAsyncClient.getDatasetVersion":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsAsyncClient.getDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsAsyncClient.listDatasetVersions":"Azure.AI.Projects.Datasets.listVersions","com.azure.ai.projects.DatasetsAsyncClient.listLatestDatasetVersions":"Azure.AI.Projects.Datasets.listLatest","com.azure.ai.projects.DatasetsAsyncClient.pendingUpload":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DatasetsAsyncClient.pendingUploadWithResponse":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DatasetsClient":"Azure.AI.Projects.Datasets","com.azure.ai.projects.DatasetsClient.createOrUpdateDatasetVersion":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsClient.createOrUpdateDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.createOrUpdateVersion","com.azure.ai.projects.DatasetsClient.deleteDatasetVersion":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsClient.deleteDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.deleteVersion","com.azure.ai.projects.DatasetsClient.getCredentials":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsClient.getCredentialsWithResponse":"Azure.AI.Projects.Datasets.getCredentials","com.azure.ai.projects.DatasetsClient.getDatasetVersion":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsClient.getDatasetVersionWithResponse":"Azure.AI.Projects.Datasets.getVersion","com.azure.ai.projects.DatasetsClient.listDatasetVersions":"Azure.AI.Projects.Datasets.listVersions","com.azure.ai.projects.DatasetsClient.listLatestDatasetVersions":"Azure.AI.Projects.Datasets.listLatest","com.azure.ai.projects.DatasetsClient.pendingUpload":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DatasetsClient.pendingUploadWithResponse":"Azure.AI.Projects.Datasets.startPendingUploadVersion","com.azure.ai.projects.DeploymentsAsyncClient":"Azure.AI.Projects.Deployments","com.azure.ai.projects.DeploymentsAsyncClient.getDeployment":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsAsyncClient.getDeploymentWithResponse":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsAsyncClient.listDeployments":"Azure.AI.Projects.Deployments.list","com.azure.ai.projects.DeploymentsClient":"Azure.AI.Projects.Deployments","com.azure.ai.projects.DeploymentsClient.getDeployment":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsClient.getDeploymentWithResponse":"Azure.AI.Projects.Deployments.get","com.azure.ai.projects.DeploymentsClient.listDeployments":"Azure.AI.Projects.Deployments.list","com.azure.ai.projects.EvaluationRulesAsyncClient":"Azure.AI.Projects.EvaluationRules","com.azure.ai.projects.EvaluationRulesAsyncClient.createOrUpdateEvaluationRule":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesAsyncClient.createOrUpdateEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesAsyncClient.deleteEvaluationRule":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesAsyncClient.deleteEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesAsyncClient.getEvaluationRule":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesAsyncClient.getEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesAsyncClient.listEvaluationRules":"Azure.AI.Projects.EvaluationRules.list","com.azure.ai.projects.EvaluationRulesClient":"Azure.AI.Projects.EvaluationRules","com.azure.ai.projects.EvaluationRulesClient.createOrUpdateEvaluationRule":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesClient.createOrUpdateEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.createOrUpdate","com.azure.ai.projects.EvaluationRulesClient.deleteEvaluationRule":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesClient.deleteEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.delete","com.azure.ai.projects.EvaluationRulesClient.getEvaluationRule":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesClient.getEvaluationRuleWithResponse":"Azure.AI.Projects.EvaluationRules.get","com.azure.ai.projects.EvaluationRulesClient.listEvaluationRules":"Azure.AI.Projects.EvaluationRules.list","com.azure.ai.projects.IndexesAsyncClient":"Azure.AI.Projects.Indexes","com.azure.ai.projects.IndexesAsyncClient.createOrUpdateIndexVersion":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesAsyncClient.createOrUpdateIndexVersionWithResponse":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesAsyncClient.deleteIndexVersion":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesAsyncClient.deleteIndexVersionWithResponse":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesAsyncClient.getIndexVersion":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesAsyncClient.getIndexVersionWithResponse":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesAsyncClient.listIndexVersions":"Azure.AI.Projects.Indexes.listVersions","com.azure.ai.projects.IndexesAsyncClient.listLatestIndexVersions":"Azure.AI.Projects.Indexes.listLatest","com.azure.ai.projects.IndexesClient":"Azure.AI.Projects.Indexes","com.azure.ai.projects.IndexesClient.createOrUpdateIndexVersion":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesClient.createOrUpdateIndexVersionWithResponse":"Azure.AI.Projects.Indexes.createOrUpdateVersion","com.azure.ai.projects.IndexesClient.deleteIndexVersion":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesClient.deleteIndexVersionWithResponse":"Azure.AI.Projects.Indexes.deleteVersion","com.azure.ai.projects.IndexesClient.getIndexVersion":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesClient.getIndexVersionWithResponse":"Azure.AI.Projects.Indexes.getVersion","com.azure.ai.projects.IndexesClient.listIndexVersions":"Azure.AI.Projects.Indexes.listVersions","com.azure.ai.projects.IndexesClient.listLatestIndexVersions":"Azure.AI.Projects.Indexes.listLatest","com.azure.ai.projects.implementation.models.CreateOrUpdateRoutineRequest":"Azure.AI.Projects.createOrUpdateRoutine.Request.anonymous","com.azure.ai.projects.implementation.models.CreateSkillVersionRequest":"Azure.AI.Projects.createSkillVersion.Request.anonymous","com.azure.ai.projects.implementation.models.DispatchRoutineAsyncRequest":"Azure.AI.Projects.dispatchRoutineAsync.Request.anonymous","com.azure.ai.projects.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.projects.implementation.models.UpdateSkillRequest":"Azure.AI.Projects.updateSkill.Request.anonymous","com.azure.ai.projects.models.AIProjectIndex":"Azure.AI.Projects.Index","com.azure.ai.projects.models.AgentClusterInsightRequest":"Azure.AI.Projects.AgentClusterInsightRequest","com.azure.ai.projects.models.AgentClusterInsightResult":"Azure.AI.Projects.AgentClusterInsightResult","com.azure.ai.projects.models.AgentDataGenerationJobSource":"Azure.AI.Projects.AgentDataGenerationJobSource","com.azure.ai.projects.models.AgentEvaluatorGenerationJobSource":"Azure.AI.Projects.AgentEvaluatorGenerationJobSource","com.azure.ai.projects.models.AgentInsight":"Azure.AI.Projects.AgentInsight","com.azure.ai.projects.models.AgentInsightDetails":"Azure.AI.Projects.AgentInsightDetails","com.azure.ai.projects.models.AgentInsightEstimatedCost":"Azure.AI.Projects.AgentInsightEstimatedCost","com.azure.ai.projects.models.AgentInsightHighlightedTrace":"Azure.AI.Projects.AgentInsightHighlightedTrace","com.azure.ai.projects.models.AgentInsightLinkedTrace":"Azure.AI.Projects.AgentInsightLinkedTrace","com.azure.ai.projects.models.AgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitor","com.azure.ai.projects.models.AgentInsightMonitorCreate":"Azure.AI.Projects.AgentInsightMonitorCreate","com.azure.ai.projects.models.AgentInsightMonitorListItem":"Azure.AI.Projects.AgentInsightMonitorListItem","com.azure.ai.projects.models.AgentInsightMonitorUpdate":"Azure.AI.Projects.AgentInsightMonitorUpdate","com.azure.ai.projects.models.AgentInsightOverviewSource":"Azure.AI.Projects.AgentInsightOverviewSource","com.azure.ai.projects.models.AgentInsightPromptSurface":"Azure.AI.Projects.AgentInsightPromptSurface","com.azure.ai.projects.models.AgentInsightProposedFix":"Azure.AI.Projects.AgentInsightProposedFix","com.azure.ai.projects.models.AgentInsightProposedFixChange":"Azure.AI.Projects.AgentInsightProposedFixChange","com.azure.ai.projects.models.AgentInsightProposedFixKind":"Azure.AI.Projects.AgentInsightProposedFixKind","com.azure.ai.projects.models.AgentInsightRecommendedAction":"Azure.AI.Projects.AgentInsightRecommendedAction","com.azure.ai.projects.models.AgentInsightRun":"Azure.AI.Projects.AgentInsightRun","com.azure.ai.projects.models.AgentInsightRunCreate":"Azure.AI.Projects.AgentInsightRunCreate","com.azure.ai.projects.models.AgentInsightRunResult":"Azure.AI.Projects.AgentInsightRunResult","com.azure.ai.projects.models.AgentInsightRunTrigger":"Azure.AI.Projects.AgentInsightRunTrigger","com.azure.ai.projects.models.AgentInsightSeverity":"Azure.AI.Projects.AgentInsightSeverity","com.azure.ai.projects.models.AgentInsightStatus":"Azure.AI.Projects.AgentInsightStatus","com.azure.ai.projects.models.AgentInsightSuspension":"Azure.AI.Projects.AgentInsightSuspension","com.azure.ai.projects.models.AgentInsightTokenUsage":"Azure.AI.Projects.AgentInsightTokenUsage","com.azure.ai.projects.models.AgentInsightUpdate":"Azure.AI.Projects.AgentInsightUpdate","com.azure.ai.projects.models.AgentInsightsOverview":"Azure.AI.Projects.AgentInsightsOverview","com.azure.ai.projects.models.AgentInsightsOverviewOverride":"Azure.AI.Projects.AgentInsightsOverviewOverride","com.azure.ai.projects.models.AgentTaxonomyInput":"Azure.AI.Projects.AgentTaxonomyInput","com.azure.ai.projects.models.AgenticIdentityPreviewCredential":"Azure.AI.Projects.AgenticIdentityPreviewCredentials","com.azure.ai.projects.models.ApiError":"OpenAI.Error","com.azure.ai.projects.models.ApiKeyCredential":"Azure.AI.Projects.ApiKeyCredentials","com.azure.ai.projects.models.ArtifactProfile":"Azure.AI.Projects.ArtifactProfile","com.azure.ai.projects.models.AttackStrategy":"Azure.AI.Projects.AttackStrategy","com.azure.ai.projects.models.AzureAIAgentTarget":"Azure.AI.Projects.AzureAIAgentTarget","com.azure.ai.projects.models.AzureAIModelTarget":"Azure.AI.Projects.AzureAIModelTarget","com.azure.ai.projects.models.AzureAISearchIndex":"Azure.AI.Projects.AzureAISearchIndex","com.azure.ai.projects.models.AzureOpenAIModelConfiguration":"Azure.AI.Projects.AzureOpenAIModelConfiguration","com.azure.ai.projects.models.BaseCredential":"Azure.AI.Projects.BaseCredentials","com.azure.ai.projects.models.BlobReference":"Azure.AI.Projects.BlobReference","com.azure.ai.projects.models.BlobReferenceSasCredential":"Azure.AI.Projects.SasCredential","com.azure.ai.projects.models.ChartCoordinate":"Azure.AI.Projects.ChartCoordinate","com.azure.ai.projects.models.ClusterInsightResult":"Azure.AI.Projects.ClusterInsightResult","com.azure.ai.projects.models.ClusterTokenUsage":"Azure.AI.Projects.ClusterTokenUsage","com.azure.ai.projects.models.CodeBasedEvaluatorDefinition":"Azure.AI.Projects.CodeBasedEvaluatorDefinition","com.azure.ai.projects.models.Connection":"Azure.AI.Projects.Connection","com.azure.ai.projects.models.ConnectionType":"Azure.AI.Projects.ConnectionType","com.azure.ai.projects.models.ContinuousEvaluationRuleAction":"Azure.AI.Projects.ContinuousEvaluationRuleAction","com.azure.ai.projects.models.CosmosDBIndex":"Azure.AI.Projects.CosmosDBIndex","com.azure.ai.projects.models.CreateAsyncResponse":"Azure.AI.Projects.createAsync.Response.anonymous","com.azure.ai.projects.models.CreateSkillVersionFromFilesBody":"Azure.AI.Projects.CreateSkillVersionFromFilesBody","com.azure.ai.projects.models.CredentialType":"Azure.AI.Projects.CredentialType","com.azure.ai.projects.models.CronTrigger":"Azure.AI.Projects.CronTrigger","com.azure.ai.projects.models.CustomCredential":"Azure.AI.Projects.CustomCredential","com.azure.ai.projects.models.CustomRoutineTrigger":"Azure.AI.Projects.CustomRoutineTrigger","com.azure.ai.projects.models.DailyRecurrenceSchedule":"Azure.AI.Projects.DailyRecurrenceSchedule","com.azure.ai.projects.models.DataGenerationJob":"Azure.AI.Projects.DataGenerationJob","com.azure.ai.projects.models.DataGenerationJobInputs":"Azure.AI.Projects.DataGenerationJobInputs","com.azure.ai.projects.models.DataGenerationJobOptions":"Azure.AI.Projects.DataGenerationJobOptions","com.azure.ai.projects.models.DataGenerationJobOutput":"Azure.AI.Projects.DataGenerationJobOutput","com.azure.ai.projects.models.DataGenerationJobOutputOptions":"Azure.AI.Projects.DataGenerationJobOutputOptions","com.azure.ai.projects.models.DataGenerationJobOutputType":"Azure.AI.Projects.DataGenerationJobOutputType","com.azure.ai.projects.models.DataGenerationJobResult":"Azure.AI.Projects.DataGenerationJobResult","com.azure.ai.projects.models.DataGenerationJobScenario":"Azure.AI.Projects.DataGenerationJobScenario","com.azure.ai.projects.models.DataGenerationJobSource":"Azure.AI.Projects.DataGenerationJobSource","com.azure.ai.projects.models.DataGenerationJobSourceType":"Azure.AI.Projects.DataGenerationJobSourceType","com.azure.ai.projects.models.DataGenerationJobType":"Azure.AI.Projects.DataGenerationJobType","com.azure.ai.projects.models.DataGenerationModelOptions":"Azure.AI.Projects.DataGenerationModelOptions","com.azure.ai.projects.models.DataGenerationTokenUsage":"Azure.AI.Projects.DataGenerationTokenUsage","com.azure.ai.projects.models.DatasetCredential":"Azure.AI.Projects.AssetCredentialResponse","com.azure.ai.projects.models.DatasetDataGenerationJobOutput":"Azure.AI.Projects.DatasetDataGenerationJobOutput","com.azure.ai.projects.models.DatasetEvaluatorGenerationJobSource":"Azure.AI.Projects.DatasetEvaluatorGenerationJobSource","com.azure.ai.projects.models.DatasetReference":"Azure.AI.Projects.DatasetReference","com.azure.ai.projects.models.DatasetType":"Azure.AI.Projects.DatasetType","com.azure.ai.projects.models.DatasetVersion":"Azure.AI.Projects.DatasetVersion","com.azure.ai.projects.models.Deployment":"Azure.AI.Projects.Deployment","com.azure.ai.projects.models.DeploymentType":"Azure.AI.Projects.DeploymentType","com.azure.ai.projects.models.Dimension":"Azure.AI.Projects.Dimension","com.azure.ai.projects.models.DispatchRoutineResult":"Azure.AI.Projects.DispatchRoutineResponse","com.azure.ai.projects.models.EmbeddingConfiguration":"Azure.AI.Projects.EmbeddingConfiguration","com.azure.ai.projects.models.EndpointBasedEvaluatorDefinition":"Azure.AI.Projects.EndpointBasedEvaluatorDefinition","com.azure.ai.projects.models.EntraIdCredential":"Azure.AI.Projects.EntraIDCredentials","com.azure.ai.projects.models.EvaluationComparisonInsightRequest":"Azure.AI.Projects.EvaluationComparisonInsightRequest","com.azure.ai.projects.models.EvaluationComparisonInsightResult":"Azure.AI.Projects.EvaluationComparisonInsightResult","com.azure.ai.projects.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.projects.models.EvaluationResult":"Azure.AI.Projects.EvalResult","com.azure.ai.projects.models.EvaluationResultSample":"Azure.AI.Projects.EvaluationResultSample","com.azure.ai.projects.models.EvaluationRule":"Azure.AI.Projects.EvaluationRule","com.azure.ai.projects.models.EvaluationRuleAction":"Azure.AI.Projects.EvaluationRuleAction","com.azure.ai.projects.models.EvaluationRuleActionType":"Azure.AI.Projects.EvaluationRuleActionType","com.azure.ai.projects.models.EvaluationRuleEventType":"Azure.AI.Projects.EvaluationRuleEventType","com.azure.ai.projects.models.EvaluationRuleFilter":"Azure.AI.Projects.EvaluationRuleFilter","com.azure.ai.projects.models.EvaluationRunClusterInsightRequest":"Azure.AI.Projects.EvaluationRunClusterInsightRequest","com.azure.ai.projects.models.EvaluationRunClusterInsightResult":"Azure.AI.Projects.EvaluationRunClusterInsightResult","com.azure.ai.projects.models.EvaluationRunResultCompareItem":"Azure.AI.Projects.EvalRunResultCompareItem","com.azure.ai.projects.models.EvaluationRunResultComparison":"Azure.AI.Projects.EvalRunResultComparison","com.azure.ai.projects.models.EvaluationRunResultSummary":"Azure.AI.Projects.EvalRunResultSummary","com.azure.ai.projects.models.EvaluationScheduleTask":"Azure.AI.Projects.EvaluationScheduleTask","com.azure.ai.projects.models.EvaluationTaxonomy":"Azure.AI.Projects.EvaluationTaxonomy","com.azure.ai.projects.models.EvaluationTaxonomyInput":"Azure.AI.Projects.EvaluationTaxonomyInput","com.azure.ai.projects.models.EvaluationTaxonomyInputType":"Azure.AI.Projects.EvaluationTaxonomyInputType","com.azure.ai.projects.models.EvaluatorCategory":"Azure.AI.Projects.EvaluatorCategory","com.azure.ai.projects.models.EvaluatorCredentialInput":"Azure.AI.Projects.EvaluatorCredentialRequest","com.azure.ai.projects.models.EvaluatorDefinition":"Azure.AI.Projects.EvaluatorDefinition","com.azure.ai.projects.models.EvaluatorDefinitionType":"Azure.AI.Projects.EvaluatorDefinitionType","com.azure.ai.projects.models.EvaluatorGenerationArtifacts":"Azure.AI.Projects.EvaluatorGenerationArtifacts","com.azure.ai.projects.models.EvaluatorGenerationInputs":"Azure.AI.Projects.EvaluatorGenerationInputs","com.azure.ai.projects.models.EvaluatorGenerationJob":"Azure.AI.Projects.EvaluatorGenerationJob","com.azure.ai.projects.models.EvaluatorGenerationJobSource":"Azure.AI.Projects.EvaluatorGenerationJobSource","com.azure.ai.projects.models.EvaluatorGenerationJobSourceType":"Azure.AI.Projects.EvaluatorGenerationJobSourceType","com.azure.ai.projects.models.EvaluatorGenerationTokenUsage":"Azure.AI.Projects.EvaluatorGenerationTokenUsage","com.azure.ai.projects.models.EvaluatorMetric":"Azure.AI.Projects.EvaluatorMetric","com.azure.ai.projects.models.EvaluatorMetricDirection":"Azure.AI.Projects.EvaluatorMetricDirection","com.azure.ai.projects.models.EvaluatorMetricType":"Azure.AI.Projects.EvaluatorMetricType","com.azure.ai.projects.models.EvaluatorType":"Azure.AI.Projects.EvaluatorType","com.azure.ai.projects.models.EvaluatorVersion":"Azure.AI.Projects.EvaluatorVersion","com.azure.ai.projects.models.FieldMapping":"Azure.AI.Projects.FieldMapping","com.azure.ai.projects.models.FileDataGenerationJobOutput":"Azure.AI.Projects.FileDataGenerationJobOutput","com.azure.ai.projects.models.FileDataGenerationJobSource":"Azure.AI.Projects.FileDataGenerationJobSource","com.azure.ai.projects.models.FileDatasetVersion":"Azure.AI.Projects.FileDatasetVersion","com.azure.ai.projects.models.FolderDatasetVersion":"Azure.AI.Projects.FolderDatasetVersion","com.azure.ai.projects.models.FoundryModelArtifactProfileCategory":"Azure.AI.Projects.FoundryModelArtifactProfileCategory","com.azure.ai.projects.models.FoundryModelArtifactProfileSignal":"Azure.AI.Projects.FoundryModelArtifactProfileSignal","com.azure.ai.projects.models.FoundryModelSourceType":"Azure.AI.Projects.FoundryModelSourceType","com.azure.ai.projects.models.FoundryModelWarning":"Azure.AI.Projects.FoundryModelWarning","com.azure.ai.projects.models.FoundryModelWarningCode":"Azure.AI.Projects.FoundryModelWarningCode","com.azure.ai.projects.models.FoundryModelWeightType":"Azure.AI.Projects.FoundryModelWeightType","com.azure.ai.projects.models.GenerationWarningType":"Azure.AI.Projects.GenerationWarningType","com.azure.ai.projects.models.GitHubIssueEvent":"Azure.AI.Projects.GitHubIssueEvent","com.azure.ai.projects.models.GitHubIssueRoutineTrigger":"Azure.AI.Projects.GitHubIssueRoutineTrigger","com.azure.ai.projects.models.GraderAzureAIEvaluator":"Azure.AI.Projects.GraderAzureAIEvaluator","com.azure.ai.projects.models.HourlyRecurrenceSchedule":"Azure.AI.Projects.HourlyRecurrenceSchedule","com.azure.ai.projects.models.HumanEvaluationPreviewRuleAction":"Azure.AI.Projects.HumanEvaluationPreviewRuleAction","com.azure.ai.projects.models.IndexType":"Azure.AI.Projects.IndexType","com.azure.ai.projects.models.Insight":"Azure.AI.Projects.Insight","com.azure.ai.projects.models.InsightCluster":"Azure.AI.Projects.InsightCluster","com.azure.ai.projects.models.InsightModelConfiguration":"Azure.AI.Projects.InsightModelConfiguration","com.azure.ai.projects.models.InsightRequest":"Azure.AI.Projects.InsightRequest","com.azure.ai.projects.models.InsightResult":"Azure.AI.Projects.InsightResult","com.azure.ai.projects.models.InsightSample":"Azure.AI.Projects.InsightSample","com.azure.ai.projects.models.InsightScheduleTask":"Azure.AI.Projects.InsightScheduleTask","com.azure.ai.projects.models.InsightSummary":"Azure.AI.Projects.InsightSummary","com.azure.ai.projects.models.InsightType":"Azure.AI.Projects.InsightType","com.azure.ai.projects.models.InsightsMetadata":"Azure.AI.Projects.InsightsMetadata","com.azure.ai.projects.models.InvokeAgentInvocationsApiDispatchPayload":"Azure.AI.Projects.InvokeAgentInvocationsApiDispatchPayload","com.azure.ai.projects.models.InvokeAgentInvocationsApiRoutineAction":"Azure.AI.Projects.InvokeAgentInvocationsApiRoutineAction","com.azure.ai.projects.models.InvokeAgentResponsesApiDispatchPayload":"Azure.AI.Projects.InvokeAgentResponsesApiDispatchPayload","com.azure.ai.projects.models.InvokeAgentResponsesApiRoutineAction":"Azure.AI.Projects.InvokeAgentResponsesApiRoutineAction","com.azure.ai.projects.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.projects.models.ListVersionsRequestType":"Azure.AI.Projects.listVersions.RequestType.anonymous","com.azure.ai.projects.models.LoraConfig":"Azure.AI.Projects.LoraConfig","com.azure.ai.projects.models.ManagedAzureAISearchIndex":"Azure.AI.Projects.ManagedAzureAISearchIndex","com.azure.ai.projects.models.ModelCredentialInput":"Azure.AI.Projects.ModelCredentialRequest","com.azure.ai.projects.models.ModelDeployment":"Azure.AI.Projects.ModelDeployment","com.azure.ai.projects.models.ModelDeploymentSku":"Azure.AI.Projects.Sku","com.azure.ai.projects.models.ModelPendingUploadInput":"Azure.AI.Projects.ModelPendingUploadRequest","com.azure.ai.projects.models.ModelPendingUploadResult":"Azure.AI.Projects.ModelPendingUploadResponse","com.azure.ai.projects.models.ModelSamplingParams":"Azure.AI.Projects.ModelSamplingParams","com.azure.ai.projects.models.ModelSourceData":"Azure.AI.Projects.ModelSourceData","com.azure.ai.projects.models.ModelVersion":"Azure.AI.Projects.ModelVersion","com.azure.ai.projects.models.MonthlyRecurrenceSchedule":"Azure.AI.Projects.MonthlyRecurrenceSchedule","com.azure.ai.projects.models.NoAuthenticationCredential":"Azure.AI.Projects.NoAuthenticationCredentials","com.azure.ai.projects.models.OneTimeTrigger":"Azure.AI.Projects.OneTimeTrigger","com.azure.ai.projects.models.OperationStatus":"Azure.Core.Foundations.OperationState","com.azure.ai.projects.models.PendingUploadRequest":"Azure.AI.Projects.PendingUploadRequest","com.azure.ai.projects.models.PendingUploadResponse":"Azure.AI.Projects.PendingUploadResponse","com.azure.ai.projects.models.PendingUploadType":"Azure.AI.Projects.PendingUploadType","com.azure.ai.projects.models.PromptBasedEvaluatorDefinition":"Azure.AI.Projects.PromptBasedEvaluatorDefinition","com.azure.ai.projects.models.PromptDataGenerationJobSource":"Azure.AI.Projects.PromptDataGenerationJobSource","com.azure.ai.projects.models.PromptEvaluatorGenerationJobSource":"Azure.AI.Projects.PromptEvaluatorGenerationJobSource","com.azure.ai.projects.models.RecurrenceSchedule":"Azure.AI.Projects.RecurrenceSchedule","com.azure.ai.projects.models.RecurrenceTrigger":"Azure.AI.Projects.RecurrenceTrigger","com.azure.ai.projects.models.RecurrenceType":"Azure.AI.Projects.RecurrenceType","com.azure.ai.projects.models.RedTeam":"Azure.AI.Projects.RedTeam","com.azure.ai.projects.models.RiskCategory":"Azure.AI.Projects.RiskCategory","com.azure.ai.projects.models.Routine":"Azure.AI.Projects.Routine","com.azure.ai.projects.models.RoutineAction":"Azure.AI.Projects.RoutineAction","com.azure.ai.projects.models.RoutineActionType":"Azure.AI.Projects.RoutineActionType","com.azure.ai.projects.models.RoutineAttemptSource":"Azure.AI.Projects.RoutineAttemptSource","com.azure.ai.projects.models.RoutineAuthorization":"Azure.AI.Projects.RoutineAuthorization","com.azure.ai.projects.models.RoutineDispatchIdentity":"Azure.AI.Projects.RoutineDispatchIdentity","com.azure.ai.projects.models.RoutineDispatchPayload":"Azure.AI.Projects.RoutineDispatchPayload","com.azure.ai.projects.models.RoutineDispatchPayloadType":"Azure.AI.Projects.RoutineDispatchPayloadType","com.azure.ai.projects.models.RoutineRun":"Azure.AI.Projects.RoutineRun","com.azure.ai.projects.models.RoutineRunPhase":"Azure.AI.Projects.RoutineRunPhase","com.azure.ai.projects.models.RoutineTrigger":"Azure.AI.Projects.RoutineTrigger","com.azure.ai.projects.models.RoutineTriggerType":"Azure.AI.Projects.RoutineTriggerType","com.azure.ai.projects.models.RubricBasedEvaluatorDefinition":"Azure.AI.Projects.RubricBasedEvaluatorDefinition","com.azure.ai.projects.models.RubricGenerationInputQualityWarning":"Azure.AI.Projects.RubricGenerationInputQualityWarning","com.azure.ai.projects.models.RubricGenerationInputQualityWarningCode":"Azure.AI.Projects.RubricGenerationInputQualityWarningCode","com.azure.ai.projects.models.RubricGenerationInputQualityWarningSeverity":"Azure.AI.Projects.RubricGenerationInputQualityWarningSeverity","com.azure.ai.projects.models.RubricGenerationInputQualityWarningSource":"Azure.AI.Projects.RubricGenerationInputQualityWarningSource","com.azure.ai.projects.models.SampleType":"Azure.AI.Projects.SampleType","com.azure.ai.projects.models.SasCredential":"Azure.AI.Projects.SASCredentials","com.azure.ai.projects.models.Schedule":"Azure.AI.Projects.Schedule","com.azure.ai.projects.models.ScheduleProvisioningStatus":"Azure.AI.Projects.ScheduleProvisioningStatus","com.azure.ai.projects.models.ScheduleRoutineTrigger":"Azure.AI.Projects.ScheduleRoutineTrigger","com.azure.ai.projects.models.ScheduleRun":"Azure.AI.Projects.ScheduleRun","com.azure.ai.projects.models.ScheduleTask":"Azure.AI.Projects.ScheduleTask","com.azure.ai.projects.models.ScheduleTaskType":"Azure.AI.Projects.ScheduleTaskType","com.azure.ai.projects.models.SimpleQnADataGenerationJobOptions":"Azure.AI.Projects.SimpleQnADataGenerationJobOptions","com.azure.ai.projects.models.SimpleQnAFineTuningQuestionType":"Azure.AI.Projects.SimpleQnAFineTuningQuestionType","com.azure.ai.projects.models.SimulationSeedDataGenerationJobOptions":"Azure.AI.Projects.SimulationSeedDataGenerationJobOptions","com.azure.ai.projects.models.SkillDetails":"Azure.AI.Projects.Skill","com.azure.ai.projects.models.SkillFileDetails":"TypeSpec.Http.File","com.azure.ai.projects.models.SkillInlineContent":"Azure.AI.Projects.SkillInlineContent","com.azure.ai.projects.models.SkillVersion":"Azure.AI.Projects.SkillVersion","com.azure.ai.projects.models.Target":"Azure.AI.Projects.Target","com.azure.ai.projects.models.TargetConfig":"Azure.AI.Projects.RedTeamTargetConfig","com.azure.ai.projects.models.TaxonomyCategory":"Azure.AI.Projects.TaxonomyCategory","com.azure.ai.projects.models.TaxonomySubCategory":"Azure.AI.Projects.TaxonomySubCategory","com.azure.ai.projects.models.TestingCriterionAzureAIEvaluator":"Azure.AI.Projects.TestingCriterionAzureAIEvaluator","com.azure.ai.projects.models.TimerRoutineTrigger":"Azure.AI.Projects.TimerRoutineTrigger","com.azure.ai.projects.models.ToolDescription":"Azure.AI.Projects.ToolDescription","com.azure.ai.projects.models.ToolUseFineTuningDataGenerationJobOptions":"Azure.AI.Projects.ToolUseFineTuningDataGenerationJobOptions","com.azure.ai.projects.models.TracesDataGenerationJobOptions":"Azure.AI.Projects.TracesDataGenerationJobOptions","com.azure.ai.projects.models.TracesDataGenerationJobSource":"Azure.AI.Projects.TracesDataGenerationJobSource","com.azure.ai.projects.models.TracesEvaluatorGenerationJobSource":"Azure.AI.Projects.TracesEvaluatorGenerationJobSource","com.azure.ai.projects.models.TreatmentEffectType":"Azure.AI.Projects.TreatmentEffectType","com.azure.ai.projects.models.Trigger":"Azure.AI.Projects.Trigger","com.azure.ai.projects.models.TriggerType":"Azure.AI.Projects.TriggerType","com.azure.ai.projects.models.UpdateModelVersionInput":"Azure.AI.Projects.UpdateModelVersionRequest","com.azure.ai.projects.models.WeeklyRecurrenceSchedule":"Azure.AI.Projects.WeeklyRecurrenceSchedule"},"generatedFiles":["src/main/java/com/azure/ai/projects/AIProjectClientBuilder.java","src/main/java/com/azure/ai/projects/AIProjectsServiceVersion.java","src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsClient.java","src/main/java/com/azure/ai/projects/BetaDatasetsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaDatasetsClient.java","src/main/java/com/azure/ai/projects/BetaEvaluationTaxonomiesAsyncClient.java","src/main/java/com/azure/ai/projects/BetaEvaluationTaxonomiesClient.java","src/main/java/com/azure/ai/projects/BetaEvaluatorsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaEvaluatorsClient.java","src/main/java/com/azure/ai/projects/BetaInsightsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaInsightsClient.java","src/main/java/com/azure/ai/projects/BetaModelsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaModelsClient.java","src/main/java/com/azure/ai/projects/BetaRedTeamsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaRedTeamsClient.java","src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java","src/main/java/com/azure/ai/projects/BetaRoutinesClient.java","src/main/java/com/azure/ai/projects/BetaSchedulesAsyncClient.java","src/main/java/com/azure/ai/projects/BetaSchedulesClient.java","src/main/java/com/azure/ai/projects/BetaSkillsAsyncClient.java","src/main/java/com/azure/ai/projects/BetaSkillsClient.java","src/main/java/com/azure/ai/projects/ConnectionsAsyncClient.java","src/main/java/com/azure/ai/projects/ConnectionsClient.java","src/main/java/com/azure/ai/projects/DatasetsAsyncClient.java","src/main/java/com/azure/ai/projects/DatasetsClient.java","src/main/java/com/azure/ai/projects/DeploymentsAsyncClient.java","src/main/java/com/azure/ai/projects/DeploymentsClient.java","src/main/java/com/azure/ai/projects/EvaluationRulesAsyncClient.java","src/main/java/com/azure/ai/projects/EvaluationRulesClient.java","src/main/java/com/azure/ai/projects/IndexesAsyncClient.java","src/main/java/com/azure/ai/projects/IndexesClient.java","src/main/java/com/azure/ai/projects/implementation/AIProjectClientImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaAgentInsightMonitorsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaDatasetsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaEvaluationTaxonomiesImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaEvaluatorsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaInsightsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaModelsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaRedTeamsImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaRoutinesImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaSchedulesImpl.java","src/main/java/com/azure/ai/projects/implementation/BetaSkillsImpl.java","src/main/java/com/azure/ai/projects/implementation/ConnectionsImpl.java","src/main/java/com/azure/ai/projects/implementation/DatasetsImpl.java","src/main/java/com/azure/ai/projects/implementation/DeploymentsImpl.java","src/main/java/com/azure/ai/projects/implementation/EvaluationRulesImpl.java","src/main/java/com/azure/ai/projects/implementation/IndexesImpl.java","src/main/java/com/azure/ai/projects/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/projects/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/projects/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/projects/implementation/PollingUtils.java","src/main/java/com/azure/ai/projects/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/projects/implementation/models/CreateOrUpdateRoutineRequest.java","src/main/java/com/azure/ai/projects/implementation/models/CreateSkillVersionRequest.java","src/main/java/com/azure/ai/projects/implementation/models/DispatchRoutineAsyncRequest.java","src/main/java/com/azure/ai/projects/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/projects/implementation/models/UpdateSkillRequest.java","src/main/java/com/azure/ai/projects/implementation/models/package-info.java","src/main/java/com/azure/ai/projects/implementation/package-info.java","src/main/java/com/azure/ai/projects/models/AIProjectIndex.java","src/main/java/com/azure/ai/projects/models/AgentClusterInsightRequest.java","src/main/java/com/azure/ai/projects/models/AgentClusterInsightResult.java","src/main/java/com/azure/ai/projects/models/AgentDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/AgentEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/AgentInsight.java","src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java","src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java","src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java","src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java","src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java","src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java","src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java","src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java","src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java","src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java","src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java","src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java","src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java","src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java","src/main/java/com/azure/ai/projects/models/AgentInsightRun.java","src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java","src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java","src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java","src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java","src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java","src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java","src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java","src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java","src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java","src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java","src/main/java/com/azure/ai/projects/models/AgentTaxonomyInput.java","src/main/java/com/azure/ai/projects/models/AgenticIdentityPreviewCredential.java","src/main/java/com/azure/ai/projects/models/ApiError.java","src/main/java/com/azure/ai/projects/models/ApiKeyCredential.java","src/main/java/com/azure/ai/projects/models/ArtifactProfile.java","src/main/java/com/azure/ai/projects/models/AttackStrategy.java","src/main/java/com/azure/ai/projects/models/AzureAIAgentTarget.java","src/main/java/com/azure/ai/projects/models/AzureAIModelTarget.java","src/main/java/com/azure/ai/projects/models/AzureAISearchIndex.java","src/main/java/com/azure/ai/projects/models/AzureOpenAIModelConfiguration.java","src/main/java/com/azure/ai/projects/models/BaseCredential.java","src/main/java/com/azure/ai/projects/models/BlobReference.java","src/main/java/com/azure/ai/projects/models/BlobReferenceSasCredential.java","src/main/java/com/azure/ai/projects/models/ChartCoordinate.java","src/main/java/com/azure/ai/projects/models/ClusterInsightResult.java","src/main/java/com/azure/ai/projects/models/ClusterTokenUsage.java","src/main/java/com/azure/ai/projects/models/CodeBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/Connection.java","src/main/java/com/azure/ai/projects/models/ConnectionType.java","src/main/java/com/azure/ai/projects/models/ContinuousEvaluationRuleAction.java","src/main/java/com/azure/ai/projects/models/CosmosDBIndex.java","src/main/java/com/azure/ai/projects/models/CreateAsyncResponse.java","src/main/java/com/azure/ai/projects/models/CreateSkillVersionFromFilesBody.java","src/main/java/com/azure/ai/projects/models/CredentialType.java","src/main/java/com/azure/ai/projects/models/CronTrigger.java","src/main/java/com/azure/ai/projects/models/CustomCredential.java","src/main/java/com/azure/ai/projects/models/CustomRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/DailyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/DataGenerationJob.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobInputs.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOutput.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOutputOptions.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobOutputType.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobResult.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobScenario.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobSourceType.java","src/main/java/com/azure/ai/projects/models/DataGenerationJobType.java","src/main/java/com/azure/ai/projects/models/DataGenerationModelOptions.java","src/main/java/com/azure/ai/projects/models/DataGenerationTokenUsage.java","src/main/java/com/azure/ai/projects/models/DatasetCredential.java","src/main/java/com/azure/ai/projects/models/DatasetDataGenerationJobOutput.java","src/main/java/com/azure/ai/projects/models/DatasetEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/DatasetReference.java","src/main/java/com/azure/ai/projects/models/DatasetType.java","src/main/java/com/azure/ai/projects/models/DatasetVersion.java","src/main/java/com/azure/ai/projects/models/Deployment.java","src/main/java/com/azure/ai/projects/models/DeploymentType.java","src/main/java/com/azure/ai/projects/models/Dimension.java","src/main/java/com/azure/ai/projects/models/DispatchRoutineResult.java","src/main/java/com/azure/ai/projects/models/EmbeddingConfiguration.java","src/main/java/com/azure/ai/projects/models/EndpointBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/EntraIdCredential.java","src/main/java/com/azure/ai/projects/models/EvaluationComparisonInsightRequest.java","src/main/java/com/azure/ai/projects/models/EvaluationComparisonInsightResult.java","src/main/java/com/azure/ai/projects/models/EvaluationLevel.java","src/main/java/com/azure/ai/projects/models/EvaluationResult.java","src/main/java/com/azure/ai/projects/models/EvaluationResultSample.java","src/main/java/com/azure/ai/projects/models/EvaluationRule.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleAction.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleActionType.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleEventType.java","src/main/java/com/azure/ai/projects/models/EvaluationRuleFilter.java","src/main/java/com/azure/ai/projects/models/EvaluationRunClusterInsightRequest.java","src/main/java/com/azure/ai/projects/models/EvaluationRunClusterInsightResult.java","src/main/java/com/azure/ai/projects/models/EvaluationRunResultCompareItem.java","src/main/java/com/azure/ai/projects/models/EvaluationRunResultComparison.java","src/main/java/com/azure/ai/projects/models/EvaluationRunResultSummary.java","src/main/java/com/azure/ai/projects/models/EvaluationScheduleTask.java","src/main/java/com/azure/ai/projects/models/EvaluationTaxonomy.java","src/main/java/com/azure/ai/projects/models/EvaluationTaxonomyInput.java","src/main/java/com/azure/ai/projects/models/EvaluationTaxonomyInputType.java","src/main/java/com/azure/ai/projects/models/EvaluatorCategory.java","src/main/java/com/azure/ai/projects/models/EvaluatorCredentialInput.java","src/main/java/com/azure/ai/projects/models/EvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/EvaluatorDefinitionType.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationArtifacts.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationInputs.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationJob.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationJobSourceType.java","src/main/java/com/azure/ai/projects/models/EvaluatorGenerationTokenUsage.java","src/main/java/com/azure/ai/projects/models/EvaluatorMetric.java","src/main/java/com/azure/ai/projects/models/EvaluatorMetricDirection.java","src/main/java/com/azure/ai/projects/models/EvaluatorMetricType.java","src/main/java/com/azure/ai/projects/models/EvaluatorType.java","src/main/java/com/azure/ai/projects/models/EvaluatorVersion.java","src/main/java/com/azure/ai/projects/models/FieldMapping.java","src/main/java/com/azure/ai/projects/models/FileDataGenerationJobOutput.java","src/main/java/com/azure/ai/projects/models/FileDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/FileDatasetVersion.java","src/main/java/com/azure/ai/projects/models/FolderDatasetVersion.java","src/main/java/com/azure/ai/projects/models/FoundryModelArtifactProfileCategory.java","src/main/java/com/azure/ai/projects/models/FoundryModelArtifactProfileSignal.java","src/main/java/com/azure/ai/projects/models/FoundryModelSourceType.java","src/main/java/com/azure/ai/projects/models/FoundryModelWarning.java","src/main/java/com/azure/ai/projects/models/FoundryModelWarningCode.java","src/main/java/com/azure/ai/projects/models/FoundryModelWeightType.java","src/main/java/com/azure/ai/projects/models/GenerationWarningType.java","src/main/java/com/azure/ai/projects/models/GitHubIssueEvent.java","src/main/java/com/azure/ai/projects/models/GitHubIssueRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/GraderAzureAIEvaluator.java","src/main/java/com/azure/ai/projects/models/HourlyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/HumanEvaluationPreviewRuleAction.java","src/main/java/com/azure/ai/projects/models/IndexType.java","src/main/java/com/azure/ai/projects/models/Insight.java","src/main/java/com/azure/ai/projects/models/InsightCluster.java","src/main/java/com/azure/ai/projects/models/InsightModelConfiguration.java","src/main/java/com/azure/ai/projects/models/InsightRequest.java","src/main/java/com/azure/ai/projects/models/InsightResult.java","src/main/java/com/azure/ai/projects/models/InsightSample.java","src/main/java/com/azure/ai/projects/models/InsightScheduleTask.java","src/main/java/com/azure/ai/projects/models/InsightSummary.java","src/main/java/com/azure/ai/projects/models/InsightType.java","src/main/java/com/azure/ai/projects/models/InsightsMetadata.java","src/main/java/com/azure/ai/projects/models/InvokeAgentInvocationsApiDispatchPayload.java","src/main/java/com/azure/ai/projects/models/InvokeAgentInvocationsApiRoutineAction.java","src/main/java/com/azure/ai/projects/models/InvokeAgentResponsesApiDispatchPayload.java","src/main/java/com/azure/ai/projects/models/InvokeAgentResponsesApiRoutineAction.java","src/main/java/com/azure/ai/projects/models/JobStatus.java","src/main/java/com/azure/ai/projects/models/ListVersionsRequestType.java","src/main/java/com/azure/ai/projects/models/LoraConfig.java","src/main/java/com/azure/ai/projects/models/ManagedAzureAISearchIndex.java","src/main/java/com/azure/ai/projects/models/ModelCredentialInput.java","src/main/java/com/azure/ai/projects/models/ModelDeployment.java","src/main/java/com/azure/ai/projects/models/ModelDeploymentSku.java","src/main/java/com/azure/ai/projects/models/ModelPendingUploadInput.java","src/main/java/com/azure/ai/projects/models/ModelPendingUploadResult.java","src/main/java/com/azure/ai/projects/models/ModelSamplingParams.java","src/main/java/com/azure/ai/projects/models/ModelSourceData.java","src/main/java/com/azure/ai/projects/models/ModelVersion.java","src/main/java/com/azure/ai/projects/models/MonthlyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/NoAuthenticationCredential.java","src/main/java/com/azure/ai/projects/models/OneTimeTrigger.java","src/main/java/com/azure/ai/projects/models/OperationStatus.java","src/main/java/com/azure/ai/projects/models/PendingUploadRequest.java","src/main/java/com/azure/ai/projects/models/PendingUploadResponse.java","src/main/java/com/azure/ai/projects/models/PendingUploadType.java","src/main/java/com/azure/ai/projects/models/PromptBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/PromptDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/PromptEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/RecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/RecurrenceTrigger.java","src/main/java/com/azure/ai/projects/models/RecurrenceType.java","src/main/java/com/azure/ai/projects/models/RedTeam.java","src/main/java/com/azure/ai/projects/models/RiskCategory.java","src/main/java/com/azure/ai/projects/models/Routine.java","src/main/java/com/azure/ai/projects/models/RoutineAction.java","src/main/java/com/azure/ai/projects/models/RoutineActionType.java","src/main/java/com/azure/ai/projects/models/RoutineAttemptSource.java","src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java","src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java","src/main/java/com/azure/ai/projects/models/RoutineDispatchPayload.java","src/main/java/com/azure/ai/projects/models/RoutineDispatchPayloadType.java","src/main/java/com/azure/ai/projects/models/RoutineRun.java","src/main/java/com/azure/ai/projects/models/RoutineRunPhase.java","src/main/java/com/azure/ai/projects/models/RoutineTrigger.java","src/main/java/com/azure/ai/projects/models/RoutineTriggerType.java","src/main/java/com/azure/ai/projects/models/RubricBasedEvaluatorDefinition.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarning.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarningCode.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarningSeverity.java","src/main/java/com/azure/ai/projects/models/RubricGenerationInputQualityWarningSource.java","src/main/java/com/azure/ai/projects/models/SampleType.java","src/main/java/com/azure/ai/projects/models/SasCredential.java","src/main/java/com/azure/ai/projects/models/Schedule.java","src/main/java/com/azure/ai/projects/models/ScheduleProvisioningStatus.java","src/main/java/com/azure/ai/projects/models/ScheduleRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/ScheduleRun.java","src/main/java/com/azure/ai/projects/models/ScheduleTask.java","src/main/java/com/azure/ai/projects/models/ScheduleTaskType.java","src/main/java/com/azure/ai/projects/models/SimpleQnADataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/SimpleQnAFineTuningQuestionType.java","src/main/java/com/azure/ai/projects/models/SimulationSeedDataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/SkillDetails.java","src/main/java/com/azure/ai/projects/models/SkillFileDetails.java","src/main/java/com/azure/ai/projects/models/SkillInlineContent.java","src/main/java/com/azure/ai/projects/models/SkillVersion.java","src/main/java/com/azure/ai/projects/models/Target.java","src/main/java/com/azure/ai/projects/models/TargetConfig.java","src/main/java/com/azure/ai/projects/models/TaxonomyCategory.java","src/main/java/com/azure/ai/projects/models/TaxonomySubCategory.java","src/main/java/com/azure/ai/projects/models/TestingCriterionAzureAIEvaluator.java","src/main/java/com/azure/ai/projects/models/TimerRoutineTrigger.java","src/main/java/com/azure/ai/projects/models/ToolDescription.java","src/main/java/com/azure/ai/projects/models/ToolUseFineTuningDataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/TracesDataGenerationJobOptions.java","src/main/java/com/azure/ai/projects/models/TracesDataGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/TracesEvaluatorGenerationJobSource.java","src/main/java/com/azure/ai/projects/models/TreatmentEffectType.java","src/main/java/com/azure/ai/projects/models/Trigger.java","src/main/java/com/azure/ai/projects/models/TriggerType.java","src/main/java/com/azure/ai/projects/models/UpdateModelVersionInput.java","src/main/java/com/azure/ai/projects/models/WeeklyRecurrenceSchedule.java","src/main/java/com/azure/ai/projects/models/package-info.java","src/main/java/com/azure/ai/projects/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesAsyncSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesAsyncSample.java index 20cd4af98379..52afb054edbd 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesAsyncSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesAsyncSample.java @@ -5,6 +5,8 @@ import com.azure.ai.projects.models.CustomRoutineTrigger; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -41,6 +43,8 @@ public static void main(String[] args) { .buildBetaRoutinesAsyncClient(); RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); CustomRoutineTrigger trigger = new CustomRoutineTrigger("sample-provider", Collections.singletonMap("source", BinaryData.fromString("\"sample_routines_crud\""))) .setEventName("sample-event"); @@ -51,7 +55,7 @@ public static void main(String[] args) { routinesAsyncClient.deleteRoutine(ROUTINE_NAME) .onErrorResume(ignored -> Mono.empty()) .then(routinesAsyncClient.createOrUpdateRoutine(ROUTINE_NAME, - "Routine created by the azure-ai-projects sample.", true, triggers, action)) + "Routine created by the azure-ai-projects sample.", true, triggers, action, authorization)) .flatMap(created -> { System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); return routinesAsyncClient.disableRoutine(ROUTINE_NAME) diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchAsyncSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchAsyncSample.java index 09580489d691..55019616aaeb 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchAsyncSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchAsyncSample.java @@ -5,6 +5,8 @@ import com.azure.ai.projects.models.InvokeAgentResponsesApiDispatchPayload; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.ai.projects.models.TimerRoutineTrigger; import com.azure.core.util.BinaryData; @@ -44,6 +46,8 @@ public static void main(String[] args) { .buildBetaRoutinesAsyncClient(); RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); TimerRoutineTrigger trigger = new TimerRoutineTrigger() .setAt(OffsetDateTime.now(ZoneOffset.UTC).plusHours(1)); Map triggers = new HashMap<>(); @@ -52,7 +56,7 @@ public static void main(String[] args) { Mono workflow = routinesAsyncClient.deleteRoutine(ROUTINE_NAME) .onErrorResume(ignored -> Mono.empty()) .then(routinesAsyncClient.createOrUpdateRoutine(ROUTINE_NAME, - "Timer routine dispatched before its scheduled fire time.", true, triggers, action)) + "Timer routine dispatched before its scheduled fire time.", true, triggers, action, authorization)) .flatMap(created -> { System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); return routinesAsyncClient.dispatchRoutine(created.getName(), diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchSample.java index c8bf9a3b1784..2b649790de02 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesManualDispatchSample.java @@ -7,6 +7,8 @@ import com.azure.ai.projects.models.InvokeAgentResponsesApiDispatchPayload; import com.azure.ai.projects.models.Routine; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineRun; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.ai.projects.models.TimerRoutineTrigger; @@ -55,13 +57,15 @@ public static void main(String[] args) { Routine created = null; try { RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); TimerRoutineTrigger trigger = new TimerRoutineTrigger() .setAt(OffsetDateTime.now(ZoneOffset.UTC).plusHours(1)); Map triggers = new HashMap<>(); triggers.put("once", trigger); created = routinesClient.createOrUpdateRoutine(ROUTINE_NAME, - "Timer routine dispatched before its scheduled fire time.", true, triggers, action); + "Timer routine dispatched before its scheduled fire time.", true, triggers, action, authorization); System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); // BEGIN:com.azure.ai.projects.RoutinesManualDispatchSample.dispatch diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesSample.java index 541a81cb2a7a..debcfc217a58 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesSample.java @@ -6,6 +6,8 @@ import com.azure.ai.projects.models.CustomRoutineTrigger; import com.azure.ai.projects.models.Routine; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; @@ -50,6 +52,8 @@ public static void main(String[] args) { try { // BEGIN:com.azure.ai.projects.RoutinesSample.createRoutine RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); CustomRoutineTrigger trigger = new CustomRoutineTrigger("sample-provider", Collections.singletonMap("source", BinaryData.fromString("\"sample_routines_crud\""))) @@ -58,7 +62,7 @@ public static void main(String[] args) { triggers.put("manual", trigger); Routine created = routinesClient.createOrUpdateRoutine(ROUTINE_NAME, - "Routine created by the azure-ai-projects sample.", true, triggers, action); + "Routine created by the azure-ai-projects sample.", true, triggers, action, authorization); System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); // END:com.azure.ai.projects.RoutinesSample.createRoutine diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerAsyncSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerAsyncSample.java index b1fffcabd43a..2cef9d2a1e0e 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerAsyncSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerAsyncSample.java @@ -4,6 +4,8 @@ package com.azure.ai.projects; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.ai.projects.models.ScheduleRoutineTrigger; import com.azure.core.util.Configuration; @@ -41,6 +43,8 @@ public static void main(String[] args) { .buildBetaRoutinesAsyncClient(); RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); ScheduleRoutineTrigger trigger = new ScheduleRoutineTrigger("*/5 * * * *", "UTC"); Map triggers = new HashMap<>(); triggers.put("every_five_minutes", trigger); @@ -48,7 +52,7 @@ public static void main(String[] args) { routinesAsyncClient.deleteRoutine(ROUTINE_NAME) .onErrorResume(ignored -> Mono.empty()) .then(routinesAsyncClient.createOrUpdateRoutine(ROUTINE_NAME, - "Routine used by the schedule-trigger sample.", true, triggers, action)) + "Routine used by the schedule-trigger sample.", true, triggers, action, authorization)) .flatMap(created -> { System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); System.out.printf("cron expression: %s; time zone: %s%n", diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerSample.java index 6a6c5d942fec..f2f493131137 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesScheduleTriggerSample.java @@ -4,6 +4,8 @@ package com.azure.ai.projects; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineRun; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.ai.projects.models.ScheduleRoutineTrigger; @@ -50,13 +52,15 @@ public static void main(String[] args) { try { // BEGIN:com.azure.ai.projects.RoutinesScheduleTriggerSample.createRoutine RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); ScheduleRoutineTrigger trigger = new ScheduleRoutineTrigger("*/5 * * * *", "UTC"); Map triggers = new HashMap<>(); triggers.put("every_five_minutes", trigger); com.azure.ai.projects.models.Routine created = routinesClient.createOrUpdateRoutine(ROUTINE_NAME, - "Routine used by the schedule-trigger sample.", true, triggers, action); + "Routine used by the schedule-trigger sample.", true, triggers, action, authorization); System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); System.out.printf("cron expression: %s; time zone: %s%n", trigger.getCronExpression(), trigger.getTimeZone()); diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerAsyncSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerAsyncSample.java index 936ee51ae402..0bcb114534ed 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerAsyncSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerAsyncSample.java @@ -4,6 +4,8 @@ package com.azure.ai.projects; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.ai.projects.models.TimerRoutineTrigger; import com.azure.core.util.Configuration; @@ -44,6 +46,8 @@ public static void main(String[] args) { .buildBetaRoutinesAsyncClient(); RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); OffsetDateTime fireAt = OffsetDateTime.now(ZoneOffset.UTC).plusSeconds(20); TimerRoutineTrigger trigger = new TimerRoutineTrigger().setAt(fireAt); Map triggers = new HashMap<>(); @@ -52,7 +56,7 @@ public static void main(String[] args) { routinesAsyncClient.deleteRoutine(ROUTINE_NAME) .onErrorResume(ignored -> Mono.empty()) .then(routinesAsyncClient.createOrUpdateRoutine(ROUTINE_NAME, - "Routine used by the timer-trigger sample.", true, triggers, action)) + "Routine used by the timer-trigger sample.", true, triggers, action, authorization)) .flatMap(created -> { System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); System.out.printf("Fire at: %s%n", trigger.getAt()); diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerSample.java index 6e264a12a2a4..778b1c5edf33 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/RoutinesTimerTriggerSample.java @@ -5,6 +5,8 @@ import com.azure.ai.projects.models.Routine; import com.azure.ai.projects.models.RoutineAction; +import com.azure.ai.projects.models.RoutineAuthorization; +import com.azure.ai.projects.models.RoutineDispatchIdentity; import com.azure.ai.projects.models.RoutineRun; import com.azure.ai.projects.models.RoutineTrigger; import com.azure.ai.projects.models.TimerRoutineTrigger; @@ -54,6 +56,8 @@ public static void main(String[] args) { try { // BEGIN:com.azure.ai.projects.RoutinesTimerTriggerSample.createRoutine RoutineAction action = RoutinesSampleUtils.agentAction(agentName); + RoutineAuthorization authorization + = new RoutineAuthorization().setIdentity(RoutineDispatchIdentity.AGENT); OffsetDateTime fireAt = OffsetDateTime.now(ZoneOffset.UTC).plusSeconds(20); TimerRoutineTrigger trigger = new TimerRoutineTrigger().setAt(fireAt); @@ -61,7 +65,7 @@ public static void main(String[] args) { triggers.put("once", trigger); Routine created = routinesClient.createOrUpdateRoutine(ROUTINE_NAME, - "Routine used by the timer-trigger sample.", true, triggers, action); + "Routine used by the timer-trigger sample.", true, triggers, action, authorization); System.out.printf("Created routine: %s enabled=%s%n", created.getName(), created.isEnabled()); System.out.printf("Fire at: %s%n", trigger.getAt()); // END:com.azure.ai.projects.RoutinesTimerTriggerSample.createRoutine From 32af62d5c7e4465cecb7794291fe1c362bfdbc3c Mon Sep 17 00:00:00 2001 From: Mike Guo Date: Tue, 1 Sep 2026 21:08:26 +0800 Subject: [PATCH 2/3] Update Azure AI Agents and Projects clients Co-Authored-By: Claude --- .../src/main/java/AgentsCustomizations.java | 77 ++++++ .../azure/ai/agents/AgentsAsyncClient.java | 37 ++- .../com/azure/ai/agents/AgentsClient.java | 9 +- .../BetaVoiceAgentWebSocketAsyncClient.java | 46 ++-- .../agents/BetaVoiceAgentWebSocketClient.java | 46 ++-- .../models/ApproximateLocation.java | 46 ++-- .../agents/models/ConversationResource.java | 158 ----------- .../com/azure/ai/agents/models/Metadata.java | 113 -------- .../ai/agents/models/RealtimeMCPError.java | 2 +- ...TPError.java => RealtimeMCPHttpError.java} | 20 +- .../models/WebSearchApproximateLocation.java | 46 ++-- .../agents/models/WebSearchPreviewTool.java | 107 ++++---- .../azure/ai/agents/models/WebSearchTool.java | 231 ++++++++-------- .../agents/models/WebSearchToolboxTool.java | 63 +++-- .../src/main/java/module-info.java | 7 +- .../META-INF/azure-ai-agents_metadata.json | 2 +- .../src/main/java/ProjectsCustomizations.java | 61 ++++- .../ai/projects/BetaRoutinesAsyncClient.java | 252 ++++++++++-------- .../azure/ai/projects/BetaRoutinesClient.java | 230 ++++++++-------- .../ai/projects/models/AgentInsight.java | 4 +- .../projects/models/AgentInsightDetails.java | 3 +- .../models/AgentInsightEstimatedCost.java | 3 +- .../models/AgentInsightHighlightedTrace.java | 4 +- .../models/AgentInsightLinkedTrace.java | 4 +- .../projects/models/AgentInsightMonitor.java | 4 +- .../models/AgentInsightMonitorCreate.java | 4 +- .../models/AgentInsightMonitorListItem.java | 4 +- .../models/AgentInsightMonitorUpdate.java | 5 +- .../models/AgentInsightOverviewSource.java | 2 +- .../models/AgentInsightPromptSurface.java | 2 +- .../models/AgentInsightProposedFix.java | 4 +- .../models/AgentInsightProposedFixChange.java | 4 +- .../models/AgentInsightProposedFixKind.java | 2 +- .../models/AgentInsightRecommendedAction.java | 3 +- .../ai/projects/models/AgentInsightRun.java | 4 +- .../models/AgentInsightRunCreate.java | 4 +- .../models/AgentInsightRunResult.java | 3 +- .../models/AgentInsightRunTrigger.java | 2 +- .../projects/models/AgentInsightSeverity.java | 2 +- .../projects/models/AgentInsightStatus.java | 2 +- .../models/AgentInsightSuspension.java | 4 +- .../models/AgentInsightTokenUsage.java | 4 +- .../projects/models/AgentInsightUpdate.java | 5 +- .../models/AgentInsightsOverview.java | 3 +- .../models/AgentInsightsOverviewOverride.java | 5 +- .../projects/models/RoutineAuthorization.java | 4 +- .../models/RoutineDispatchIdentity.java | 2 +- .../azure/ai/projects/AgentsAsyncSample.java | 3 +- .../com/azure/ai/projects/AgentsSample.java | 3 +- 49 files changed, 759 insertions(+), 896 deletions(-) rename sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/{implementation => }/models/ApproximateLocation.java (87%) delete mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ConversationResource.java delete mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java rename sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/{RealtimeMCPHTTPError.java => RealtimeMCPHttpError.java} (83%) rename sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/{implementation => }/models/WebSearchApproximateLocation.java (88%) diff --git a/sdk/ai/azure-ai-agents/customizations/src/main/java/AgentsCustomizations.java b/sdk/ai/azure-ai-agents/customizations/src/main/java/AgentsCustomizations.java index 9fec7f9c6c56..e9363a17cfb3 100644 --- a/sdk/ai/azure-ai-agents/customizations/src/main/java/AgentsCustomizations.java +++ b/sdk/ai/azure-ai-agents/customizations/src/main/java/AgentsCustomizations.java @@ -2,12 +2,15 @@ import com.azure.autorest.customization.Customization; import com.azure.autorest.customization.LibraryCustomization; import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.FieldDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.body.TypeDeclaration; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.NormalAnnotationExpr; import com.github.javaparser.ast.expr.StringLiteralExpr; +import com.github.javaparser.ast.modules.ModuleDeclaration; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.charset.StandardCharsets; @@ -26,12 +29,28 @@ public class AgentsCustomizations extends Customization { @Override public void customize(LibraryCustomization libraryCustomization, Logger logger) { + customizeModuleInfo(libraryCustomization); renameImageGenToolSize(libraryCustomization, logger); modifyPollingStrategies(libraryCustomization, logger); + customizeTimeZoneModels(libraryCustomization); annotateBetaClients(libraryCustomization, logger); annotateBetaFields(libraryCustomization, loadBetaAnnotations(logger), logger); } + private void customizeModuleInfo(LibraryCustomization customization) { + String fileName = "src/main/java/module-info.java"; + CompilationUnit moduleInfo = StaticJavaParser.parse(customization.getRawEditor().getFileContent(fileName)); + ModuleDeclaration module = moduleInfo.getModule() + .orElseThrow(() -> new IllegalStateException("Generated module-info.java has no module")); + for (String requiredModule : new String[] { "openai.java.core", "openai.java.client.okhttp" }) { + String directive = "requires " + requiredModule + ";"; + if (module.getDirectives().stream().noneMatch(existing -> directive.equals(existing.toString().trim()))) { + module.addDirective(directive); + } + } + customization.getRawEditor().replaceFile(fileName, moduleInfo.toString()); + } + private void renameImageGenToolSize(LibraryCustomization customization, Logger logger) { customization.getClass("com.azure.ai.agents.models", "ImageGenToolSize").customizeAst(ast -> ast.getEnumByName("ImageGenToolSize") .ifPresent(clazz -> clazz.getEntries().stream() @@ -59,6 +78,64 @@ private void modifyPollingStrategies(LibraryCustomization customization, Logger .ifPresent(clazz -> clazz.addMember(StaticJavaParser.parseMethodDeclaration("@Override public PollResponse poll(PollingContext pollingContext, TypeReference pollResponseType) { return AgentsServicePollUtils.remapStatus(super.poll(pollingContext, pollResponseType)); }")))); } + private void customizeTimeZoneModels(LibraryCustomization customization) { + for (String className : new String[] { "ApproximateLocation", "WebSearchApproximateLocation" }) { + customization.getClass("com.azure.ai.agents.models", className) + .customizeAst(ast -> customizeTimeZoneModel(ast.getClassByName(className) + .orElseThrow(() -> new IllegalStateException("Generated model " + className + " was not found.")))); + } + } + + private static void customizeTimeZoneModel(ClassOrInterfaceDeclaration model) { + MethodDeclaration toJson = getSingleMethod(model, "toJson"); + String toJsonBody = toJson.getBody() + .orElseThrow(() -> new IllegalStateException(model.getNameAsString() + ".toJson has no body.")) + .toString(); + String generatedWriter = "jsonWriter.writeJsonField(\"timezone\", this.timezone);"; + String timeZoneWriter + = "jsonWriter.writeStringField(\"timezone\", this.timezone != null ? this.timezone.getID() : null);"; + if (!toJsonBody.contains(timeZoneWriter)) { + if (!toJsonBody.contains(generatedWriter)) { + throw new IllegalStateException( + model.getNameAsString() + ".toJson no longer uses the expected generated timezone writer."); + } + toJson.setBody(StaticJavaParser.parseBlock(toJsonBody.replace(generatedWriter, timeZoneWriter))); + } + + MethodDeclaration fromJson = getSingleMethod(model, "fromJson"); + String fromJsonBody = fromJson.getBody() + .orElseThrow(() -> new IllegalStateException(model.getNameAsString() + ".fromJson has no body.")) + .toString(); + if (!fromJsonBody.contains("parseTimeZone(")) { + String generatedParser = "TimeZone.fromJson(reader)"; + if (!fromJsonBody.contains(generatedParser)) { + throw new IllegalStateException( + model.getNameAsString() + ".fromJson no longer uses the expected generated timezone parser."); + } + fromJson.setBody(StaticJavaParser.parseBlock( + fromJsonBody.replace(generatedParser, "parseTimeZone(reader.getString())"))); + } + + if (model.getMethodsByName("parseTimeZone").isEmpty()) { + model.addMember(StaticJavaParser.parseMethodDeclaration( + "private static TimeZone parseTimeZone(String timezoneId) {" + + " if (timezoneId == null) { return null; }" + + " TimeZone timezone = TimeZone.getTimeZone(timezoneId);" + + " if (\"GMT\".equals(timezone.getID()) && !\"GMT\".equalsIgnoreCase(timezoneId)) { return null; }" + + " return timezone;" + + " }")); + } + } + + private static MethodDeclaration getSingleMethod(ClassOrInterfaceDeclaration model, String methodName) { + List methods = model.getMethodsByName(methodName); + if (methods.size() != 1) { + throw new IllegalStateException( + "Expected one " + model.getNameAsString() + "." + methodName + " method, found " + methods.size() + "."); + } + return methods.get(0); + } + private void annotateBetaClients(LibraryCustomization customization, Logger logger) { customization.getPackage("com.azure.ai.agents") .listClasses() diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java index 5fad1d7c8834..772ccf2f379e 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsAsyncClient.java @@ -26,7 +26,6 @@ import com.azure.ai.agents.models.AgentSessionResource; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeFileDetails; -import com.azure.ai.agents.models.ConversationResource; import com.azure.ai.agents.models.CreateAgentVersionFromCodeContent; import com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata; import com.azure.ai.agents.models.CreateAgentVersionInput; @@ -1813,7 +1812,7 @@ public PagedFlux listAgentConversations(RequestOptions requestOption */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listAgentConversations() { + public PagedFlux listAgentConversations() { // Generated convenience method for listAgentConversations RequestOptions requestOptions = new RequestOptions(); PagedFlux pagedFluxResponse = listAgentConversations(requestOptions); @@ -1821,14 +1820,13 @@ public PagedFlux listAgentConversations() { Flux> flux = (continuationTokenParam == null) ? pagedFluxResponse.byPage().take(1) : pagedFluxResponse.byPage(continuationTokenParam).take(1); - return flux - .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), - pagedResponse.getStatusCode(), pagedResponse.getHeaders(), - pagedResponse.getValue() - .stream() - .map(protocolMethodData -> protocolMethodData.toObject(ConversationResource.class)) - .collect(Collectors.toList()), - pagedResponse.getContinuationToken(), null)); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(Conversation.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); }); } @@ -2090,8 +2088,8 @@ public Mono createAgentVersion(String agentName, */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listAgentConversations(Integer limit, PageOrder order, String after, - String before, String agentName, String agentId, String userIdentity) { + public PagedFlux listAgentConversations(Integer limit, PageOrder order, String after, String before, + String agentName, String agentId, String userIdentity) { // Generated convenience method for listAgentConversations RequestOptions requestOptions = new RequestOptions(); if (limit != null) { @@ -2120,14 +2118,13 @@ public PagedFlux listAgentConversations(Integer limit, Pag Flux> flux = (continuationTokenParam == null) ? pagedFluxResponse.byPage().take(1) : pagedFluxResponse.byPage(continuationTokenParam).take(1); - return flux - .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), - pagedResponse.getStatusCode(), pagedResponse.getHeaders(), - pagedResponse.getValue() - .stream() - .map(protocolMethodData -> protocolMethodData.toObject(ConversationResource.class)) - .collect(Collectors.toList()), - pagedResponse.getContinuationToken(), null)); + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(Conversation.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); }); } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java index df1e8bab09f8..e3ef636c200e 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java @@ -26,7 +26,6 @@ import com.azure.ai.agents.models.AgentSessionResource; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeFileDetails; -import com.azure.ai.agents.models.ConversationResource; import com.azure.ai.agents.models.CreateAgentVersionFromCodeContent; import com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata; import com.azure.ai.agents.models.CreateAgentVersionInput; @@ -1760,11 +1759,11 @@ public PagedIterable listAgentConversations(RequestOptions requestOp */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listAgentConversations() { + public PagedIterable listAgentConversations() { // Generated convenience method for listAgentConversations RequestOptions requestOptions = new RequestOptions(); return serviceClient.listAgentConversations(requestOptions) - .mapPage(bodyItemValue -> bodyItemValue.toObject(ConversationResource.class)); + .mapPage(bodyItemValue -> bodyItemValue.toObject(Conversation.class)); } /** @@ -2018,7 +2017,7 @@ public AgentVersionDetails createAgentVersion(String agentName, CreateAgentVersi */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listAgentConversations(Integer limit, PageOrder order, String after, + public PagedIterable listAgentConversations(Integer limit, PageOrder order, String after, String before, String agentName, String agentId, String userIdentity) { // Generated convenience method for listAgentConversations RequestOptions requestOptions = new RequestOptions(); @@ -2044,7 +2043,7 @@ public PagedIterable listAgentConversations(Integer limit, requestOptions.setHeader(HttpHeaderName.fromString("x-ms-user-identity"), userIdentity); } return serviceClient.listAgentConversations(requestOptions) - .mapPage(bodyItemValue -> bodyItemValue.toObject(ConversationResource.class)); + .mapPage(bodyItemValue -> bodyItemValue.toObject(Conversation.class)); } /** diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java index af6c1c0e352b..478571e0e16d 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java @@ -4,7 +4,6 @@ package com.azure.ai.agents; import com.azure.ai.agents.implementation.BetaVoiceAgentWebSocketsImpl; -import com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys; import com.azure.ai.agents.implementation.utils.Beta; import com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol; import com.azure.core.annotation.Generated; @@ -112,16 +111,6 @@ public Mono> connectVoiceAgentWithResponse(String agentName, Requ * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. * * @param agentName The name of the voice agent. - * @param foundryFeaturesQuery A query alternative to the `Foundry-Features` header for clients that cannot set - * headers during a - * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is - * required. - * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service - * honors the - * persisted voice agent definition's configured `store` value. If supplied, this value overrides the - * definition's `store` setting for this session only. - * @param agentVersionOverride Selects a specific version of the voice agent for this session. - * @param websocketSubprotocol The requested WebSocket subprotocol. Omit this header or request exactly `realtime`. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -132,23 +121,9 @@ public Mono> connectVoiceAgentWithResponse(String agentName, Requ */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono connectVoiceAgent(String agentName, AgentDefinitionOptInKeys foundryFeaturesQuery, Boolean store, - String agentVersionOverride, VoiceAgentWebSocketSubprotocol websocketSubprotocol) { + public Mono connectVoiceAgent(String agentName) { // Generated convenience method for connectVoiceAgentWithResponse RequestOptions requestOptions = new RequestOptions(); - if (foundryFeaturesQuery != null) { - requestOptions.addQueryParam("foundry_features", foundryFeaturesQuery.toString(), false); - } - if (store != null) { - requestOptions.addQueryParam("store", String.valueOf(store), false); - } - if (agentVersionOverride != null) { - requestOptions.addQueryParam("x-agent-version-override", agentVersionOverride, false); - } - if (websocketSubprotocol != null) { - requestOptions.setHeader(HttpHeaderName.fromString("Sec-WebSocket-Protocol"), - websocketSubprotocol.toString()); - } return connectVoiceAgentWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono); } @@ -165,6 +140,12 @@ public Mono connectVoiceAgent(String agentName, AgentDefinitionOptInKeys f * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. * * @param agentName The name of the voice agent. + * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service + * honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only. + * @param agentVersionOverride Selects a specific version of the voice agent for this session. + * @param websocketSubprotocol The requested WebSocket subprotocol. Omit this header or request exactly `realtime`. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -175,9 +156,20 @@ public Mono connectVoiceAgent(String agentName, AgentDefinitionOptInKeys f */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono connectVoiceAgent(String agentName) { + public Mono connectVoiceAgent(String agentName, Boolean store, String agentVersionOverride, + VoiceAgentWebSocketSubprotocol websocketSubprotocol) { // Generated convenience method for connectVoiceAgentWithResponse RequestOptions requestOptions = new RequestOptions(); + if (store != null) { + requestOptions.addQueryParam("store", String.valueOf(store), false); + } + if (agentVersionOverride != null) { + requestOptions.addQueryParam("x-agent-version-override", agentVersionOverride, false); + } + if (websocketSubprotocol != null) { + requestOptions.setHeader(HttpHeaderName.fromString("Sec-WebSocket-Protocol"), + websocketSubprotocol.toString()); + } return connectVoiceAgentWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono); } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java index 1737985bf8fd..05059faa2829 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java @@ -4,7 +4,6 @@ package com.azure.ai.agents; import com.azure.ai.agents.implementation.BetaVoiceAgentWebSocketsImpl; -import com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys; import com.azure.ai.agents.implementation.utils.Beta; import com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol; import com.azure.core.annotation.Generated; @@ -110,16 +109,6 @@ public Response connectVoiceAgentWithResponse(String agentName, RequestOpt * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. * * @param agentName The name of the voice agent. - * @param foundryFeaturesQuery A query alternative to the `Foundry-Features` header for clients that cannot set - * headers during a - * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is - * required. - * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service - * honors the - * persisted voice agent definition's configured `store` value. If supplied, this value overrides the - * definition's `store` setting for this session only. - * @param agentVersionOverride Selects a specific version of the voice agent for this session. - * @param websocketSubprotocol The requested WebSocket subprotocol. Omit this header or request exactly `realtime`. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -129,23 +118,9 @@ public Response connectVoiceAgentWithResponse(String agentName, RequestOpt */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void connectVoiceAgent(String agentName, AgentDefinitionOptInKeys foundryFeaturesQuery, Boolean store, - String agentVersionOverride, VoiceAgentWebSocketSubprotocol websocketSubprotocol) { + public void connectVoiceAgent(String agentName) { // Generated convenience method for connectVoiceAgentWithResponse RequestOptions requestOptions = new RequestOptions(); - if (foundryFeaturesQuery != null) { - requestOptions.addQueryParam("foundry_features", foundryFeaturesQuery.toString(), false); - } - if (store != null) { - requestOptions.addQueryParam("store", String.valueOf(store), false); - } - if (agentVersionOverride != null) { - requestOptions.addQueryParam("x-agent-version-override", agentVersionOverride, false); - } - if (websocketSubprotocol != null) { - requestOptions.setHeader(HttpHeaderName.fromString("Sec-WebSocket-Protocol"), - websocketSubprotocol.toString()); - } connectVoiceAgentWithResponse(agentName, requestOptions).getValue(); } @@ -162,6 +137,12 @@ public void connectVoiceAgent(String agentName, AgentDefinitionOptInKeys foundry * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. * * @param agentName The name of the voice agent. + * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service + * honors the + * persisted voice agent definition's configured `store` value. If supplied, this value overrides the + * definition's `store` setting for this session only. + * @param agentVersionOverride Selects a specific version of the voice agent for this session. + * @param websocketSubprotocol The requested WebSocket subprotocol. Omit this header or request exactly `realtime`. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -171,9 +152,20 @@ public void connectVoiceAgent(String agentName, AgentDefinitionOptInKeys foundry */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public void connectVoiceAgent(String agentName) { + public void connectVoiceAgent(String agentName, Boolean store, String agentVersionOverride, + VoiceAgentWebSocketSubprotocol websocketSubprotocol) { // Generated convenience method for connectVoiceAgentWithResponse RequestOptions requestOptions = new RequestOptions(); + if (store != null) { + requestOptions.addQueryParam("store", String.valueOf(store), false); + } + if (agentVersionOverride != null) { + requestOptions.addQueryParam("x-agent-version-override", agentVersionOverride, false); + } + if (websocketSubprotocol != null) { + requestOptions.setHeader(HttpHeaderName.fromString("Sec-WebSocket-Protocol"), + websocketSubprotocol.toString()); + } connectVoiceAgentWithResponse(agentName, requestOptions).getValue(); } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ApproximateLocation.java similarity index 87% rename from sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java rename to sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ApproximateLocation.java index 601c88946e7c..bb66dd8c0bd2 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ApproximateLocation.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. -package com.azure.ai.agents.implementation.models; +package com.azure.ai.agents.models; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; @@ -10,6 +10,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.util.TimeZone; /** * The ApproximateLocation model. @@ -45,7 +46,7 @@ public final class ApproximateLocation implements JsonSerializable { - - /* - * The unique ID of the conversation. - */ - @Generated - private final String id; - - /* - * The object type, which is always `conversation`. - */ - @Generated - private final String object = "conversation"; - - /* - * Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional - * information about the object in a structured format, and querying for objects via API or the dashboard. - * Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 - * characters. - */ - @Generated - private final Metadata metadata; - - /* - * The time at which the conversation was created, measured in seconds since the Unix epoch. - */ - @Generated - private final long createdAt; - - /** - * Creates an instance of ConversationResource class. - * - * @param id the id value to set. - * @param metadata the metadata value to set. - * @param createdAt the createdAt value to set. - */ - @Generated - private ConversationResource(String id, Metadata metadata, OffsetDateTime createdAt) { - this.id = id; - this.metadata = metadata; - if (createdAt == null) { - this.createdAt = 0L; - } else { - this.createdAt = createdAt.toEpochSecond(); - } - } - - /** - * Get the id property: The unique ID of the conversation. - * - * @return the id value. - */ - @Generated - public String getId() { - return this.id; - } - - /** - * Get the object property: The object type, which is always `conversation`. - * - * @return the object value. - */ - @Generated - public String getObject() { - return this.object; - } - - /** - * Get the metadata property: Set of 16 key-value pairs that can be attached to an object. This can be useful for - * storing additional information about the object in a structured format, and querying for objects via API or the - * dashboard. - * Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 - * characters. - * - * @return the metadata value. - */ - @Generated - public Metadata getMetadata() { - return this.metadata; - } - - /** - * Get the createdAt property: The time at which the conversation was created, measured in seconds since the Unix - * epoch. - * - * @return the createdAt value. - */ - @Generated - public OffsetDateTime getCreatedAt() { - return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.createdAt), ZoneOffset.UTC); - } - - /** - * {@inheritDoc} - */ - @Generated - @Override - public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { - jsonWriter.writeStartObject(); - jsonWriter.writeStringField("id", this.id); - jsonWriter.writeStringField("object", this.object); - jsonWriter.writeJsonField("metadata", this.metadata); - jsonWriter.writeLongField("created_at", this.createdAt); - return jsonWriter.writeEndObject(); - } - - /** - * Reads an instance of ConversationResource from the JsonReader. - * - * @param jsonReader The JsonReader being read. - * @return An instance of ConversationResource if the JsonReader was pointing to an instance of it, or null if it - * was pointing to JSON null. - * @throws IllegalStateException If the deserialized JSON object was missing any required properties. - * @throws IOException If an error occurs while reading the ConversationResource. - */ - @Generated - public static ConversationResource fromJson(JsonReader jsonReader) throws IOException { - return jsonReader.readObject(reader -> { - String id = null; - Metadata metadata = null; - OffsetDateTime createdAt = null; - while (reader.nextToken() != JsonToken.END_OBJECT) { - String fieldName = reader.getFieldName(); - reader.nextToken(); - if ("id".equals(fieldName)) { - id = reader.getString(); - } else if ("metadata".equals(fieldName)) { - metadata = Metadata.fromJson(reader); - } else if ("created_at".equals(fieldName)) { - createdAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); - } else { - reader.skipChildren(); - } - } - return new ConversationResource(id, metadata, createdAt); - }); - } -} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java deleted file mode 100644 index cf3cab842075..000000000000 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Metadata.java +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// Code generated by Microsoft (R) TypeSpec Code Generator. -package com.azure.ai.agents.models; - -import com.azure.core.annotation.Fluent; -import com.azure.core.annotation.Generated; -import com.azure.json.JsonReader; -import com.azure.json.JsonSerializable; -import com.azure.json.JsonToken; -import com.azure.json.JsonWriter; -import java.io.IOException; -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * Set of 16 key-value pairs that can be attached to an object. This can be - * useful for storing additional information about the object in a structured - * format, and querying for objects via API or the dashboard. - * Keys are strings with a maximum length of 64 characters. Values are strings - * with a maximum length of 512 characters. - */ -@Fluent -public final class Metadata implements JsonSerializable { - - /* - * Set of 16 key-value pairs that can be attached to an object. This can be - * useful for storing additional information about the object in a structured - * format, and querying for objects via API or the dashboard. - * Keys are strings with a maximum length of 64 characters. Values are strings - * with a maximum length of 512 characters. - */ - @Generated - private Map additionalProperties; - - /** - * Creates an instance of Metadata class. - */ - @Generated - public Metadata() { - } - - /** - * Get the additionalProperties property: Set of 16 key-value pairs that can be attached to an object. This can be - * useful for storing additional information about the object in a structured - * format, and querying for objects via API or the dashboard. - * Keys are strings with a maximum length of 64 characters. Values are strings - * with a maximum length of 512 characters. - * - * @return the additionalProperties value. - */ - @Generated - public Map getAdditionalProperties() { - return this.additionalProperties; - } - - /** - * Set the additionalProperties property: Set of 16 key-value pairs that can be attached to an object. This can be - * useful for storing additional information about the object in a structured - * format, and querying for objects via API or the dashboard. - * Keys are strings with a maximum length of 64 characters. Values are strings - * with a maximum length of 512 characters. - * - * @param additionalProperties the additionalProperties value to set. - * @return the Metadata object itself. - */ - @Generated - public Metadata setAdditionalProperties(Map additionalProperties) { - this.additionalProperties = additionalProperties; - return this; - } - - /** - * {@inheritDoc} - */ - @Generated - @Override - public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { - jsonWriter.writeStartObject(); - if (additionalProperties != null) { - for (Map.Entry additionalProperty : additionalProperties.entrySet()) { - jsonWriter.writeUntypedField(additionalProperty.getKey(), additionalProperty.getValue()); - } - } - return jsonWriter.writeEndObject(); - } - - /** - * Reads an instance of Metadata from the JsonReader. - * - * @param jsonReader The JsonReader being read. - * @return An instance of Metadata if the JsonReader was pointing to an instance of it, or null if it was pointing - * to JSON null. - * @throws IOException If an error occurs while reading the Metadata. - */ - @Generated - public static Metadata fromJson(JsonReader jsonReader) throws IOException { - return jsonReader.readObject(reader -> { - Metadata deserializedMetadata = new Metadata(); - Map additionalProperties = null; - while (reader.nextToken() != JsonToken.END_OBJECT) { - String fieldName = reader.getFieldName(); - reader.nextToken(); - if (additionalProperties == null) { - additionalProperties = new LinkedHashMap<>(); - } - additionalProperties.put(fieldName, reader.getString()); - } - deserializedMetadata.additionalProperties = additionalProperties; - return deserializedMetadata; - }); - } -} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java index 3603d00a167f..0b4e58a5445c 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java @@ -82,7 +82,7 @@ public static RealtimeMCPError fromJson(JsonReader jsonReader) throws IOExceptio } else if ("tool_execution_error".equals(discriminatorValue)) { return RealtimeMCPToolExecutionError.fromJson(readerToUse.reset()); } else if ("http_error".equals(discriminatorValue)) { - return RealtimeMCPHTTPError.fromJson(readerToUse.reset()); + return RealtimeMCPHttpError.fromJson(readerToUse.reset()); } else { return fromJsonKnownDiscriminator(readerToUse.reset()); } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHttpError.java similarity index 83% rename from sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java rename to sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHttpError.java index c0fec1edd07e..96b74618a3f6 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RealtimeMCPHttpError.java @@ -14,7 +14,7 @@ * Realtime MCP HTTP error. */ @Immutable -public final class RealtimeMCPHTTPError extends RealtimeMCPError { +public final class RealtimeMCPHttpError extends RealtimeMCPError { /* * The type property. @@ -35,13 +35,13 @@ public final class RealtimeMCPHTTPError extends RealtimeMCPError { private final String message; /** - * Creates an instance of RealtimeMCPHTTPError class. + * Creates an instance of RealtimeMCPHttpError class. * * @param code the code value to set. * @param message the message value to set. */ @Generated - public RealtimeMCPHTTPError(long code, String message) { + public RealtimeMCPHttpError(long code, String message) { this.code = code; this.message = message; } @@ -91,16 +91,16 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { } /** - * Reads an instance of RealtimeMCPHTTPError from the JsonReader. + * Reads an instance of RealtimeMCPHttpError from the JsonReader. * * @param jsonReader The JsonReader being read. - * @return An instance of RealtimeMCPHTTPError if the JsonReader was pointing to an instance of it, or null if it + * @return An instance of RealtimeMCPHttpError if the JsonReader was pointing to an instance of it, or null if it * was pointing to JSON null. * @throws IllegalStateException If the deserialized JSON object was missing any required properties. - * @throws IOException If an error occurs while reading the RealtimeMCPHTTPError. + * @throws IOException If an error occurs while reading the RealtimeMCPHttpError. */ @Generated - public static RealtimeMCPHTTPError fromJson(JsonReader jsonReader) throws IOException { + public static RealtimeMCPHttpError fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { long code = 0L; String message = null; @@ -118,9 +118,9 @@ public static RealtimeMCPHTTPError fromJson(JsonReader jsonReader) throws IOExce reader.skipChildren(); } } - RealtimeMCPHTTPError deserializedRealtimeMCPHTTPError = new RealtimeMCPHTTPError(code, message); - deserializedRealtimeMCPHTTPError.type = type; - return deserializedRealtimeMCPHTTPError; + RealtimeMCPHttpError deserializedRealtimeMCPHttpError = new RealtimeMCPHttpError(code, message); + deserializedRealtimeMCPHttpError.type = type; + return deserializedRealtimeMCPHttpError; }); } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/WebSearchApproximateLocation.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java similarity index 88% rename from sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/WebSearchApproximateLocation.java rename to sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java index 8c8f85df8129..cb8f91d1155c 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/WebSearchApproximateLocation.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. -package com.azure.ai.agents.implementation.models; +package com.azure.ai.agents.models; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; @@ -10,6 +10,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.util.TimeZone; /** * Web search approximate location @@ -47,7 +48,7 @@ public final class WebSearchApproximateLocation implements JsonSerializable searchContentTypes; + /** * Creates an instance of WebSearchPreviewTool class. */ @@ -68,6 +73,18 @@ public ApproximateLocation getUserLocation() { return this.userLocation; } + /** + * Set the userLocation property: The user_location property. + * + * @param userLocation the userLocation value to set. + * @return the WebSearchPreviewTool object itself. + */ + @Generated + public WebSearchPreviewTool setUserLocation(ApproximateLocation userLocation) { + this.userLocation = userLocation; + return this; + } + /** * Get the searchContextSize property: 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. @@ -79,6 +96,41 @@ public SearchContextSize getSearchContextSize() { return this.searchContextSize; } + /** + * Set the searchContextSize property: 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. + * + * @param searchContextSize the searchContextSize value to set. + * @return the WebSearchPreviewTool object itself. + */ + @Generated + public WebSearchPreviewTool setSearchContextSize(SearchContextSize searchContextSize) { + this.searchContextSize = searchContextSize; + return this; + } + + /** + * Get the searchContentTypes property: The search_content_types property. + * + * @return the searchContentTypes value. + */ + @Generated + public List getSearchContentTypes() { + return this.searchContentTypes; + } + + /** + * Set the searchContentTypes property: The search_content_types property. + * + * @param searchContentTypes the searchContentTypes value to set. + * @return the WebSearchPreviewTool object itself. + */ + @Generated + public WebSearchPreviewTool setSearchContentTypes(List searchContentTypes) { + this.searchContentTypes = searchContentTypes; + return this; + } + /** * {@inheritDoc} */ @@ -128,57 +180,4 @@ public static WebSearchPreviewTool fromJson(JsonReader jsonReader) throws IOExce return deserializedWebSearchPreviewTool; }); } - - /** - * Set the userLocation property: The user_location property. - * - * @param userLocation the userLocation value to set. - * @return the WebSearchPreviewTool object itself. - */ - @Generated - public WebSearchPreviewTool setUserLocation(ApproximateLocation userLocation) { - this.userLocation = userLocation; - return this; - } - - /** - * Set the searchContextSize property: 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. - * - * @param searchContextSize the searchContextSize value to set. - * @return the WebSearchPreviewTool object itself. - */ - @Generated - public WebSearchPreviewTool setSearchContextSize(SearchContextSize searchContextSize) { - this.searchContextSize = searchContextSize; - return this; - } - - /* - * The search_content_types property. - */ - @Generated - private List searchContentTypes; - - /** - * Get the searchContentTypes property: The search_content_types property. - * - * @return the searchContentTypes value. - */ - @Generated - public List getSearchContentTypes() { - return this.searchContentTypes; - } - - /** - * Set the searchContentTypes property: The search_content_types property. - * - * @param searchContentTypes the searchContentTypes value to set. - * @return the WebSearchPreviewTool object itself. - */ - @Generated - public WebSearchPreviewTool setSearchContentTypes(List searchContentTypes) { - this.searchContentTypes = searchContentTypes; - return this; - } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java index 8fe53b4b2b72..5f94de8a869b 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchTool.java @@ -3,7 +3,6 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; -import com.azure.ai.agents.implementation.models.WebSearchApproximateLocation; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; @@ -27,6 +26,13 @@ public final class WebSearchTool extends Tool { @Generated private ToolType type = ToolType.WEB_SEARCH; + /* + * 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. + */ + @Generated + private Boolean externalWebAccess; + /* * The filters property. */ @@ -46,6 +52,24 @@ public final class WebSearchTool extends Tool { @Generated private WebSearchToolSearchContextSize searchContextSize; + /* + * Deprecated. This property is deprecated and will be removed in a future version. + */ + @Generated + private String name; + + /* + * Deprecated. This property is deprecated and will be removed in a future version. + */ + @Generated + private String description; + + /* + * Deprecated. This property is deprecated and will be removed in a future version. + */ + @Generated + private Map toolConfigs; + /* * The project connections attached to this tool. There can be a maximum of 1 connection * resource attached to the tool. @@ -71,6 +95,30 @@ public ToolType getType() { return this.type; } + /** + * Get the externalWebAccess property: 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. + * + * @return the externalWebAccess value. + */ + @Generated + public Boolean isExternalWebAccess() { + return this.externalWebAccess; + } + + /** + * Set the externalWebAccess property: 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. + * + * @param externalWebAccess the externalWebAccess value to set. + * @return the WebSearchTool object itself. + */ + @Generated + public WebSearchTool setExternalWebAccess(Boolean externalWebAccess) { + this.externalWebAccess = externalWebAccess; + return this; + } + /** * Get the filters property: The filters property. * @@ -139,6 +187,72 @@ public WebSearchTool setSearchContextSize(WebSearchToolSearchContextSize searchC return this; } + /** + * Get the name property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Set the name property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @param name the name value to set. + * @return the WebSearchTool object itself. + */ + @Generated + public WebSearchTool setName(String name) { + this.name = name; + return this; + } + + /** + * Get the description property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Set the description property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @param description the description value to set. + * @return the WebSearchTool object itself. + */ + @Generated + public WebSearchTool setDescription(String description) { + this.description = description; + return this; + } + + /** + * Get the toolConfigs property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @return the toolConfigs value. + */ + @Generated + public Map getToolConfigs() { + return this.toolConfigs; + } + + /** + * Set the toolConfigs property: Deprecated. This property is deprecated and will be removed in a future version. + * + * @param toolConfigs the toolConfigs value to set. + * @return the WebSearchTool object itself. + */ + @Generated + public WebSearchTool setToolConfigs(Map toolConfigs) { + this.toolConfigs = toolConfigs; + return this; + } + /** * Get the customSearchConfiguration property: The project connections attached to this tool. There can be a maximum * of 1 connection @@ -227,119 +341,4 @@ public static WebSearchTool fromJson(JsonReader jsonReader) throws IOException { return deserializedWebSearchTool; }); } - - /* - * Deprecated. This property is deprecated and will be removed in a future version. - */ - @Generated - private String name; - - /* - * Deprecated. This property is deprecated and will be removed in a future version. - */ - @Generated - private String description; - - /* - * Deprecated. This property is deprecated and will be removed in a future version. - */ - @Generated - private Map toolConfigs; - - /** - * Get the name property: Deprecated. This property is deprecated and will be removed in a future version. - * - * @return the name value. - */ - @Generated - public String getName() { - return this.name; - } - - /** - * Set the name property: Deprecated. This property is deprecated and will be removed in a future version. - * - * @param name the name value to set. - * @return the WebSearchTool object itself. - */ - @Generated - public WebSearchTool setName(String name) { - this.name = name; - return this; - } - - /** - * Get the description property: Deprecated. This property is deprecated and will be removed in a future version. - * - * @return the description value. - */ - @Generated - public String getDescription() { - return this.description; - } - - /** - * Set the description property: Deprecated. This property is deprecated and will be removed in a future version. - * - * @param description the description value to set. - * @return the WebSearchTool object itself. - */ - @Generated - public WebSearchTool setDescription(String description) { - this.description = description; - return this; - } - - /** - * Get the toolConfigs property: Deprecated. This property is deprecated and will be removed in a future version. - * - * @return the toolConfigs value. - */ - @Generated - public Map getToolConfigs() { - return this.toolConfigs; - } - - /** - * Set the toolConfigs property: Deprecated. This property is deprecated and will be removed in a future version. - * - * @param toolConfigs the toolConfigs value to set. - * @return the WebSearchTool object itself. - */ - @Generated - public WebSearchTool setToolConfigs(Map toolConfigs) { - this.toolConfigs = toolConfigs; - return this; - } - - /* - * 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. - */ - @Generated - private Boolean externalWebAccess; - - /** - * Get the externalWebAccess property: 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. - * - * @return the externalWebAccess value. - */ - @Generated - public Boolean isExternalWebAccess() { - return this.externalWebAccess; - } - - /** - * Set the externalWebAccess property: 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. - * - * @param externalWebAccess the externalWebAccess value to set. - * @return the WebSearchTool object itself. - */ - @Generated - public WebSearchTool setExternalWebAccess(Boolean externalWebAccess) { - this.externalWebAccess = externalWebAccess; - return this; - } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java index 548a749e358e..236d2195a3ab 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java @@ -3,7 +3,6 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; -import com.azure.ai.agents.implementation.models.WebSearchApproximateLocation; import com.azure.core.annotation.Fluent; import com.azure.core.annotation.Generated; import com.azure.json.JsonReader; @@ -24,6 +23,13 @@ public final class WebSearchToolboxTool extends ToolboxTool { @Generated private ToolboxToolType type = ToolboxToolType.WEB_SEARCH; + /* + * 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. + */ + @Generated + private Boolean externalWebAccess; + /* * The filters property. */ @@ -68,6 +74,30 @@ public ToolboxToolType getType() { return this.type; } + /** + * Get the externalWebAccess property: 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. + * + * @return the externalWebAccess value. + */ + @Generated + public Boolean isExternalWebAccess() { + return this.externalWebAccess; + } + + /** + * Set the externalWebAccess property: 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. + * + * @param externalWebAccess the externalWebAccess value to set. + * @return the WebSearchToolboxTool object itself. + */ + @Generated + public WebSearchToolboxTool setExternalWebAccess(Boolean externalWebAccess) { + this.externalWebAccess = externalWebAccess; + return this; + } + /** * Get the filters property: The filters property. * @@ -255,35 +285,4 @@ public static WebSearchToolboxTool fromJson(JsonReader jsonReader) throws IOExce return deserializedWebSearchToolboxTool; }); } - - /* - * 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. - */ - @Generated - private Boolean externalWebAccess; - - /** - * Get the externalWebAccess property: 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. - * - * @return the externalWebAccess value. - */ - @Generated - public Boolean isExternalWebAccess() { - return this.externalWebAccess; - } - - /** - * Set the externalWebAccess property: 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. - * - * @param externalWebAccess the externalWebAccess value to set. - * @return the WebSearchToolboxTool object itself. - */ - @Generated - public WebSearchToolboxTool setExternalWebAccess(Boolean externalWebAccess) { - this.externalWebAccess = externalWebAccess; - return this; - } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/module-info.java b/sdk/ai/azure-ai-agents/src/main/java/module-info.java index cc62b970db7c..837c06dfb4dd 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/module-info.java +++ b/sdk/ai/azure-ai-agents/src/main/java/module-info.java @@ -1,11 +1,8 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// Code generated by Microsoft (R) TypeSpec Code Generator. module com.azure.ai.agents { requires transitive com.azure.core; - requires transitive openai.java.client.okhttp; - requires transitive openai.java.core; + requires openai.java.core; + requires openai.java.client.okhttp; exports com.azure.ai.agents; exports com.azure.ai.agents.models; diff --git a/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json b/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json index 2891abd711fd..ad16a6038d10 100644 --- a/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json +++ b/sdk/ai/azure-ai-agents/src/main/resources/META-INF/azure-ai-agents_metadata.json @@ -1 +1 @@ -{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"75d42fd49a1c","crossLanguageDefinitions":{"com.azure.ai.agents.AgentsAsyncClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsAsyncClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsAsyncClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsAsyncClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsAsyncClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsAsyncClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClientBuilder":"Azure.AI.Projects","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentsAsyncClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaAgentsClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaMemoryStoresAsyncClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.ToolboxesAsyncClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesAsyncClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesAsyncClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys":"Azure.AI.Projects.AgentDefinitionOptInKeys","com.azure.ai.agents.implementation.models.ApproximateLocation":"OpenAI.ApproximateLocation","com.azure.ai.agents.implementation.models.CreateAgentFromCodeContent":"Azure.AI.Projects.CreateAgentFromCodeContent","com.azure.ai.agents.implementation.models.CreateAgentFromManifestRequest":"Azure.AI.Projects.createAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentOptions":null,"com.azure.ai.agents.implementation.models.CreateAgentRequest":"Azure.AI.Projects.createAgent.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest":"Azure.AI.Projects.createAgentVersionFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionRequest":"Azure.AI.Projects.createAgentVersion.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryRequest":"Azure.AI.Projects.createMemory.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryStoreRequest":"Azure.AI.Projects.createMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.CreateSessionRequest":"Azure.AI.Projects.createSession.Request.anonymous","com.azure.ai.agents.implementation.models.CreateToolboxVersionRequest":"Azure.AI.Projects.createToolboxVersion.Request.anonymous","com.azure.ai.agents.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest":"Azure.AI.Projects.getMicrosoft365AppPackage.Request.anonymous","com.azure.ai.agents.implementation.models.ListMemoriesRequest":"Azure.AI.Projects.listMemories.Request.anonymous","com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request":"Azure.AI.Projects.publishAgentToMicrosoft365.Request.anonymous","com.azure.ai.agents.implementation.models.SearchMemoriesRequest":"Azure.AI.Projects.searchMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest":"Azure.AI.Projects.updateAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentRequest":"Azure.AI.Projects.updateAgent.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoriesRequest":"Azure.AI.Projects.updateMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryRequest":"Azure.AI.Projects.updateMemory.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryStoreRequest":"Azure.AI.Projects.updateMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateToolboxInput":"Azure.AI.Projects.UpdateToolboxRequest","com.azure.ai.agents.implementation.models.UpdateToolboxRequest":"Azure.AI.Projects.updateToolbox.Request.anonymous","com.azure.ai.agents.implementation.models.WebSearchApproximateLocation":"OpenAI.WebSearchApproximateLocation","com.azure.ai.agents.models.A2APreviewTool":"Azure.AI.Projects.A2APreviewTool","com.azure.ai.agents.models.A2APreviewToolboxTool":"Azure.AI.Projects.A2APreviewToolboxTool","com.azure.ai.agents.models.A2AProtocolConfiguration":"Azure.AI.Projects.A2AProtocolConfiguration","com.azure.ai.agents.models.A2AProtocolVersion":"Azure.AI.Projects.A2AProtocolVersion","com.azure.ai.agents.models.A2ATool":"Azure.AI.Projects.A2ATool","com.azure.ai.agents.models.A2AToolCall":"Azure.AI.Projects.A2AToolCall","com.azure.ai.agents.models.A2AToolCallOutput":"Azure.AI.Projects.A2AToolCallOutput","com.azure.ai.agents.models.A2AToolboxTool":"Azure.AI.Projects.A2AToolboxTool","com.azure.ai.agents.models.AISearchIndexResource":"Azure.AI.Projects.AISearchIndexResource","com.azure.ai.agents.models.ActivityProtocolAccessBoundary":"Azure.AI.Projects.ActivityProtocolAccessBoundary","com.azure.ai.agents.models.ActivityProtocolConfiguration":"Azure.AI.Projects.ActivityProtocolConfiguration","com.azure.ai.agents.models.AgentBlueprintReference":"Azure.AI.Projects.AgentBlueprintReference","com.azure.ai.agents.models.AgentBlueprintReferenceType":"Azure.AI.Projects.AgentBlueprintReferenceType","com.azure.ai.agents.models.AgentCard":"Azure.AI.Projects.AgentCard","com.azure.ai.agents.models.AgentCardSkill":"Azure.AI.Projects.AgentCardSkill","com.azure.ai.agents.models.AgentDefinition":"Azure.AI.Projects.AgentDefinition","com.azure.ai.agents.models.AgentDetails":"Azure.AI.Projects.AgentObject","com.azure.ai.agents.models.AgentDetailsVersions":"Azure.AI.Projects.AgentObject.versions.anonymous","com.azure.ai.agents.models.AgentEndpointAuthorizationScheme":"Azure.AI.Projects.AgentEndpointAuthorizationScheme","com.azure.ai.agents.models.AgentEndpointAuthorizationSchemeType":"Azure.AI.Projects.AgentEndpointAuthorizationSchemeType","com.azure.ai.agents.models.AgentEndpointConfig":"Azure.AI.Projects.AgentEndpointConfig","com.azure.ai.agents.models.AgentEndpointProtocol":"Azure.AI.Projects.AgentEndpointProtocol","com.azure.ai.agents.models.AgentIdentity":"Azure.AI.Projects.AgentIdentity","com.azure.ai.agents.models.AgentIdentityStatus":"Azure.AI.Projects.AgentIdentityStatus","com.azure.ai.agents.models.AgentKind":"Azure.AI.Projects.AgentKind","com.azure.ai.agents.models.AgentObjectType":"Azure.AI.Projects.AgentObjectType","com.azure.ai.agents.models.AgentOptimizationCandidate":"Azure.AI.Projects.AgentOptimizationCandidate","com.azure.ai.agents.models.AgentOptimizationDatasetCriterion":"Azure.AI.Projects.AgentOptimizationDatasetCriterion","com.azure.ai.agents.models.AgentOptimizationDatasetInput":"Azure.AI.Projects.AgentOptimizationDatasetInput","com.azure.ai.agents.models.AgentOptimizationDatasetInputType":"Azure.AI.Projects.AgentOptimizationDatasetInputType","com.azure.ai.agents.models.AgentOptimizationDatasetItem":"Azure.AI.Projects.AgentOptimizationDatasetItem","com.azure.ai.agents.models.AgentOptimizationEvaluatorRef":"Azure.AI.Projects.AgentOptimizationEvaluatorRef","com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput":"Azure.AI.Projects.AgentOptimizationInlineDatasetInput","com.azure.ai.agents.models.AgentOptimizationJob":"Azure.AI.Projects.AgentOptimizationJob","com.azure.ai.agents.models.AgentOptimizationJobInputs":"Azure.AI.Projects.AgentOptimizationJobInputs","com.azure.ai.agents.models.AgentOptimizationJobListItem":"Azure.AI.Projects.AgentOptimizationJobListItem","com.azure.ai.agents.models.AgentOptimizationJobProgress":"Azure.AI.Projects.AgentOptimizationJobProgress","com.azure.ai.agents.models.AgentOptimizationJobResult":"Azure.AI.Projects.AgentOptimizationJobResult","com.azure.ai.agents.models.AgentOptimizationOptions":"Azure.AI.Projects.AgentOptimizationOptions","com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput":"Azure.AI.Projects.AgentOptimizationReferenceDatasetInput","com.azure.ai.agents.models.AgentReference":"Azure.AI.Projects.AgentReference","com.azure.ai.agents.models.AgentSessionResource":"Azure.AI.Projects.AgentSessionResource","com.azure.ai.agents.models.AgentSessionStatus":"Azure.AI.Projects.AgentSessionStatus","com.azure.ai.agents.models.AgentState":"Azure.AI.Projects.AgentState","com.azure.ai.agents.models.AgentStateSource":"Azure.AI.Projects.AgentStateSource","com.azure.ai.agents.models.AgentVersionDetails":"Azure.AI.Projects.AgentVersionObject","com.azure.ai.agents.models.AgentVersionStatus":"Azure.AI.Projects.AgentVersionStatus","com.azure.ai.agents.models.ApiError":"OpenAI.Error","com.azure.ai.agents.models.ApplyPatchToolParameter":"OpenAI.ApplyPatchToolParam","com.azure.ai.agents.models.AutoCodeInterpreterToolParameter":"OpenAI.AutoCodeInterpreterToolParam","com.azure.ai.agents.models.AzureAISearchQueryType":"Azure.AI.Projects.AzureAISearchQueryType","com.azure.ai.agents.models.AzureAISearchTool":"Azure.AI.Projects.AzureAISearchTool","com.azure.ai.agents.models.AzureAISearchToolCall":"Azure.AI.Projects.AzureAISearchToolCall","com.azure.ai.agents.models.AzureAISearchToolCallOutput":"Azure.AI.Projects.AzureAISearchToolCallOutput","com.azure.ai.agents.models.AzureAISearchToolResource":"Azure.AI.Projects.AzureAISearchToolResource","com.azure.ai.agents.models.AzureAISearchToolboxTool":"Azure.AI.Projects.AzureAISearchToolboxTool","com.azure.ai.agents.models.AzureCreateResponseDetails":"Azure.AI.Projects.AzureCreateResponseDetails","com.azure.ai.agents.models.AzureCreateResponseOptions":"Azure.AI.Projects.AzureCreateResponseOptions","com.azure.ai.agents.models.AzureFunctionBinding":"Azure.AI.Projects.AzureFunctionBinding","com.azure.ai.agents.models.AzureFunctionDefinition":"Azure.AI.Projects.AzureFunctionDefinition","com.azure.ai.agents.models.AzureFunctionDefinitionDetails":"Azure.AI.Projects.AzureFunctionDefinition.function.anonymous","com.azure.ai.agents.models.AzureFunctionStorageQueue":"Azure.AI.Projects.AzureFunctionStorageQueue","com.azure.ai.agents.models.AzureFunctionTool":"Azure.AI.Projects.AzureFunctionTool","com.azure.ai.agents.models.AzureFunctionToolCall":"Azure.AI.Projects.AzureFunctionToolCall","com.azure.ai.agents.models.AzureFunctionToolCallOutput":"Azure.AI.Projects.AzureFunctionToolCallOutput","com.azure.ai.agents.models.AzureUserSecurityContext":"Azure.AI.Projects.AzureUserSecurityContext","com.azure.ai.agents.models.BingCustomSearchConfiguration":"Azure.AI.Projects.BingCustomSearchConfiguration","com.azure.ai.agents.models.BingCustomSearchPreviewTool":"Azure.AI.Projects.BingCustomSearchPreviewTool","com.azure.ai.agents.models.BingCustomSearchToolCall":"Azure.AI.Projects.BingCustomSearchToolCall","com.azure.ai.agents.models.BingCustomSearchToolCallOutput":"Azure.AI.Projects.BingCustomSearchToolCallOutput","com.azure.ai.agents.models.BingCustomSearchToolParameters":"Azure.AI.Projects.BingCustomSearchToolParameters","com.azure.ai.agents.models.BingGroundingSearchConfiguration":"Azure.AI.Projects.BingGroundingSearchConfiguration","com.azure.ai.agents.models.BingGroundingSearchToolParameters":"Azure.AI.Projects.BingGroundingSearchToolParameters","com.azure.ai.agents.models.BingGroundingTool":"Azure.AI.Projects.BingGroundingTool","com.azure.ai.agents.models.BingGroundingToolCall":"Azure.AI.Projects.BingGroundingToolCall","com.azure.ai.agents.models.BingGroundingToolCallOutput":"Azure.AI.Projects.BingGroundingToolCallOutput","com.azure.ai.agents.models.BotServiceAuthorizationScheme":"Azure.AI.Projects.BotServiceAuthorizationScheme","com.azure.ai.agents.models.BotServiceRbacAuthorizationScheme":"Azure.AI.Projects.BotServiceRbacAuthorizationScheme","com.azure.ai.agents.models.BotServiceTenantAuthorizationScheme":"Azure.AI.Projects.BotServiceTenantAuthorizationScheme","com.azure.ai.agents.models.BrowserAutomationPreviewTool":"Azure.AI.Projects.BrowserAutomationPreviewTool","com.azure.ai.agents.models.BrowserAutomationPreviewToolboxTool":"Azure.AI.Projects.BrowserAutomationPreviewToolboxTool","com.azure.ai.agents.models.BrowserAutomationToolCall":"Azure.AI.Projects.BrowserAutomationToolCall","com.azure.ai.agents.models.BrowserAutomationToolCallOutput":"Azure.AI.Projects.BrowserAutomationToolCallOutput","com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters":"Azure.AI.Projects.BrowserAutomationToolConnectionParameters","com.azure.ai.agents.models.BrowserAutomationToolParameters":"Azure.AI.Projects.BrowserAutomationToolParameters","com.azure.ai.agents.models.CallableToolAllowedCaller":"OpenAI.CallableToolAllowedCaller","com.azure.ai.agents.models.CaptureStructuredOutputsTool":"Azure.AI.Projects.CaptureStructuredOutputsTool","com.azure.ai.agents.models.ChatSummaryMemoryItem":"Azure.AI.Projects.ChatSummaryMemoryItem","com.azure.ai.agents.models.CodeConfiguration":"Azure.AI.Projects.CodeConfiguration","com.azure.ai.agents.models.CodeDependencyResolution":"Azure.AI.Projects.CodeDependencyResolution","com.azure.ai.agents.models.CodeFileDetails":null,"com.azure.ai.agents.models.CodeInterpreterTool":"OpenAI.CodeInterpreterTool","com.azure.ai.agents.models.CodeInterpreterToolboxTool":"Azure.AI.Projects.CodeInterpreterToolboxTool","com.azure.ai.agents.models.ComputerEnvironment":"ComputerEnvironmentExpandable","com.azure.ai.agents.models.ComputerTool":"OpenAI.ComputerTool","com.azure.ai.agents.models.ComputerUsePreviewTool":"OpenAI.ComputerUsePreviewTool","com.azure.ai.agents.models.ContainerAutoParameter":"OpenAI.ContainerAutoParam","com.azure.ai.agents.models.ContainerConfiguration":"Azure.AI.Projects.ContainerConfiguration","com.azure.ai.agents.models.ContainerMemoryLimit":"ContainerMemoryLimitExpandable","com.azure.ai.agents.models.ContainerNetworkPolicyAllowlistParameter":"OpenAI.ContainerNetworkPolicyAllowlistParam","com.azure.ai.agents.models.ContainerNetworkPolicyDisabledParameter":"OpenAI.ContainerNetworkPolicyDisabledParam","com.azure.ai.agents.models.ContainerNetworkPolicyDomainSecretParameter":"OpenAI.ContainerNetworkPolicyDomainSecretParam","com.azure.ai.agents.models.ContainerNetworkPolicyParamType":"OpenAI.ContainerNetworkPolicyParamType","com.azure.ai.agents.models.ContainerNetworkPolicyParameter":"OpenAI.ContainerNetworkPolicyParam","com.azure.ai.agents.models.ContainerSkill":"OpenAI.ContainerSkill","com.azure.ai.agents.models.ContainerSkillType":"OpenAI.ContainerSkillType","com.azure.ai.agents.models.ConversationResource":"OpenAI.ConversationResource","com.azure.ai.agents.models.CreateAgentVersionFromCodeContent":"Azure.AI.Projects.CreateAgentVersionFromCodeContent","com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata":"Azure.AI.Projects.CreateAgentVersionFromCodeMetadata","com.azure.ai.agents.models.CreateAgentVersionInput":"Azure.AI.Projects.CreateAgentVersionRequest","com.azure.ai.agents.models.CreateAgentVersionOptions":null,"com.azure.ai.agents.models.CustomGrammarFormatParameter":"OpenAI.CustomGrammarFormatParam","com.azure.ai.agents.models.CustomTextFormatParameter":"OpenAI.CustomTextFormatParam","com.azure.ai.agents.models.CustomToolParamFormat":"OpenAI.CustomToolParamFormat","com.azure.ai.agents.models.CustomToolParamFormatType":"OpenAI.CustomToolParamFormatType","com.azure.ai.agents.models.CustomToolParameter":"OpenAI.CustomToolParam","com.azure.ai.agents.models.DigitalWorkerType":"Azure.AI.Projects.DigitalWorkerType","com.azure.ai.agents.models.EntraAuthorizationScheme":"Azure.AI.Projects.EntraAuthorizationScheme","com.azure.ai.agents.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.agents.models.ExternalAgentDefinition":"Azure.AI.Projects.ExternalAgentDefinition","com.azure.ai.agents.models.FabricDataAgentToolCall":"Azure.AI.Projects.FabricDataAgentToolCall","com.azure.ai.agents.models.FabricDataAgentToolCallOutput":"Azure.AI.Projects.FabricDataAgentToolCallOutput","com.azure.ai.agents.models.FabricDataAgentToolParameters":"Azure.AI.Projects.FabricDataAgentToolParameters","com.azure.ai.agents.models.FabricIqPreviewTool":"Azure.AI.Projects.FabricIQPreviewTool","com.azure.ai.agents.models.FabricIqPreviewToolboxTool":"Azure.AI.Projects.FabricIQPreviewToolboxTool","com.azure.ai.agents.models.FileSearchTool":"OpenAI.FileSearchTool","com.azure.ai.agents.models.FileSearchToolboxTool":"Azure.AI.Projects.FileSearchToolboxTool","com.azure.ai.agents.models.FixedRatioVersionSelectionRule":"Azure.AI.Projects.FixedRatioVersionSelectionRule","com.azure.ai.agents.models.FunctionShellToolParamEnvironment":"OpenAI.FunctionShellToolParamEnvironment","com.azure.ai.agents.models.FunctionShellToolParamEnvironmentType":"OpenAI.FunctionShellToolParamEnvironmentType","com.azure.ai.agents.models.FunctionShellToolParameter":"OpenAI.FunctionShellToolParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentContainerReferenceParameter":"OpenAI.FunctionShellToolParamEnvironmentContainerReferenceParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentLocalEnvironmentParameter":"OpenAI.FunctionShellToolParamEnvironmentLocalEnvironmentParam","com.azure.ai.agents.models.FunctionTool":"OpenAI.FunctionTool","com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions":null,"com.azure.ai.agents.models.GrammarSyntax":"GrammarSyntaxExpandable","com.azure.ai.agents.models.HeaderTelemetryEndpointAuth":"Azure.AI.Projects.HeaderTelemetryEndpointAuth","com.azure.ai.agents.models.HostedAgentDefinition":"Azure.AI.Projects.HostedAgentDefinition","com.azure.ai.agents.models.HybridSearchOptions":"OpenAI.HybridSearchOptions","com.azure.ai.agents.models.ImageGenActionEnum":"ImageGenActionEnumExpandable","com.azure.ai.agents.models.ImageGenTool":"OpenAI.ImageGenTool","com.azure.ai.agents.models.ImageGenToolBackground":"ImageGenToolBackgroundExpandable","com.azure.ai.agents.models.ImageGenToolInputImageMask":"OpenAI.ImageGenToolInputImageMask","com.azure.ai.agents.models.ImageGenToolModel":"OpenAI.ImageGenTool.model.anonymous","com.azure.ai.agents.models.ImageGenToolModeration":"ImageGenToolModerationExpandable","com.azure.ai.agents.models.ImageGenToolOutputFormat":"ImageGenToolOutputFormatExpandable","com.azure.ai.agents.models.ImageGenToolQuality":"ImageGenToolQualityExpandable","com.azure.ai.agents.models.ImageGenToolSize":"ImageGenToolSizeExpandable","com.azure.ai.agents.models.IncludeEnum":"OpenAI.IncludeEnum","com.azure.ai.agents.models.InlineSkillParameter":"OpenAI.InlineSkillParam","com.azure.ai.agents.models.InlineSkillSourceParameter":"OpenAI.InlineSkillSourceParam","com.azure.ai.agents.models.InputFidelity":"InputFidelityExpandable","com.azure.ai.agents.models.InvocationsProtocolConfiguration":"Azure.AI.Projects.InvocationsProtocolConfiguration","com.azure.ai.agents.models.InvocationsWsProtocolConfiguration":"Azure.AI.Projects.InvocationsWsProtocolConfiguration","com.azure.ai.agents.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.agents.models.ListMemoriesOptions":null,"com.azure.ai.agents.models.LocalShellToolParameter":"OpenAI.LocalShellToolParam","com.azure.ai.agents.models.LocalSkillParameter":"OpenAI.LocalSkillParam","com.azure.ai.agents.models.ManagedAgentIdentityBlueprintReference":"Azure.AI.Projects.ManagedAgentIdentityBlueprintReference","com.azure.ai.agents.models.McpListToolsTool":"OpenAI.MCPListToolsTool","com.azure.ai.agents.models.McpListToolsToolAnnotations":"OpenAI.MCPListToolsToolAnnotations","com.azure.ai.agents.models.McpListToolsToolInputSchema":"OpenAI.MCPListToolsToolInputSchema","com.azure.ai.agents.models.McpProtocolConfiguration":"Azure.AI.Projects.McpProtocolConfiguration","com.azure.ai.agents.models.McpTool":"OpenAI.MCPTool","com.azure.ai.agents.models.McpToolConnectorId":"McpToolConnectorIdExpandable","com.azure.ai.agents.models.McpToolFilter":"OpenAI.MCPToolFilter","com.azure.ai.agents.models.McpToolRequireApproval":"OpenAI.MCPToolRequireApproval","com.azure.ai.agents.models.McpToolboxTool":"Azure.AI.Projects.MCPToolboxTool","com.azure.ai.agents.models.MemoryCommandToolCall":"Azure.AI.Projects.MemoryCommandToolCall","com.azure.ai.agents.models.MemoryCommandToolCallOutput":"Azure.AI.Projects.MemoryCommandToolCallOutput","com.azure.ai.agents.models.MemoryItem":"Azure.AI.Projects.MemoryItem","com.azure.ai.agents.models.MemoryItemKind":"Azure.AI.Projects.MemoryItemKind","com.azure.ai.agents.models.MemoryOperation":"Azure.AI.Projects.MemoryOperation","com.azure.ai.agents.models.MemoryOperationKind":"Azure.AI.Projects.MemoryOperationKind","com.azure.ai.agents.models.MemorySearchItem":"Azure.AI.Projects.MemorySearchItem","com.azure.ai.agents.models.MemorySearchOptions":"Azure.AI.Projects.MemorySearchOptions","com.azure.ai.agents.models.MemorySearchPreviewTool":"Azure.AI.Projects.MemorySearchPreviewTool","com.azure.ai.agents.models.MemorySearchToolCall":"Azure.AI.Projects.MemorySearchToolCall","com.azure.ai.agents.models.MemoryStoreDefaultDefinition":"Azure.AI.Projects.MemoryStoreDefaultDefinition","com.azure.ai.agents.models.MemoryStoreDefaultOptions":"Azure.AI.Projects.MemoryStoreDefaultOptions","com.azure.ai.agents.models.MemoryStoreDefinition":"Azure.AI.Projects.MemoryStoreDefinition","com.azure.ai.agents.models.MemoryStoreDetails":"Azure.AI.Projects.MemoryStoreObject","com.azure.ai.agents.models.MemoryStoreKind":"Azure.AI.Projects.MemoryStoreKind","com.azure.ai.agents.models.MemoryStoreObjectType":"Azure.AI.Projects.MemoryStoreObjectType","com.azure.ai.agents.models.MemoryStoreOperationUsage":"Azure.AI.Projects.MemoryStoreOperationUsage","com.azure.ai.agents.models.MemoryStoreSearchResponse":"Azure.AI.Projects.MemoryStoreSearchResponse","com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult":"Azure.AI.Projects.MemoryStoreUpdateCompletedResult","com.azure.ai.agents.models.MemoryStoreUpdateResponse":"Azure.AI.Projects.MemoryStoreUpdateResponse","com.azure.ai.agents.models.MemoryStoreUpdateStatus":"Azure.AI.Projects.MemoryStoreUpdateStatus","com.azure.ai.agents.models.Metadata":"OpenAI.Metadata","com.azure.ai.agents.models.Microsoft365PermissionScopes":"Azure.AI.Projects.Microsoft365PermissionScopes","com.azure.ai.agents.models.Microsoft365PublishDefaults":"Azure.AI.Projects.Microsoft365PublishDefaults","com.azure.ai.agents.models.Microsoft365PublishResponse":"Azure.AI.Projects.Microsoft365PublishResponse","com.azure.ai.agents.models.Microsoft365PublishScope":"Azure.AI.Projects.Microsoft365PublishScope","com.azure.ai.agents.models.MicrosoftFabricPreviewTool":"Azure.AI.Projects.MicrosoftFabricPreviewTool","com.azure.ai.agents.models.ModelRouterAttempt":"Azure.AI.Projects.ModelRouterAttempt","com.azure.ai.agents.models.ModelRouterAttemptError":"Azure.AI.Projects.ModelRouterAttemptError","com.azure.ai.agents.models.ModelRouterAttemptResult":"Azure.AI.Projects.ModelRouterAttemptResult","com.azure.ai.agents.models.ModelRouterDetails":"Azure.AI.Projects.ModelRouterDetails","com.azure.ai.agents.models.ModelRouterMode":"Azure.AI.Projects.ModelRouterMode","com.azure.ai.agents.models.ModelSelectionDetails":"Azure.AI.Projects.ModelSelectionDetails","com.azure.ai.agents.models.NamespaceTool":"OpenAI.NamespaceToolParam","com.azure.ai.agents.models.OpenApiAnonymousAuthDetails":"Azure.AI.Projects.OpenApiAnonymousAuthDetails","com.azure.ai.agents.models.OpenApiAuthDetails":"Azure.AI.Projects.OpenApiAuthDetails","com.azure.ai.agents.models.OpenApiAuthType":"Azure.AI.Projects.OpenApiAuthType","com.azure.ai.agents.models.OpenApiFunctionDefinition":"Azure.AI.Projects.OpenApiFunctionDefinition","com.azure.ai.agents.models.OpenApiFunctionDefinitionFunction":"Azure.AI.Projects.OpenApiFunctionDefinition.function.anonymous","com.azure.ai.agents.models.OpenApiManagedAuthDetails":"Azure.AI.Projects.OpenApiManagedAuthDetails","com.azure.ai.agents.models.OpenApiManagedSecurityScheme":"Azure.AI.Projects.OpenApiManagedSecurityScheme","com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails":"Azure.AI.Projects.OpenApiProjectConnectionAuthDetails","com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme":"Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme","com.azure.ai.agents.models.OpenApiTool":"Azure.AI.Projects.OpenApiTool","com.azure.ai.agents.models.OpenApiToolCall":"Azure.AI.Projects.OpenApiToolCall","com.azure.ai.agents.models.OpenApiToolCallOutput":"Azure.AI.Projects.OpenApiToolCallOutput","com.azure.ai.agents.models.OpenApiToolboxTool":"Azure.AI.Projects.OpenApiToolboxTool","com.azure.ai.agents.models.OptimizedAgentIdentifier":"Azure.AI.Projects.OptimizedAgentIdentifier","com.azure.ai.agents.models.OtlpTelemetryEndpoint":"Azure.AI.Projects.OtlpTelemetryEndpoint","com.azure.ai.agents.models.PageOrder":"Azure.AI.Projects.PageOrder","com.azure.ai.agents.models.ProceduralMemoryItem":"Azure.AI.Projects.ProceduralMemoryItem","com.azure.ai.agents.models.ProgrammaticToolCallingParameter":"OpenAI.ProgrammaticToolCallingParam","com.azure.ai.agents.models.PromotionInfo":"Azure.AI.Projects.PromotionInfo","com.azure.ai.agents.models.PromptAgentDefinition":"Azure.AI.Projects.PromptAgentDefinition","com.azure.ai.agents.models.PromptAgentDefinitionReasoningContext":"Azure.AI.Projects.PromptAgentDefinition.reasoning.context.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningGenerateSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.generate_summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionTextOptions":"Azure.AI.Projects.PromptAgentDefinitionTextOptions","com.azure.ai.agents.models.ProtocolConfiguration":"Azure.AI.Projects.ProtocolConfiguration","com.azure.ai.agents.models.ProtocolVersionRecord":"Azure.AI.Projects.ProtocolVersionRecord","com.azure.ai.agents.models.PublishAgentToMicrosoft365Options":null,"com.azure.ai.agents.models.PublishApprovalStatus":"Azure.AI.Projects.PublishApprovalStatus","com.azure.ai.agents.models.RaiConfig":"Azure.AI.Projects.RaiConfig","com.azure.ai.agents.models.RankerVersionType":"RankerVersionTypeExpandable","com.azure.ai.agents.models.RankingOptions":"OpenAI.RankingOptions","com.azure.ai.agents.models.RealtimeAudioFormats":"OpenAI.RealtimeAudioFormats","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcm":"OpenAI.RealtimeAudioFormatsAudioPcm","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmRate":null,"com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcma":"OpenAI.RealtimeAudioFormatsAudioPcma","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmu":"OpenAI.RealtimeAudioFormatsAudioPcmu","com.azure.ai.agents.models.RealtimeAudioFormatsType":"OpenAI.RealtimeAudioFormatsType","com.azure.ai.agents.models.RealtimeConversationItem":"OpenAI.RealtimeConversationItem","com.azure.ai.agents.models.RealtimeConversationItemFunctionCall":"OpenAI.RealtimeConversationItemFunctionCall","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutput":"OpenAI.RealtimeConversationItemFunctionCallOutput","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutputStatus":"OpenAI.RealtimeConversationItemFunctionCallOutput.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallStatus":"OpenAI.RealtimeConversationItemFunctionCall.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject":null,"com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject1":null,"com.azure.ai.agents.models.RealtimeConversationItemType":"OpenAI.RealtimeConversationItemType","com.azure.ai.agents.models.RealtimeFunctionToolParameters":"OpenAI.RealtimeFunctionToolParameters","com.azure.ai.agents.models.RealtimeMCPApprovalRequest":"OpenAI.RealtimeMCPApprovalRequest","com.azure.ai.agents.models.RealtimeMCPApprovalResponse":"OpenAI.RealtimeMCPApprovalResponse","com.azure.ai.agents.models.RealtimeMCPError":"OpenAI.RealtimeMCPError","com.azure.ai.agents.models.RealtimeMCPHTTPError":"OpenAI.RealtimeMCPHTTPError","com.azure.ai.agents.models.RealtimeMCPListTools":"OpenAI.RealtimeMCPListTools","com.azure.ai.agents.models.RealtimeMCPProtocolError":"OpenAI.RealtimeMCPProtocolError","com.azure.ai.agents.models.RealtimeMCPToolCall":"OpenAI.RealtimeMCPToolCall","com.azure.ai.agents.models.RealtimeMCPToolExecutionError":"OpenAI.RealtimeMCPToolExecutionError","com.azure.ai.agents.models.RealtimeMcpErrorType":"OpenAI.RealtimeMcpErrorType","com.azure.ai.agents.models.RealtimeResponseStatusDetails":"OpenAI.RealtimeResponseStatusDetails","com.azure.ai.agents.models.RealtimeResponseStatusDetailsError":"OpenAI.RealtimeResponseStatusDetailsError","com.azure.ai.agents.models.RealtimeResponseStatusDetailsReason":"OpenAI.RealtimeResponseStatusDetails.reason.anonymous","com.azure.ai.agents.models.RealtimeResponseStatusDetailsType":"OpenAI.RealtimeResponseStatusDetails.type.anonymous","com.azure.ai.agents.models.RealtimeResponseUsage":"OpenAI.RealtimeResponseUsage","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetails":"OpenAI.RealtimeResponseUsageInputTokenDetails","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails":"OpenAI.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails","com.azure.ai.agents.models.RealtimeResponseUsageOutputTokenDetails":"OpenAI.RealtimeResponseUsageOutputTokenDetails","com.azure.ai.agents.models.Reasoning":"OpenAI.Reasoning","com.azure.ai.agents.models.ReasoningEffort":"OpenAI.ReasoningEffort","com.azure.ai.agents.models.ReasoningModeEnum":"OpenAI.ReasoningModeEnum","com.azure.ai.agents.models.ReminderPreviewToolboxTool":"Azure.AI.Projects.ReminderPreviewToolboxTool","com.azure.ai.agents.models.ResponseFormatJsonSchemaInner":"OpenAI.ResponseFormatJsonSchemaSchema","com.azure.ai.agents.models.ResponseUsageInputTokensDetails":"OpenAI.ResponseUsageInputTokensDetails","com.azure.ai.agents.models.ResponseUsageOutputTokensDetails":"OpenAI.ResponseUsageOutputTokensDetails","com.azure.ai.agents.models.ResponsesProtocolConfiguration":"Azure.AI.Projects.ResponsesProtocolConfiguration","com.azure.ai.agents.models.RoutingTraceEntry":"Azure.AI.Projects.RoutingTraceEntry","com.azure.ai.agents.models.SearchContentType":"OpenAI.SearchContentType","com.azure.ai.agents.models.SearchContextSize":"SearchContextSizeExpandable","com.azure.ai.agents.models.SessionConfiguration":"Azure.AI.Projects.SessionConfiguration","com.azure.ai.agents.models.SessionDirectoryEntry":"Azure.AI.Projects.SessionDirectoryEntry","com.azure.ai.agents.models.SessionFileWriteResult":"Azure.AI.Projects.SessionFileWriteResponse","com.azure.ai.agents.models.SessionLogEvent":"Azure.AI.Projects.SessionLogEvent","com.azure.ai.agents.models.SessionLogEventType":"Azure.AI.Projects.SessionLogEventType","com.azure.ai.agents.models.SharepointGroundingToolCall":"Azure.AI.Projects.SharepointGroundingToolCall","com.azure.ai.agents.models.SharepointGroundingToolCallOutput":"Azure.AI.Projects.SharepointGroundingToolCallOutput","com.azure.ai.agents.models.SharepointGroundingToolParameters":"Azure.AI.Projects.SharepointGroundingToolParameters","com.azure.ai.agents.models.SharepointPreviewTool":"Azure.AI.Projects.SharepointPreviewTool","com.azure.ai.agents.models.ShellToolboxTool":"Azure.AI.Projects.ShellToolboxTool","com.azure.ai.agents.models.SkillReferenceParameter":"OpenAI.SkillReferenceParam","com.azure.ai.agents.models.StructuredInputDefinition":"Azure.AI.Projects.StructuredInputDefinition","com.azure.ai.agents.models.StructuredOutputDefinition":"Azure.AI.Projects.StructuredOutputDefinition","com.azure.ai.agents.models.TelemetryConfig":"Azure.AI.Projects.TelemetryConfig","com.azure.ai.agents.models.TelemetryDataKind":"Azure.AI.Projects.TelemetryDataKind","com.azure.ai.agents.models.TelemetryEndpoint":"Azure.AI.Projects.TelemetryEndpoint","com.azure.ai.agents.models.TelemetryEndpointAuth":"Azure.AI.Projects.TelemetryEndpointAuth","com.azure.ai.agents.models.TelemetryEndpointAuthType":"Azure.AI.Projects.TelemetryEndpointAuthType","com.azure.ai.agents.models.TelemetryEndpointKind":"Azure.AI.Projects.TelemetryEndpointKind","com.azure.ai.agents.models.TelemetryTransportProtocol":"Azure.AI.Projects.TelemetryTransportProtocol","com.azure.ai.agents.models.TextResponseFormatConfiguration":"OpenAI.TextResponseFormatConfiguration","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatJsonObject":"OpenAI.TextResponseFormatConfigurationResponseFormatJsonObject","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatText":"OpenAI.TextResponseFormatConfigurationResponseFormatText","com.azure.ai.agents.models.TextResponseFormatConfigurationType":"OpenAI.TextResponseFormatConfigurationType","com.azure.ai.agents.models.TextResponseFormatJsonSchema":"OpenAI.TextResponseFormatJsonSchema","com.azure.ai.agents.models.Tool":"OpenAI.Tool","com.azure.ai.agents.models.ToolCallStatus":"Azure.AI.Projects.ToolCallStatus","com.azure.ai.agents.models.ToolChoiceFunction":"OpenAI.ToolChoiceFunction","com.azure.ai.agents.models.ToolChoiceMCP":"OpenAI.ToolChoiceMCP","com.azure.ai.agents.models.ToolChoiceParam":"OpenAI.ToolChoiceParam","com.azure.ai.agents.models.ToolChoiceParamType":"OpenAI.ToolChoiceParamType","com.azure.ai.agents.models.ToolConfig":"Azure.AI.Projects.ToolConfig","com.azure.ai.agents.models.ToolProjectConnection":"Azure.AI.Projects.ToolProjectConnection","com.azure.ai.agents.models.ToolSearchExecutionType":"OpenAI.ToolSearchExecutionType","com.azure.ai.agents.models.ToolSearchTool":"OpenAI.ToolSearchToolParam","com.azure.ai.agents.models.ToolSearchToolboxTool":"Azure.AI.Projects.ToolSearchToolboxTool","com.azure.ai.agents.models.ToolType":"OpenAI.ToolType","com.azure.ai.agents.models.ToolboxDetails":"Azure.AI.Projects.ToolboxObject","com.azure.ai.agents.models.ToolboxPolicies":"Azure.AI.Projects.ToolboxPolicies","com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool":"Azure.AI.Projects.ToolboxSearchPreviewToolboxTool","com.azure.ai.agents.models.ToolboxShellContainerAutoEnvironment":"Azure.AI.Projects.ToolboxShellContainerAutoEnvironment","com.azure.ai.agents.models.ToolboxShellContainerReferenceEnvironment":"Azure.AI.Projects.ToolboxShellContainerReferenceEnvironment","com.azure.ai.agents.models.ToolboxShellEnvironment":"Azure.AI.Projects.ToolboxShellEnvironment","com.azure.ai.agents.models.ToolboxShellNetworkPolicy":"Azure.AI.Projects.ToolboxShellNetworkPolicy","com.azure.ai.agents.models.ToolboxShellNetworkPolicyDisabled":"Azure.AI.Projects.ToolboxShellNetworkPolicyDisabled","com.azure.ai.agents.models.ToolboxSkill":"Azure.AI.Projects.ToolboxSkill","com.azure.ai.agents.models.ToolboxSkillReference":"Azure.AI.Projects.ToolboxSkillReference","com.azure.ai.agents.models.ToolboxTool":"Azure.AI.Projects.ToolboxTool","com.azure.ai.agents.models.ToolboxToolType":"Azure.AI.Projects.ToolboxToolType","com.azure.ai.agents.models.ToolboxVersionDetails":"Azure.AI.Projects.ToolboxVersionObject","com.azure.ai.agents.models.UpdateAgentDetailsOptions":"Azure.AI.Projects.patchAgentObject.Request.anonymous","com.azure.ai.agents.models.UserProfileMemoryItem":"Azure.AI.Projects.UserProfileMemoryItem","com.azure.ai.agents.models.VersionIndicator":"Azure.AI.Projects.VersionIndicator","com.azure.ai.agents.models.VersionIndicatorType":"Azure.AI.Projects.VersionIndicatorType","com.azure.ai.agents.models.VersionRefIndicator":"Azure.AI.Projects.VersionRefIndicator","com.azure.ai.agents.models.VersionSelectionRule":"Azure.AI.Projects.VersionSelectionRule","com.azure.ai.agents.models.VersionSelector":"Azure.AI.Projects.VersionSelector","com.azure.ai.agents.models.VersionSelectorType":"Azure.AI.Projects.VersionSelectorType","com.azure.ai.agents.models.VoiceAgentAudioConfig":"Azure.AI.Projects.VoiceAgentAudioConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfig":"Azure.AI.Projects.VoiceAgentAudioInputConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfigTranscriptionDelay":"Azure.AI.Projects.VoiceAgentAudioInputConfig.transcription.delay.anonymous","com.azure.ai.agents.models.VoiceAgentAudioOutputConfig":"Azure.AI.Projects.VoiceAgentAudioOutputConfig","com.azure.ai.agents.models.VoiceAgentAudioTimestampType":"Azure.AI.Projects.VoiceAgentAudioTimestampType","com.azure.ai.agents.models.VoiceAgentAvatarConfig":"Azure.AI.Projects.VoiceAgentAvatarConfig","com.azure.ai.agents.models.VoiceAgentAvatarOutputProtocol":"Azure.AI.Projects.VoiceAgentAvatarOutputProtocol","com.azure.ai.agents.models.VoiceAgentAvatarScene":"Azure.AI.Projects.VoiceAgentAvatarScene","com.azure.ai.agents.models.VoiceAgentAvatarType":"Azure.AI.Projects.VoiceAgentAvatarType","com.azure.ai.agents.models.VoiceAgentAvatarVideoBackground":"Azure.AI.Projects.VoiceAgentAvatarVideoBackground","com.azure.ai.agents.models.VoiceAgentAvatarVideoCrop":"Azure.AI.Projects.VoiceAgentAvatarVideoCrop","com.azure.ai.agents.models.VoiceAgentAvatarVideoParams":"Azure.AI.Projects.VoiceAgentAvatarVideoParams","com.azure.ai.agents.models.VoiceAgentAvatarVideoResolution":"Azure.AI.Projects.VoiceAgentAvatarVideoResolution","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadEnTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadEnTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadMultilingualTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadMultilingualTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentDefinition":"Azure.AI.Projects.VoiceAgentDefinition","com.azure.ai.agents.models.VoiceAgentEchoCancellation":"Azure.AI.Projects.VoiceAgentEchoCancellation","com.azure.ai.agents.models.VoiceAgentEchoCancellationReferenceSource":"Azure.AI.Projects.VoiceAgentEchoCancellationReferenceSource","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetection":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetection","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetectionModel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetectionModel","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceThresholdLevel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceThresholdLevel","com.azure.ai.agents.models.VoiceAgentFunctionTool":"Azure.AI.Projects.VoiceAgentFunctionTool","com.azure.ai.agents.models.VoiceAgentGreetingConfig":"Azure.AI.Projects.VoiceAgentGreetingConfig","com.azure.ai.agents.models.VoiceAgentInputTranscription":"Azure.AI.Projects.VoiceAgentInputTranscription","com.azure.ai.agents.models.VoiceAgentInputTranscriptionModel":"Azure.AI.Projects.VoiceAgentInputTranscriptionModel","com.azure.ai.agents.models.VoiceAgentInterimResponseConfig":"Azure.AI.Projects.VoiceAgentInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentInterimResponseTrigger":"Azure.AI.Projects.VoiceAgentInterimResponseTrigger","com.azure.ai.agents.models.VoiceAgentLlmGeneratedGreetingConfig":"Azure.AI.Projects.VoiceAgentLlmGeneratedGreetingConfig","com.azure.ai.agents.models.VoiceAgentLlmInterimResponseConfig":"Azure.AI.Projects.VoiceAgentLlmInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentMcpTool":"Azure.AI.Projects.VoiceAgentMcpTool","com.azure.ai.agents.models.VoiceAgentNoiseReduction":"Azure.AI.Projects.VoiceAgentNoiseReduction","com.azure.ai.agents.models.VoiceAgentNoiseReductionType":"Azure.AI.Projects.VoiceAgentNoiseReductionType","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetectionEagerness":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection.eagerness.anonymous","com.azure.ai.agents.models.VoiceAgentServerVadTurnDetection":"Azure.AI.Projects.VoiceAgentServerVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSessionIncludeOption":"Azure.AI.Projects.VoiceAgentSessionIncludeOption","com.azure.ai.agents.models.VoiceAgentStaticInterimResponseConfig":"Azure.AI.Projects.VoiceAgentStaticInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentSystemTool":"Azure.AI.Projects.VoiceAgentSystemTool","com.azure.ai.agents.models.VoiceAgentSystemToolName":"Azure.AI.Projects.VoiceAgentSystemToolName","com.azure.ai.agents.models.VoiceAgentTemplateGreetingConfig":"Azure.AI.Projects.VoiceAgentTemplateGreetingConfig","com.azure.ai.agents.models.VoiceAgentTool":"Azure.AI.Projects.VoiceAgentTool","com.azure.ai.agents.models.VoiceAgentToolResponseScheduling":"Azure.AI.Projects.VoiceAgentToolResponseScheduling","com.azure.ai.agents.models.VoiceAgentToolboxTool":"Azure.AI.Projects.VoiceAgentToolboxTool","com.azure.ai.agents.models.VoiceAgentTurnDetectionConfig":"Azure.AI.Projects.VoiceAgentTurnDetectionConfig","com.azure.ai.agents.models.VoiceAgentTurnDetectionType":"Azure.AI.Projects.VoiceAgentTurnDetectionType","com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol":"Azure.AI.Projects.VoiceAgentWebSocketSubprotocol","com.azure.ai.agents.models.VoiceAudioCodec":"Azure.AI.Projects.VoiceAudioCodec","com.azure.ai.agents.models.VoiceAudioContainerFormat":"Azure.AI.Projects.VoiceAudioContainerFormat","com.azure.ai.agents.models.VoiceAudioRole":"Azure.AI.Projects.VoiceAudioRole","com.azure.ai.agents.models.VoiceConversation":"Azure.AI.Projects.VoiceConversation","com.azure.ai.agents.models.VoiceConversationStatus":"Azure.AI.Projects.VoiceConversationStatus","com.azure.ai.agents.models.VoiceItemAudioResponse":"Azure.AI.Projects.VoiceItemAudioResponse","com.azure.ai.agents.models.VoiceModelType":"Azure.AI.Projects.VoiceModelType","com.azure.ai.agents.models.VoiceOutputModality":"Azure.AI.Projects.VoiceOutputModality","com.azure.ai.agents.models.VoiceRecordingChannelLayout":"Azure.AI.Projects.VoiceRecordingChannelLayout","com.azure.ai.agents.models.VoiceRecordingResponse":"Azure.AI.Projects.VoiceRecordingResponse","com.azure.ai.agents.models.VoiceResponse":"Azure.AI.Projects.VoiceResponse","com.azure.ai.agents.models.VoiceResponseAudio":"Azure.AI.Projects.VoiceResponseAudio","com.azure.ai.agents.models.VoiceResponseAudioOutput":"Azure.AI.Projects.VoiceResponseAudioOutput","com.azure.ai.agents.models.VoiceResponseBase":"Azure.AI.Projects.VoiceResponseBase","com.azure.ai.agents.models.VoiceResponseBaseObject":null,"com.azure.ai.agents.models.VoiceResponseBaseOutputModality":"Azure.AI.Projects.VoiceResponseBase.output_modality.anonymous","com.azure.ai.agents.models.VoiceResponseBaseStatus":"Azure.AI.Projects.VoiceResponseBase.status.anonymous","com.azure.ai.agents.models.VoiceType":"Azure.AI.Projects.VoiceType","com.azure.ai.agents.models.WebIqPreviewTool":"Azure.AI.Projects.WebIQPreviewTool","com.azure.ai.agents.models.WebIqPreviewToolboxTool":"Azure.AI.Projects.WebIQPreviewToolboxTool","com.azure.ai.agents.models.WebSearchConfiguration":"Azure.AI.Projects.WebSearchConfiguration","com.azure.ai.agents.models.WebSearchPreviewTool":"OpenAI.WebSearchPreviewTool","com.azure.ai.agents.models.WebSearchTool":"OpenAI.WebSearchTool","com.azure.ai.agents.models.WebSearchToolFilters":"OpenAI.WebSearchToolFilters","com.azure.ai.agents.models.WebSearchToolSearchContextSize":"WebSearchToolSearchContextSizeExpandable","com.azure.ai.agents.models.WebSearchToolboxTool":"Azure.AI.Projects.WebSearchToolboxTool","com.azure.ai.agents.models.WorkIqPreviewTool":"Azure.AI.Projects.WorkIQPreviewTool","com.azure.ai.agents.models.WorkIqPreviewToolboxTool":"Azure.AI.Projects.WorkIQPreviewToolboxTool","com.azure.ai.agents.models.WorkflowAgentDefinition":"Azure.AI.Projects.WorkflowAgentDefinition"},"generatedFiles":["src/main/java/com/azure/ai/agents/AgentsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentsClient.java","src/main/java/com/azure/ai/agents/AgentsClientBuilder.java","src/main/java/com/azure/ai/agents/AgentsServiceVersion.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java","src/main/java/com/azure/ai/agents/BetaAgentsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentsClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresAsyncClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java","src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java","src/main/java/com/azure/ai/agents/ToolboxesClient.java","src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaMemoryStoresImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java","src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/agents/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/PollingUtils.java","src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java","src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/ApproximateLocation.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromCodeContent.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateSessionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateToolboxVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java","src/main/java/com/azure/ai/agents/implementation/models/ListMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java","src/main/java/com/azure/ai/agents/implementation/models/SearchMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxInput.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxRequest.java","src/main/java/com/azure/ai/agents/implementation/models/WebSearchApproximateLocation.java","src/main/java/com/azure/ai/agents/implementation/models/package-info.java","src/main/java/com/azure/ai/agents/implementation/package-info.java","src/main/java/com/azure/ai/agents/models/A2APreviewTool.java","src/main/java/com/azure/ai/agents/models/A2APreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/A2AProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/A2AProtocolVersion.java","src/main/java/com/azure/ai/agents/models/A2ATool.java","src/main/java/com/azure/ai/agents/models/A2AToolCall.java","src/main/java/com/azure/ai/agents/models/A2AToolCallOutput.java","src/main/java/com/azure/ai/agents/models/A2AToolboxTool.java","src/main/java/com/azure/ai/agents/models/AISearchIndexResource.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReference.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReferenceType.java","src/main/java/com/azure/ai/agents/models/AgentCard.java","src/main/java/com/azure/ai/agents/models/AgentCardSkill.java","src/main/java/com/azure/ai/agents/models/AgentDefinition.java","src/main/java/com/azure/ai/agents/models/AgentDetails.java","src/main/java/com/azure/ai/agents/models/AgentDetailsVersions.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationSchemeType.java","src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java","src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java","src/main/java/com/azure/ai/agents/models/AgentIdentity.java","src/main/java/com/azure/ai/agents/models/AgentIdentityStatus.java","src/main/java/com/azure/ai/agents/models/AgentKind.java","src/main/java/com/azure/ai/agents/models/AgentObjectType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationCandidate.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetCriterion.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInputType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationInlineDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJob.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobListItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobResult.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationOptions.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationReferenceDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentReference.java","src/main/java/com/azure/ai/agents/models/AgentSessionResource.java","src/main/java/com/azure/ai/agents/models/AgentSessionStatus.java","src/main/java/com/azure/ai/agents/models/AgentState.java","src/main/java/com/azure/ai/agents/models/AgentStateSource.java","src/main/java/com/azure/ai/agents/models/AgentVersionDetails.java","src/main/java/com/azure/ai/agents/models/AgentVersionStatus.java","src/main/java/com/azure/ai/agents/models/ApiError.java","src/main/java/com/azure/ai/agents/models/ApplyPatchToolParameter.java","src/main/java/com/azure/ai/agents/models/AutoCodeInterpreterToolParameter.java","src/main/java/com/azure/ai/agents/models/AzureAISearchQueryType.java","src/main/java/com/azure/ai/agents/models/AzureAISearchTool.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCall.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolResource.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java","src/main/java/com/azure/ai/agents/models/AzureFunctionBinding.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinitionDetails.java","src/main/java/com/azure/ai/agents/models/AzureFunctionStorageQueue.java","src/main/java/com/azure/ai/agents/models/AzureFunctionTool.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCall.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureUserSecurityContext.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCall.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingTool.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BotServiceAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceRbacAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceTenantAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCall.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolConnectionParameters.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolParameters.java","src/main/java/com/azure/ai/agents/models/CallableToolAllowedCaller.java","src/main/java/com/azure/ai/agents/models/CaptureStructuredOutputsTool.java","src/main/java/com/azure/ai/agents/models/ChatSummaryMemoryItem.java","src/main/java/com/azure/ai/agents/models/CodeConfiguration.java","src/main/java/com/azure/ai/agents/models/CodeDependencyResolution.java","src/main/java/com/azure/ai/agents/models/CodeFileDetails.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterTool.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterToolboxTool.java","src/main/java/com/azure/ai/agents/models/ComputerEnvironment.java","src/main/java/com/azure/ai/agents/models/ComputerTool.java","src/main/java/com/azure/ai/agents/models/ComputerUsePreviewTool.java","src/main/java/com/azure/ai/agents/models/ContainerAutoParameter.java","src/main/java/com/azure/ai/agents/models/ContainerConfiguration.java","src/main/java/com/azure/ai/agents/models/ContainerMemoryLimit.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyAllowlistParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDisabledParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDomainSecretParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParamType.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParameter.java","src/main/java/com/azure/ai/agents/models/ContainerSkill.java","src/main/java/com/azure/ai/agents/models/ContainerSkillType.java","src/main/java/com/azure/ai/agents/models/ConversationResource.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeContent.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeMetadata.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java","src/main/java/com/azure/ai/agents/models/CustomGrammarFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomTextFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormat.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormatType.java","src/main/java/com/azure/ai/agents/models/CustomToolParameter.java","src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java","src/main/java/com/azure/ai/agents/models/EntraAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/EvaluationLevel.java","src/main/java/com/azure/ai/agents/models/ExternalAgentDefinition.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCall.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCallOutput.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolParameters.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/FileSearchTool.java","src/main/java/com/azure/ai/agents/models/FileSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/FixedRatioVersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironment.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironmentType.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentContainerReferenceParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentLocalEnvironmentParameter.java","src/main/java/com/azure/ai/agents/models/FunctionTool.java","src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java","src/main/java/com/azure/ai/agents/models/GrammarSyntax.java","src/main/java/com/azure/ai/agents/models/HeaderTelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java","src/main/java/com/azure/ai/agents/models/HybridSearchOptions.java","src/main/java/com/azure/ai/agents/models/ImageGenActionEnum.java","src/main/java/com/azure/ai/agents/models/ImageGenTool.java","src/main/java/com/azure/ai/agents/models/ImageGenToolBackground.java","src/main/java/com/azure/ai/agents/models/ImageGenToolInputImageMask.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModel.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModeration.java","src/main/java/com/azure/ai/agents/models/ImageGenToolOutputFormat.java","src/main/java/com/azure/ai/agents/models/ImageGenToolQuality.java","src/main/java/com/azure/ai/agents/models/ImageGenToolSize.java","src/main/java/com/azure/ai/agents/models/IncludeEnum.java","src/main/java/com/azure/ai/agents/models/InlineSkillParameter.java","src/main/java/com/azure/ai/agents/models/InlineSkillSourceParameter.java","src/main/java/com/azure/ai/agents/models/InputFidelity.java","src/main/java/com/azure/ai/agents/models/InvocationsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/InvocationsWsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/JobStatus.java","src/main/java/com/azure/ai/agents/models/ListMemoriesOptions.java","src/main/java/com/azure/ai/agents/models/LocalShellToolParameter.java","src/main/java/com/azure/ai/agents/models/LocalSkillParameter.java","src/main/java/com/azure/ai/agents/models/ManagedAgentIdentityBlueprintReference.java","src/main/java/com/azure/ai/agents/models/McpListToolsTool.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java","src/main/java/com/azure/ai/agents/models/McpProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/McpTool.java","src/main/java/com/azure/ai/agents/models/McpToolConnectorId.java","src/main/java/com/azure/ai/agents/models/McpToolFilter.java","src/main/java/com/azure/ai/agents/models/McpToolRequireApproval.java","src/main/java/com/azure/ai/agents/models/McpToolboxTool.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCallOutput.java","src/main/java/com/azure/ai/agents/models/MemoryItem.java","src/main/java/com/azure/ai/agents/models/MemoryItemKind.java","src/main/java/com/azure/ai/agents/models/MemoryOperation.java","src/main/java/com/azure/ai/agents/models/MemoryOperationKind.java","src/main/java/com/azure/ai/agents/models/MemorySearchItem.java","src/main/java/com/azure/ai/agents/models/MemorySearchOptions.java","src/main/java/com/azure/ai/agents/models/MemorySearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/MemorySearchToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultOptions.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDetails.java","src/main/java/com/azure/ai/agents/models/MemoryStoreKind.java","src/main/java/com/azure/ai/agents/models/MemoryStoreObjectType.java","src/main/java/com/azure/ai/agents/models/MemoryStoreOperationUsage.java","src/main/java/com/azure/ai/agents/models/MemoryStoreSearchResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateCompletedResult.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateStatus.java","src/main/java/com/azure/ai/agents/models/Metadata.java","src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java","src/main/java/com/azure/ai/agents/models/MicrosoftFabricPreviewTool.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java","src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java","src/main/java/com/azure/ai/agents/models/ModelRouterMode.java","src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java","src/main/java/com/azure/ai/agents/models/NamespaceTool.java","src/main/java/com/azure/ai/agents/models/OpenApiAnonymousAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthType.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinitionFunction.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiTool.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCall.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCallOutput.java","src/main/java/com/azure/ai/agents/models/OpenApiToolboxTool.java","src/main/java/com/azure/ai/agents/models/OptimizedAgentIdentifier.java","src/main/java/com/azure/ai/agents/models/OtlpTelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/PageOrder.java","src/main/java/com/azure/ai/agents/models/ProceduralMemoryItem.java","src/main/java/com/azure/ai/agents/models/ProgrammaticToolCallingParameter.java","src/main/java/com/azure/ai/agents/models/PromotionInfo.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionTextOptions.java","src/main/java/com/azure/ai/agents/models/ProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/ProtocolVersionRecord.java","src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java","src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java","src/main/java/com/azure/ai/agents/models/RaiConfig.java","src/main/java/com/azure/ai/agents/models/RankerVersionType.java","src/main/java/com/azure/ai/agents/models/RankingOptions.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java","src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPHTTPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java","src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java","src/main/java/com/azure/ai/agents/models/Reasoning.java","src/main/java/com/azure/ai/agents/models/ReasoningEffort.java","src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java","src/main/java/com/azure/ai/agents/models/ReminderPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ResponseFormatJsonSchemaInner.java","src/main/java/com/azure/ai/agents/models/ResponseUsageInputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponseUsageOutputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponsesProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java","src/main/java/com/azure/ai/agents/models/SearchContentType.java","src/main/java/com/azure/ai/agents/models/SearchContextSize.java","src/main/java/com/azure/ai/agents/models/SessionConfiguration.java","src/main/java/com/azure/ai/agents/models/SessionDirectoryEntry.java","src/main/java/com/azure/ai/agents/models/SessionFileWriteResult.java","src/main/java/com/azure/ai/agents/models/SessionLogEvent.java","src/main/java/com/azure/ai/agents/models/SessionLogEventType.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolParameters.java","src/main/java/com/azure/ai/agents/models/SharepointPreviewTool.java","src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java","src/main/java/com/azure/ai/agents/models/SkillReferenceParameter.java","src/main/java/com/azure/ai/agents/models/StructuredInputDefinition.java","src/main/java/com/azure/ai/agents/models/StructuredOutputDefinition.java","src/main/java/com/azure/ai/agents/models/TelemetryConfig.java","src/main/java/com/azure/ai/agents/models/TelemetryDataKind.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuthType.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointKind.java","src/main/java/com/azure/ai/agents/models/TelemetryTransportProtocol.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfiguration.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatJsonObject.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatText.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationType.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatJsonSchema.java","src/main/java/com/azure/ai/agents/models/Tool.java","src/main/java/com/azure/ai/agents/models/ToolCallStatus.java","src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java","src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java","src/main/java/com/azure/ai/agents/models/ToolConfig.java","src/main/java/com/azure/ai/agents/models/ToolProjectConnection.java","src/main/java/com/azure/ai/agents/models/ToolSearchExecutionType.java","src/main/java/com/azure/ai/agents/models/ToolSearchTool.java","src/main/java/com/azure/ai/agents/models/ToolSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxDetails.java","src/main/java/com/azure/ai/agents/models/ToolboxPolicies.java","src/main/java/com/azure/ai/agents/models/ToolboxSearchPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java","src/main/java/com/azure/ai/agents/models/ToolboxSkill.java","src/main/java/com/azure/ai/agents/models/ToolboxSkillReference.java","src/main/java/com/azure/ai/agents/models/ToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxVersionDetails.java","src/main/java/com/azure/ai/agents/models/UpdateAgentDetailsOptions.java","src/main/java/com/azure/ai/agents/models/UserProfileMemoryItem.java","src/main/java/com/azure/ai/agents/models/VersionIndicator.java","src/main/java/com/azure/ai/agents/models/VersionIndicatorType.java","src/main/java/com/azure/ai/agents/models/VersionRefIndicator.java","src/main/java/com/azure/ai/agents/models/VersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/VersionSelector.java","src/main/java/com/azure/ai/agents/models/VersionSelectorType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java","src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java","src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java","src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java","src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java","src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java","src/main/java/com/azure/ai/agents/models/VoiceConversation.java","src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java","src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java","src/main/java/com/azure/ai/agents/models/VoiceModelType.java","src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java","src/main/java/com/azure/ai/agents/models/VoiceType.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WebSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebSearchTool.java","src/main/java/com/azure/ai/agents/models/WebSearchToolFilters.java","src/main/java/com/azure/ai/agents/models/WebSearchToolSearchContextSize.java","src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkflowAgentDefinition.java","src/main/java/com/azure/ai/agents/models/package-info.java","src/main/java/com/azure/ai/agents/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file +{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"5e37d29056d2","crossLanguageDefinitions":{"com.azure.ai.agents.AgentsAsyncClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsAsyncClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsAsyncClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsAsyncClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsAsyncClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsAsyncClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClientBuilder":"Azure.AI.Projects","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentsAsyncClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaAgentsClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaMemoryStoresAsyncClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.ToolboxesAsyncClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesAsyncClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesAsyncClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys":"Azure.AI.Projects.AgentDefinitionOptInKeys","com.azure.ai.agents.implementation.models.CreateAgentFromCodeContent":"Azure.AI.Projects.CreateAgentFromCodeContent","com.azure.ai.agents.implementation.models.CreateAgentFromManifestRequest":"Azure.AI.Projects.createAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentOptions":null,"com.azure.ai.agents.implementation.models.CreateAgentRequest":"Azure.AI.Projects.createAgent.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest":"Azure.AI.Projects.createAgentVersionFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionRequest":"Azure.AI.Projects.createAgentVersion.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryRequest":"Azure.AI.Projects.createMemory.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryStoreRequest":"Azure.AI.Projects.createMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.CreateSessionRequest":"Azure.AI.Projects.createSession.Request.anonymous","com.azure.ai.agents.implementation.models.CreateToolboxVersionRequest":"Azure.AI.Projects.createToolboxVersion.Request.anonymous","com.azure.ai.agents.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest":"Azure.AI.Projects.getMicrosoft365AppPackage.Request.anonymous","com.azure.ai.agents.implementation.models.ListMemoriesRequest":"Azure.AI.Projects.listMemories.Request.anonymous","com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request":"Azure.AI.Projects.publishAgentToMicrosoft365.Request.anonymous","com.azure.ai.agents.implementation.models.SearchMemoriesRequest":"Azure.AI.Projects.searchMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest":"Azure.AI.Projects.updateAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentRequest":"Azure.AI.Projects.updateAgent.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoriesRequest":"Azure.AI.Projects.updateMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryRequest":"Azure.AI.Projects.updateMemory.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryStoreRequest":"Azure.AI.Projects.updateMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateToolboxInput":"Azure.AI.Projects.UpdateToolboxRequest","com.azure.ai.agents.implementation.models.UpdateToolboxRequest":"Azure.AI.Projects.updateToolbox.Request.anonymous","com.azure.ai.agents.models.A2APreviewTool":"Azure.AI.Projects.A2APreviewTool","com.azure.ai.agents.models.A2APreviewToolboxTool":"Azure.AI.Projects.A2APreviewToolboxTool","com.azure.ai.agents.models.A2AProtocolConfiguration":"Azure.AI.Projects.A2AProtocolConfiguration","com.azure.ai.agents.models.A2AProtocolVersion":"Azure.AI.Projects.A2AProtocolVersion","com.azure.ai.agents.models.A2ATool":"Azure.AI.Projects.A2ATool","com.azure.ai.agents.models.A2AToolCall":"Azure.AI.Projects.A2AToolCall","com.azure.ai.agents.models.A2AToolCallOutput":"Azure.AI.Projects.A2AToolCallOutput","com.azure.ai.agents.models.A2AToolboxTool":"Azure.AI.Projects.A2AToolboxTool","com.azure.ai.agents.models.AISearchIndexResource":"Azure.AI.Projects.AISearchIndexResource","com.azure.ai.agents.models.ActivityProtocolAccessBoundary":"Azure.AI.Projects.ActivityProtocolAccessBoundary","com.azure.ai.agents.models.ActivityProtocolConfiguration":"Azure.AI.Projects.ActivityProtocolConfiguration","com.azure.ai.agents.models.AgentBlueprintReference":"Azure.AI.Projects.AgentBlueprintReference","com.azure.ai.agents.models.AgentBlueprintReferenceType":"Azure.AI.Projects.AgentBlueprintReferenceType","com.azure.ai.agents.models.AgentCard":"Azure.AI.Projects.AgentCard","com.azure.ai.agents.models.AgentCardSkill":"Azure.AI.Projects.AgentCardSkill","com.azure.ai.agents.models.AgentDefinition":"Azure.AI.Projects.AgentDefinition","com.azure.ai.agents.models.AgentDetails":"Azure.AI.Projects.AgentObject","com.azure.ai.agents.models.AgentDetailsVersions":"Azure.AI.Projects.AgentObject.versions.anonymous","com.azure.ai.agents.models.AgentEndpointAuthorizationScheme":"Azure.AI.Projects.AgentEndpointAuthorizationScheme","com.azure.ai.agents.models.AgentEndpointAuthorizationSchemeType":"Azure.AI.Projects.AgentEndpointAuthorizationSchemeType","com.azure.ai.agents.models.AgentEndpointConfig":"Azure.AI.Projects.AgentEndpointConfig","com.azure.ai.agents.models.AgentEndpointProtocol":"Azure.AI.Projects.AgentEndpointProtocol","com.azure.ai.agents.models.AgentIdentity":"Azure.AI.Projects.AgentIdentity","com.azure.ai.agents.models.AgentIdentityStatus":"Azure.AI.Projects.AgentIdentityStatus","com.azure.ai.agents.models.AgentKind":"Azure.AI.Projects.AgentKind","com.azure.ai.agents.models.AgentObjectType":"Azure.AI.Projects.AgentObjectType","com.azure.ai.agents.models.AgentOptimizationCandidate":"Azure.AI.Projects.AgentOptimizationCandidate","com.azure.ai.agents.models.AgentOptimizationDatasetCriterion":"Azure.AI.Projects.AgentOptimizationDatasetCriterion","com.azure.ai.agents.models.AgentOptimizationDatasetInput":"Azure.AI.Projects.AgentOptimizationDatasetInput","com.azure.ai.agents.models.AgentOptimizationDatasetInputType":"Azure.AI.Projects.AgentOptimizationDatasetInputType","com.azure.ai.agents.models.AgentOptimizationDatasetItem":"Azure.AI.Projects.AgentOptimizationDatasetItem","com.azure.ai.agents.models.AgentOptimizationEvaluatorRef":"Azure.AI.Projects.AgentOptimizationEvaluatorRef","com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput":"Azure.AI.Projects.AgentOptimizationInlineDatasetInput","com.azure.ai.agents.models.AgentOptimizationJob":"Azure.AI.Projects.AgentOptimizationJob","com.azure.ai.agents.models.AgentOptimizationJobInputs":"Azure.AI.Projects.AgentOptimizationJobInputs","com.azure.ai.agents.models.AgentOptimizationJobListItem":"Azure.AI.Projects.AgentOptimizationJobListItem","com.azure.ai.agents.models.AgentOptimizationJobProgress":"Azure.AI.Projects.AgentOptimizationJobProgress","com.azure.ai.agents.models.AgentOptimizationJobResult":"Azure.AI.Projects.AgentOptimizationJobResult","com.azure.ai.agents.models.AgentOptimizationOptions":"Azure.AI.Projects.AgentOptimizationOptions","com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput":"Azure.AI.Projects.AgentOptimizationReferenceDatasetInput","com.azure.ai.agents.models.AgentReference":"Azure.AI.Projects.AgentReference","com.azure.ai.agents.models.AgentSessionResource":"Azure.AI.Projects.AgentSessionResource","com.azure.ai.agents.models.AgentSessionStatus":"Azure.AI.Projects.AgentSessionStatus","com.azure.ai.agents.models.AgentState":"Azure.AI.Projects.AgentState","com.azure.ai.agents.models.AgentStateSource":"Azure.AI.Projects.AgentStateSource","com.azure.ai.agents.models.AgentVersionDetails":"Azure.AI.Projects.AgentVersionObject","com.azure.ai.agents.models.AgentVersionStatus":"Azure.AI.Projects.AgentVersionStatus","com.azure.ai.agents.models.ApiError":"OpenAI.Error","com.azure.ai.agents.models.ApplyPatchToolParameter":"OpenAI.ApplyPatchToolParam","com.azure.ai.agents.models.ApproximateLocation":"OpenAI.ApproximateLocation","com.azure.ai.agents.models.AutoCodeInterpreterToolParameter":"OpenAI.AutoCodeInterpreterToolParam","com.azure.ai.agents.models.AzureAISearchQueryType":"Azure.AI.Projects.AzureAISearchQueryType","com.azure.ai.agents.models.AzureAISearchTool":"Azure.AI.Projects.AzureAISearchTool","com.azure.ai.agents.models.AzureAISearchToolCall":"Azure.AI.Projects.AzureAISearchToolCall","com.azure.ai.agents.models.AzureAISearchToolCallOutput":"Azure.AI.Projects.AzureAISearchToolCallOutput","com.azure.ai.agents.models.AzureAISearchToolResource":"Azure.AI.Projects.AzureAISearchToolResource","com.azure.ai.agents.models.AzureAISearchToolboxTool":"Azure.AI.Projects.AzureAISearchToolboxTool","com.azure.ai.agents.models.AzureCreateResponseDetails":"Azure.AI.Projects.AzureCreateResponseDetails","com.azure.ai.agents.models.AzureCreateResponseOptions":"Azure.AI.Projects.AzureCreateResponseOptions","com.azure.ai.agents.models.AzureFunctionBinding":"Azure.AI.Projects.AzureFunctionBinding","com.azure.ai.agents.models.AzureFunctionDefinition":"Azure.AI.Projects.AzureFunctionDefinition","com.azure.ai.agents.models.AzureFunctionDefinitionDetails":"Azure.AI.Projects.AzureFunctionDefinition.function.anonymous","com.azure.ai.agents.models.AzureFunctionStorageQueue":"Azure.AI.Projects.AzureFunctionStorageQueue","com.azure.ai.agents.models.AzureFunctionTool":"Azure.AI.Projects.AzureFunctionTool","com.azure.ai.agents.models.AzureFunctionToolCall":"Azure.AI.Projects.AzureFunctionToolCall","com.azure.ai.agents.models.AzureFunctionToolCallOutput":"Azure.AI.Projects.AzureFunctionToolCallOutput","com.azure.ai.agents.models.AzureUserSecurityContext":"Azure.AI.Projects.AzureUserSecurityContext","com.azure.ai.agents.models.BingCustomSearchConfiguration":"Azure.AI.Projects.BingCustomSearchConfiguration","com.azure.ai.agents.models.BingCustomSearchPreviewTool":"Azure.AI.Projects.BingCustomSearchPreviewTool","com.azure.ai.agents.models.BingCustomSearchToolCall":"Azure.AI.Projects.BingCustomSearchToolCall","com.azure.ai.agents.models.BingCustomSearchToolCallOutput":"Azure.AI.Projects.BingCustomSearchToolCallOutput","com.azure.ai.agents.models.BingCustomSearchToolParameters":"Azure.AI.Projects.BingCustomSearchToolParameters","com.azure.ai.agents.models.BingGroundingSearchConfiguration":"Azure.AI.Projects.BingGroundingSearchConfiguration","com.azure.ai.agents.models.BingGroundingSearchToolParameters":"Azure.AI.Projects.BingGroundingSearchToolParameters","com.azure.ai.agents.models.BingGroundingTool":"Azure.AI.Projects.BingGroundingTool","com.azure.ai.agents.models.BingGroundingToolCall":"Azure.AI.Projects.BingGroundingToolCall","com.azure.ai.agents.models.BingGroundingToolCallOutput":"Azure.AI.Projects.BingGroundingToolCallOutput","com.azure.ai.agents.models.BotServiceAuthorizationScheme":"Azure.AI.Projects.BotServiceAuthorizationScheme","com.azure.ai.agents.models.BotServiceRbacAuthorizationScheme":"Azure.AI.Projects.BotServiceRbacAuthorizationScheme","com.azure.ai.agents.models.BotServiceTenantAuthorizationScheme":"Azure.AI.Projects.BotServiceTenantAuthorizationScheme","com.azure.ai.agents.models.BrowserAutomationPreviewTool":"Azure.AI.Projects.BrowserAutomationPreviewTool","com.azure.ai.agents.models.BrowserAutomationPreviewToolboxTool":"Azure.AI.Projects.BrowserAutomationPreviewToolboxTool","com.azure.ai.agents.models.BrowserAutomationToolCall":"Azure.AI.Projects.BrowserAutomationToolCall","com.azure.ai.agents.models.BrowserAutomationToolCallOutput":"Azure.AI.Projects.BrowserAutomationToolCallOutput","com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters":"Azure.AI.Projects.BrowserAutomationToolConnectionParameters","com.azure.ai.agents.models.BrowserAutomationToolParameters":"Azure.AI.Projects.BrowserAutomationToolParameters","com.azure.ai.agents.models.CallableToolAllowedCaller":"OpenAI.CallableToolAllowedCaller","com.azure.ai.agents.models.CaptureStructuredOutputsTool":"Azure.AI.Projects.CaptureStructuredOutputsTool","com.azure.ai.agents.models.ChatSummaryMemoryItem":"Azure.AI.Projects.ChatSummaryMemoryItem","com.azure.ai.agents.models.CodeConfiguration":"Azure.AI.Projects.CodeConfiguration","com.azure.ai.agents.models.CodeDependencyResolution":"Azure.AI.Projects.CodeDependencyResolution","com.azure.ai.agents.models.CodeFileDetails":null,"com.azure.ai.agents.models.CodeInterpreterTool":"OpenAI.CodeInterpreterTool","com.azure.ai.agents.models.CodeInterpreterToolboxTool":"Azure.AI.Projects.CodeInterpreterToolboxTool","com.azure.ai.agents.models.ComputerEnvironment":"ComputerEnvironmentExpandable","com.azure.ai.agents.models.ComputerTool":"OpenAI.ComputerTool","com.azure.ai.agents.models.ComputerUsePreviewTool":"OpenAI.ComputerUsePreviewTool","com.azure.ai.agents.models.ContainerAutoParameter":"OpenAI.ContainerAutoParam","com.azure.ai.agents.models.ContainerConfiguration":"Azure.AI.Projects.ContainerConfiguration","com.azure.ai.agents.models.ContainerMemoryLimit":"ContainerMemoryLimitExpandable","com.azure.ai.agents.models.ContainerNetworkPolicyAllowlistParameter":"OpenAI.ContainerNetworkPolicyAllowlistParam","com.azure.ai.agents.models.ContainerNetworkPolicyDisabledParameter":"OpenAI.ContainerNetworkPolicyDisabledParam","com.azure.ai.agents.models.ContainerNetworkPolicyDomainSecretParameter":"OpenAI.ContainerNetworkPolicyDomainSecretParam","com.azure.ai.agents.models.ContainerNetworkPolicyParamType":"OpenAI.ContainerNetworkPolicyParamType","com.azure.ai.agents.models.ContainerNetworkPolicyParameter":"OpenAI.ContainerNetworkPolicyParam","com.azure.ai.agents.models.ContainerSkill":"OpenAI.ContainerSkill","com.azure.ai.agents.models.ContainerSkillType":"OpenAI.ContainerSkillType","com.azure.ai.agents.models.CreateAgentVersionFromCodeContent":"Azure.AI.Projects.CreateAgentVersionFromCodeContent","com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata":"Azure.AI.Projects.CreateAgentVersionFromCodeMetadata","com.azure.ai.agents.models.CreateAgentVersionInput":"Azure.AI.Projects.CreateAgentVersionRequest","com.azure.ai.agents.models.CreateAgentVersionOptions":null,"com.azure.ai.agents.models.CustomGrammarFormatParameter":"OpenAI.CustomGrammarFormatParam","com.azure.ai.agents.models.CustomTextFormatParameter":"OpenAI.CustomTextFormatParam","com.azure.ai.agents.models.CustomToolParamFormat":"OpenAI.CustomToolParamFormat","com.azure.ai.agents.models.CustomToolParamFormatType":"OpenAI.CustomToolParamFormatType","com.azure.ai.agents.models.CustomToolParameter":"OpenAI.CustomToolParam","com.azure.ai.agents.models.DigitalWorkerType":"Azure.AI.Projects.DigitalWorkerType","com.azure.ai.agents.models.EntraAuthorizationScheme":"Azure.AI.Projects.EntraAuthorizationScheme","com.azure.ai.agents.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.agents.models.ExternalAgentDefinition":"Azure.AI.Projects.ExternalAgentDefinition","com.azure.ai.agents.models.FabricDataAgentToolCall":"Azure.AI.Projects.FabricDataAgentToolCall","com.azure.ai.agents.models.FabricDataAgentToolCallOutput":"Azure.AI.Projects.FabricDataAgentToolCallOutput","com.azure.ai.agents.models.FabricDataAgentToolParameters":"Azure.AI.Projects.FabricDataAgentToolParameters","com.azure.ai.agents.models.FabricIqPreviewTool":"Azure.AI.Projects.FabricIQPreviewTool","com.azure.ai.agents.models.FabricIqPreviewToolboxTool":"Azure.AI.Projects.FabricIQPreviewToolboxTool","com.azure.ai.agents.models.FileSearchTool":"OpenAI.FileSearchTool","com.azure.ai.agents.models.FileSearchToolboxTool":"Azure.AI.Projects.FileSearchToolboxTool","com.azure.ai.agents.models.FixedRatioVersionSelectionRule":"Azure.AI.Projects.FixedRatioVersionSelectionRule","com.azure.ai.agents.models.FunctionShellToolParamEnvironment":"OpenAI.FunctionShellToolParamEnvironment","com.azure.ai.agents.models.FunctionShellToolParamEnvironmentType":"OpenAI.FunctionShellToolParamEnvironmentType","com.azure.ai.agents.models.FunctionShellToolParameter":"OpenAI.FunctionShellToolParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentContainerReferenceParameter":"OpenAI.FunctionShellToolParamEnvironmentContainerReferenceParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentLocalEnvironmentParameter":"OpenAI.FunctionShellToolParamEnvironmentLocalEnvironmentParam","com.azure.ai.agents.models.FunctionTool":"OpenAI.FunctionTool","com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions":null,"com.azure.ai.agents.models.GrammarSyntax":"GrammarSyntaxExpandable","com.azure.ai.agents.models.HeaderTelemetryEndpointAuth":"Azure.AI.Projects.HeaderTelemetryEndpointAuth","com.azure.ai.agents.models.HostedAgentDefinition":"Azure.AI.Projects.HostedAgentDefinition","com.azure.ai.agents.models.HybridSearchOptions":"OpenAI.HybridSearchOptions","com.azure.ai.agents.models.ImageGenActionEnum":"ImageGenActionEnumExpandable","com.azure.ai.agents.models.ImageGenTool":"OpenAI.ImageGenTool","com.azure.ai.agents.models.ImageGenToolBackground":"ImageGenToolBackgroundExpandable","com.azure.ai.agents.models.ImageGenToolInputImageMask":"OpenAI.ImageGenToolInputImageMask","com.azure.ai.agents.models.ImageGenToolModel":"OpenAI.ImageGenTool.model.anonymous","com.azure.ai.agents.models.ImageGenToolModeration":"ImageGenToolModerationExpandable","com.azure.ai.agents.models.ImageGenToolOutputFormat":"ImageGenToolOutputFormatExpandable","com.azure.ai.agents.models.ImageGenToolQuality":"ImageGenToolQualityExpandable","com.azure.ai.agents.models.ImageGenToolSize":"ImageGenToolSizeExpandable","com.azure.ai.agents.models.IncludeEnum":"OpenAI.IncludeEnum","com.azure.ai.agents.models.InlineSkillParameter":"OpenAI.InlineSkillParam","com.azure.ai.agents.models.InlineSkillSourceParameter":"OpenAI.InlineSkillSourceParam","com.azure.ai.agents.models.InputFidelity":"InputFidelityExpandable","com.azure.ai.agents.models.InvocationsProtocolConfiguration":"Azure.AI.Projects.InvocationsProtocolConfiguration","com.azure.ai.agents.models.InvocationsWsProtocolConfiguration":"Azure.AI.Projects.InvocationsWsProtocolConfiguration","com.azure.ai.agents.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.agents.models.ListMemoriesOptions":null,"com.azure.ai.agents.models.LocalShellToolParameter":"OpenAI.LocalShellToolParam","com.azure.ai.agents.models.LocalSkillParameter":"OpenAI.LocalSkillParam","com.azure.ai.agents.models.ManagedAgentIdentityBlueprintReference":"Azure.AI.Projects.ManagedAgentIdentityBlueprintReference","com.azure.ai.agents.models.McpListToolsTool":"OpenAI.MCPListToolsTool","com.azure.ai.agents.models.McpListToolsToolAnnotations":"OpenAI.MCPListToolsToolAnnotations","com.azure.ai.agents.models.McpListToolsToolInputSchema":"OpenAI.MCPListToolsToolInputSchema","com.azure.ai.agents.models.McpProtocolConfiguration":"Azure.AI.Projects.McpProtocolConfiguration","com.azure.ai.agents.models.McpTool":"OpenAI.MCPTool","com.azure.ai.agents.models.McpToolConnectorId":"McpToolConnectorIdExpandable","com.azure.ai.agents.models.McpToolFilter":"OpenAI.MCPToolFilter","com.azure.ai.agents.models.McpToolRequireApproval":"OpenAI.MCPToolRequireApproval","com.azure.ai.agents.models.McpToolboxTool":"Azure.AI.Projects.MCPToolboxTool","com.azure.ai.agents.models.MemoryCommandToolCall":"Azure.AI.Projects.MemoryCommandToolCall","com.azure.ai.agents.models.MemoryCommandToolCallOutput":"Azure.AI.Projects.MemoryCommandToolCallOutput","com.azure.ai.agents.models.MemoryItem":"Azure.AI.Projects.MemoryItem","com.azure.ai.agents.models.MemoryItemKind":"Azure.AI.Projects.MemoryItemKind","com.azure.ai.agents.models.MemoryOperation":"Azure.AI.Projects.MemoryOperation","com.azure.ai.agents.models.MemoryOperationKind":"Azure.AI.Projects.MemoryOperationKind","com.azure.ai.agents.models.MemorySearchItem":"Azure.AI.Projects.MemorySearchItem","com.azure.ai.agents.models.MemorySearchOptions":"Azure.AI.Projects.MemorySearchOptions","com.azure.ai.agents.models.MemorySearchPreviewTool":"Azure.AI.Projects.MemorySearchPreviewTool","com.azure.ai.agents.models.MemorySearchToolCall":"Azure.AI.Projects.MemorySearchToolCall","com.azure.ai.agents.models.MemoryStoreDefaultDefinition":"Azure.AI.Projects.MemoryStoreDefaultDefinition","com.azure.ai.agents.models.MemoryStoreDefaultOptions":"Azure.AI.Projects.MemoryStoreDefaultOptions","com.azure.ai.agents.models.MemoryStoreDefinition":"Azure.AI.Projects.MemoryStoreDefinition","com.azure.ai.agents.models.MemoryStoreDetails":"Azure.AI.Projects.MemoryStoreObject","com.azure.ai.agents.models.MemoryStoreKind":"Azure.AI.Projects.MemoryStoreKind","com.azure.ai.agents.models.MemoryStoreObjectType":"Azure.AI.Projects.MemoryStoreObjectType","com.azure.ai.agents.models.MemoryStoreOperationUsage":"Azure.AI.Projects.MemoryStoreOperationUsage","com.azure.ai.agents.models.MemoryStoreSearchResponse":"Azure.AI.Projects.MemoryStoreSearchResponse","com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult":"Azure.AI.Projects.MemoryStoreUpdateCompletedResult","com.azure.ai.agents.models.MemoryStoreUpdateResponse":"Azure.AI.Projects.MemoryStoreUpdateResponse","com.azure.ai.agents.models.MemoryStoreUpdateStatus":"Azure.AI.Projects.MemoryStoreUpdateStatus","com.azure.ai.agents.models.Microsoft365PermissionScopes":"Azure.AI.Projects.Microsoft365PermissionScopes","com.azure.ai.agents.models.Microsoft365PublishDefaults":"Azure.AI.Projects.Microsoft365PublishDefaults","com.azure.ai.agents.models.Microsoft365PublishResponse":"Azure.AI.Projects.Microsoft365PublishResponse","com.azure.ai.agents.models.Microsoft365PublishScope":"Azure.AI.Projects.Microsoft365PublishScope","com.azure.ai.agents.models.MicrosoftFabricPreviewTool":"Azure.AI.Projects.MicrosoftFabricPreviewTool","com.azure.ai.agents.models.ModelRouterAttempt":"Azure.AI.Projects.ModelRouterAttempt","com.azure.ai.agents.models.ModelRouterAttemptError":"Azure.AI.Projects.ModelRouterAttemptError","com.azure.ai.agents.models.ModelRouterAttemptResult":"Azure.AI.Projects.ModelRouterAttemptResult","com.azure.ai.agents.models.ModelRouterDetails":"Azure.AI.Projects.ModelRouterDetails","com.azure.ai.agents.models.ModelRouterMode":"Azure.AI.Projects.ModelRouterMode","com.azure.ai.agents.models.ModelSelectionDetails":"Azure.AI.Projects.ModelSelectionDetails","com.azure.ai.agents.models.NamespaceTool":"OpenAI.NamespaceToolParam","com.azure.ai.agents.models.OpenApiAnonymousAuthDetails":"Azure.AI.Projects.OpenApiAnonymousAuthDetails","com.azure.ai.agents.models.OpenApiAuthDetails":"Azure.AI.Projects.OpenApiAuthDetails","com.azure.ai.agents.models.OpenApiAuthType":"Azure.AI.Projects.OpenApiAuthType","com.azure.ai.agents.models.OpenApiFunctionDefinition":"Azure.AI.Projects.OpenApiFunctionDefinition","com.azure.ai.agents.models.OpenApiFunctionDefinitionFunction":"Azure.AI.Projects.OpenApiFunctionDefinition.function.anonymous","com.azure.ai.agents.models.OpenApiManagedAuthDetails":"Azure.AI.Projects.OpenApiManagedAuthDetails","com.azure.ai.agents.models.OpenApiManagedSecurityScheme":"Azure.AI.Projects.OpenApiManagedSecurityScheme","com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails":"Azure.AI.Projects.OpenApiProjectConnectionAuthDetails","com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme":"Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme","com.azure.ai.agents.models.OpenApiTool":"Azure.AI.Projects.OpenApiTool","com.azure.ai.agents.models.OpenApiToolCall":"Azure.AI.Projects.OpenApiToolCall","com.azure.ai.agents.models.OpenApiToolCallOutput":"Azure.AI.Projects.OpenApiToolCallOutput","com.azure.ai.agents.models.OpenApiToolboxTool":"Azure.AI.Projects.OpenApiToolboxTool","com.azure.ai.agents.models.OptimizedAgentIdentifier":"Azure.AI.Projects.OptimizedAgentIdentifier","com.azure.ai.agents.models.OtlpTelemetryEndpoint":"Azure.AI.Projects.OtlpTelemetryEndpoint","com.azure.ai.agents.models.PageOrder":"Azure.AI.Projects.PageOrder","com.azure.ai.agents.models.ProceduralMemoryItem":"Azure.AI.Projects.ProceduralMemoryItem","com.azure.ai.agents.models.ProgrammaticToolCallingParameter":"OpenAI.ProgrammaticToolCallingParam","com.azure.ai.agents.models.PromotionInfo":"Azure.AI.Projects.PromotionInfo","com.azure.ai.agents.models.PromptAgentDefinition":"Azure.AI.Projects.PromptAgentDefinition","com.azure.ai.agents.models.PromptAgentDefinitionReasoningContext":"Azure.AI.Projects.PromptAgentDefinition.reasoning.context.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningGenerateSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.generate_summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionTextOptions":"Azure.AI.Projects.PromptAgentDefinitionTextOptions","com.azure.ai.agents.models.ProtocolConfiguration":"Azure.AI.Projects.ProtocolConfiguration","com.azure.ai.agents.models.ProtocolVersionRecord":"Azure.AI.Projects.ProtocolVersionRecord","com.azure.ai.agents.models.PublishAgentToMicrosoft365Options":null,"com.azure.ai.agents.models.PublishApprovalStatus":"Azure.AI.Projects.PublishApprovalStatus","com.azure.ai.agents.models.RaiConfig":"Azure.AI.Projects.RaiConfig","com.azure.ai.agents.models.RankerVersionType":"RankerVersionTypeExpandable","com.azure.ai.agents.models.RankingOptions":"OpenAI.RankingOptions","com.azure.ai.agents.models.RealtimeAudioFormats":"OpenAI.RealtimeAudioFormats","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcm":"OpenAI.RealtimeAudioFormatsAudioPcm","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmRate":null,"com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcma":"OpenAI.RealtimeAudioFormatsAudioPcma","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmu":"OpenAI.RealtimeAudioFormatsAudioPcmu","com.azure.ai.agents.models.RealtimeAudioFormatsType":"OpenAI.RealtimeAudioFormatsType","com.azure.ai.agents.models.RealtimeConversationItem":"OpenAI.RealtimeConversationItem","com.azure.ai.agents.models.RealtimeConversationItemFunctionCall":"OpenAI.RealtimeConversationItemFunctionCall","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutput":"OpenAI.RealtimeConversationItemFunctionCallOutput","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutputStatus":"OpenAI.RealtimeConversationItemFunctionCallOutput.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallStatus":"OpenAI.RealtimeConversationItemFunctionCall.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject":null,"com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject1":null,"com.azure.ai.agents.models.RealtimeConversationItemType":"OpenAI.RealtimeConversationItemType","com.azure.ai.agents.models.RealtimeFunctionToolParameters":"OpenAI.RealtimeFunctionToolParameters","com.azure.ai.agents.models.RealtimeMCPApprovalRequest":"OpenAI.RealtimeMCPApprovalRequest","com.azure.ai.agents.models.RealtimeMCPApprovalResponse":"OpenAI.RealtimeMCPApprovalResponse","com.azure.ai.agents.models.RealtimeMCPError":"OpenAI.RealtimeMCPError","com.azure.ai.agents.models.RealtimeMCPHttpError":"OpenAI.RealtimeMCPHTTPError","com.azure.ai.agents.models.RealtimeMCPListTools":"OpenAI.RealtimeMCPListTools","com.azure.ai.agents.models.RealtimeMCPProtocolError":"OpenAI.RealtimeMCPProtocolError","com.azure.ai.agents.models.RealtimeMCPToolCall":"OpenAI.RealtimeMCPToolCall","com.azure.ai.agents.models.RealtimeMCPToolExecutionError":"OpenAI.RealtimeMCPToolExecutionError","com.azure.ai.agents.models.RealtimeMcpErrorType":"OpenAI.RealtimeMcpErrorType","com.azure.ai.agents.models.RealtimeResponseStatusDetails":"OpenAI.RealtimeResponseStatusDetails","com.azure.ai.agents.models.RealtimeResponseStatusDetailsError":"OpenAI.RealtimeResponseStatusDetailsError","com.azure.ai.agents.models.RealtimeResponseStatusDetailsReason":"OpenAI.RealtimeResponseStatusDetails.reason.anonymous","com.azure.ai.agents.models.RealtimeResponseStatusDetailsType":"OpenAI.RealtimeResponseStatusDetails.type.anonymous","com.azure.ai.agents.models.RealtimeResponseUsage":"OpenAI.RealtimeResponseUsage","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetails":"OpenAI.RealtimeResponseUsageInputTokenDetails","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails":"OpenAI.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails","com.azure.ai.agents.models.RealtimeResponseUsageOutputTokenDetails":"OpenAI.RealtimeResponseUsageOutputTokenDetails","com.azure.ai.agents.models.Reasoning":"OpenAI.Reasoning","com.azure.ai.agents.models.ReasoningEffort":"OpenAI.ReasoningEffort","com.azure.ai.agents.models.ReasoningModeEnum":"OpenAI.ReasoningModeEnum","com.azure.ai.agents.models.ReminderPreviewToolboxTool":"Azure.AI.Projects.ReminderPreviewToolboxTool","com.azure.ai.agents.models.ResponseFormatJsonSchemaInner":"OpenAI.ResponseFormatJsonSchemaSchema","com.azure.ai.agents.models.ResponseUsageInputTokensDetails":"OpenAI.ResponseUsageInputTokensDetails","com.azure.ai.agents.models.ResponseUsageOutputTokensDetails":"OpenAI.ResponseUsageOutputTokensDetails","com.azure.ai.agents.models.ResponsesProtocolConfiguration":"Azure.AI.Projects.ResponsesProtocolConfiguration","com.azure.ai.agents.models.RoutingTraceEntry":"Azure.AI.Projects.RoutingTraceEntry","com.azure.ai.agents.models.SearchContentType":"OpenAI.SearchContentType","com.azure.ai.agents.models.SearchContextSize":"SearchContextSizeExpandable","com.azure.ai.agents.models.SessionConfiguration":"Azure.AI.Projects.SessionConfiguration","com.azure.ai.agents.models.SessionDirectoryEntry":"Azure.AI.Projects.SessionDirectoryEntry","com.azure.ai.agents.models.SessionFileWriteResult":"Azure.AI.Projects.SessionFileWriteResponse","com.azure.ai.agents.models.SessionLogEvent":"Azure.AI.Projects.SessionLogEvent","com.azure.ai.agents.models.SessionLogEventType":"Azure.AI.Projects.SessionLogEventType","com.azure.ai.agents.models.SharepointGroundingToolCall":"Azure.AI.Projects.SharepointGroundingToolCall","com.azure.ai.agents.models.SharepointGroundingToolCallOutput":"Azure.AI.Projects.SharepointGroundingToolCallOutput","com.azure.ai.agents.models.SharepointGroundingToolParameters":"Azure.AI.Projects.SharepointGroundingToolParameters","com.azure.ai.agents.models.SharepointPreviewTool":"Azure.AI.Projects.SharepointPreviewTool","com.azure.ai.agents.models.ShellToolboxTool":"Azure.AI.Projects.ShellToolboxTool","com.azure.ai.agents.models.SkillReferenceParameter":"OpenAI.SkillReferenceParam","com.azure.ai.agents.models.StructuredInputDefinition":"Azure.AI.Projects.StructuredInputDefinition","com.azure.ai.agents.models.StructuredOutputDefinition":"Azure.AI.Projects.StructuredOutputDefinition","com.azure.ai.agents.models.TelemetryConfig":"Azure.AI.Projects.TelemetryConfig","com.azure.ai.agents.models.TelemetryDataKind":"Azure.AI.Projects.TelemetryDataKind","com.azure.ai.agents.models.TelemetryEndpoint":"Azure.AI.Projects.TelemetryEndpoint","com.azure.ai.agents.models.TelemetryEndpointAuth":"Azure.AI.Projects.TelemetryEndpointAuth","com.azure.ai.agents.models.TelemetryEndpointAuthType":"Azure.AI.Projects.TelemetryEndpointAuthType","com.azure.ai.agents.models.TelemetryEndpointKind":"Azure.AI.Projects.TelemetryEndpointKind","com.azure.ai.agents.models.TelemetryTransportProtocol":"Azure.AI.Projects.TelemetryTransportProtocol","com.azure.ai.agents.models.TextResponseFormatConfiguration":"OpenAI.TextResponseFormatConfiguration","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatJsonObject":"OpenAI.TextResponseFormatConfigurationResponseFormatJsonObject","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatText":"OpenAI.TextResponseFormatConfigurationResponseFormatText","com.azure.ai.agents.models.TextResponseFormatConfigurationType":"OpenAI.TextResponseFormatConfigurationType","com.azure.ai.agents.models.TextResponseFormatJsonSchema":"OpenAI.TextResponseFormatJsonSchema","com.azure.ai.agents.models.Tool":"OpenAI.Tool","com.azure.ai.agents.models.ToolCallStatus":"Azure.AI.Projects.ToolCallStatus","com.azure.ai.agents.models.ToolChoiceFunction":"OpenAI.ToolChoiceFunction","com.azure.ai.agents.models.ToolChoiceMCP":"OpenAI.ToolChoiceMCP","com.azure.ai.agents.models.ToolChoiceParam":"OpenAI.ToolChoiceParam","com.azure.ai.agents.models.ToolChoiceParamType":"OpenAI.ToolChoiceParamType","com.azure.ai.agents.models.ToolConfig":"Azure.AI.Projects.ToolConfig","com.azure.ai.agents.models.ToolProjectConnection":"Azure.AI.Projects.ToolProjectConnection","com.azure.ai.agents.models.ToolSearchExecutionType":"OpenAI.ToolSearchExecutionType","com.azure.ai.agents.models.ToolSearchTool":"OpenAI.ToolSearchToolParam","com.azure.ai.agents.models.ToolSearchToolboxTool":"Azure.AI.Projects.ToolSearchToolboxTool","com.azure.ai.agents.models.ToolType":"OpenAI.ToolType","com.azure.ai.agents.models.ToolboxDetails":"Azure.AI.Projects.ToolboxObject","com.azure.ai.agents.models.ToolboxPolicies":"Azure.AI.Projects.ToolboxPolicies","com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool":"Azure.AI.Projects.ToolboxSearchPreviewToolboxTool","com.azure.ai.agents.models.ToolboxShellContainerAutoEnvironment":"Azure.AI.Projects.ToolboxShellContainerAutoEnvironment","com.azure.ai.agents.models.ToolboxShellContainerReferenceEnvironment":"Azure.AI.Projects.ToolboxShellContainerReferenceEnvironment","com.azure.ai.agents.models.ToolboxShellEnvironment":"Azure.AI.Projects.ToolboxShellEnvironment","com.azure.ai.agents.models.ToolboxShellNetworkPolicy":"Azure.AI.Projects.ToolboxShellNetworkPolicy","com.azure.ai.agents.models.ToolboxShellNetworkPolicyDisabled":"Azure.AI.Projects.ToolboxShellNetworkPolicyDisabled","com.azure.ai.agents.models.ToolboxSkill":"Azure.AI.Projects.ToolboxSkill","com.azure.ai.agents.models.ToolboxSkillReference":"Azure.AI.Projects.ToolboxSkillReference","com.azure.ai.agents.models.ToolboxTool":"Azure.AI.Projects.ToolboxTool","com.azure.ai.agents.models.ToolboxToolType":"Azure.AI.Projects.ToolboxToolType","com.azure.ai.agents.models.ToolboxVersionDetails":"Azure.AI.Projects.ToolboxVersionObject","com.azure.ai.agents.models.UpdateAgentDetailsOptions":"Azure.AI.Projects.patchAgentObject.Request.anonymous","com.azure.ai.agents.models.UserProfileMemoryItem":"Azure.AI.Projects.UserProfileMemoryItem","com.azure.ai.agents.models.VersionIndicator":"Azure.AI.Projects.VersionIndicator","com.azure.ai.agents.models.VersionIndicatorType":"Azure.AI.Projects.VersionIndicatorType","com.azure.ai.agents.models.VersionRefIndicator":"Azure.AI.Projects.VersionRefIndicator","com.azure.ai.agents.models.VersionSelectionRule":"Azure.AI.Projects.VersionSelectionRule","com.azure.ai.agents.models.VersionSelector":"Azure.AI.Projects.VersionSelector","com.azure.ai.agents.models.VersionSelectorType":"Azure.AI.Projects.VersionSelectorType","com.azure.ai.agents.models.VoiceAgentAudioConfig":"Azure.AI.Projects.VoiceAgentAudioConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfig":"Azure.AI.Projects.VoiceAgentAudioInputConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfigTranscriptionDelay":"Azure.AI.Projects.VoiceAgentAudioInputConfig.transcription.delay.anonymous","com.azure.ai.agents.models.VoiceAgentAudioOutputConfig":"Azure.AI.Projects.VoiceAgentAudioOutputConfig","com.azure.ai.agents.models.VoiceAgentAudioTimestampType":"Azure.AI.Projects.VoiceAgentAudioTimestampType","com.azure.ai.agents.models.VoiceAgentAvatarConfig":"Azure.AI.Projects.VoiceAgentAvatarConfig","com.azure.ai.agents.models.VoiceAgentAvatarOutputProtocol":"Azure.AI.Projects.VoiceAgentAvatarOutputProtocol","com.azure.ai.agents.models.VoiceAgentAvatarScene":"Azure.AI.Projects.VoiceAgentAvatarScene","com.azure.ai.agents.models.VoiceAgentAvatarType":"Azure.AI.Projects.VoiceAgentAvatarType","com.azure.ai.agents.models.VoiceAgentAvatarVideoBackground":"Azure.AI.Projects.VoiceAgentAvatarVideoBackground","com.azure.ai.agents.models.VoiceAgentAvatarVideoCrop":"Azure.AI.Projects.VoiceAgentAvatarVideoCrop","com.azure.ai.agents.models.VoiceAgentAvatarVideoParams":"Azure.AI.Projects.VoiceAgentAvatarVideoParams","com.azure.ai.agents.models.VoiceAgentAvatarVideoResolution":"Azure.AI.Projects.VoiceAgentAvatarVideoResolution","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadEnTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadEnTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadMultilingualTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadMultilingualTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentDefinition":"Azure.AI.Projects.VoiceAgentDefinition","com.azure.ai.agents.models.VoiceAgentEchoCancellation":"Azure.AI.Projects.VoiceAgentEchoCancellation","com.azure.ai.agents.models.VoiceAgentEchoCancellationReferenceSource":"Azure.AI.Projects.VoiceAgentEchoCancellationReferenceSource","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetection":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetection","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetectionModel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetectionModel","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceThresholdLevel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceThresholdLevel","com.azure.ai.agents.models.VoiceAgentFunctionTool":"Azure.AI.Projects.VoiceAgentFunctionTool","com.azure.ai.agents.models.VoiceAgentGreetingConfig":"Azure.AI.Projects.VoiceAgentGreetingConfig","com.azure.ai.agents.models.VoiceAgentInputTranscription":"Azure.AI.Projects.VoiceAgentInputTranscription","com.azure.ai.agents.models.VoiceAgentInputTranscriptionModel":"Azure.AI.Projects.VoiceAgentInputTranscriptionModel","com.azure.ai.agents.models.VoiceAgentInterimResponseConfig":"Azure.AI.Projects.VoiceAgentInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentInterimResponseTrigger":"Azure.AI.Projects.VoiceAgentInterimResponseTrigger","com.azure.ai.agents.models.VoiceAgentLlmGeneratedGreetingConfig":"Azure.AI.Projects.VoiceAgentLlmGeneratedGreetingConfig","com.azure.ai.agents.models.VoiceAgentLlmInterimResponseConfig":"Azure.AI.Projects.VoiceAgentLlmInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentMcpTool":"Azure.AI.Projects.VoiceAgentMcpTool","com.azure.ai.agents.models.VoiceAgentNoiseReduction":"Azure.AI.Projects.VoiceAgentNoiseReduction","com.azure.ai.agents.models.VoiceAgentNoiseReductionType":"Azure.AI.Projects.VoiceAgentNoiseReductionType","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetectionEagerness":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection.eagerness.anonymous","com.azure.ai.agents.models.VoiceAgentServerVadTurnDetection":"Azure.AI.Projects.VoiceAgentServerVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSessionIncludeOption":"Azure.AI.Projects.VoiceAgentSessionIncludeOption","com.azure.ai.agents.models.VoiceAgentStaticInterimResponseConfig":"Azure.AI.Projects.VoiceAgentStaticInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentSystemTool":"Azure.AI.Projects.VoiceAgentSystemTool","com.azure.ai.agents.models.VoiceAgentSystemToolName":"Azure.AI.Projects.VoiceAgentSystemToolName","com.azure.ai.agents.models.VoiceAgentTemplateGreetingConfig":"Azure.AI.Projects.VoiceAgentTemplateGreetingConfig","com.azure.ai.agents.models.VoiceAgentTool":"Azure.AI.Projects.VoiceAgentTool","com.azure.ai.agents.models.VoiceAgentToolResponseScheduling":"Azure.AI.Projects.VoiceAgentToolResponseScheduling","com.azure.ai.agents.models.VoiceAgentToolboxTool":"Azure.AI.Projects.VoiceAgentToolboxTool","com.azure.ai.agents.models.VoiceAgentTurnDetectionConfig":"Azure.AI.Projects.VoiceAgentTurnDetectionConfig","com.azure.ai.agents.models.VoiceAgentTurnDetectionType":"Azure.AI.Projects.VoiceAgentTurnDetectionType","com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol":"Azure.AI.Projects.VoiceAgentWebSocketSubprotocol","com.azure.ai.agents.models.VoiceAudioCodec":"Azure.AI.Projects.VoiceAudioCodec","com.azure.ai.agents.models.VoiceAudioContainerFormat":"Azure.AI.Projects.VoiceAudioContainerFormat","com.azure.ai.agents.models.VoiceAudioRole":"Azure.AI.Projects.VoiceAudioRole","com.azure.ai.agents.models.VoiceConversation":"Azure.AI.Projects.VoiceConversation","com.azure.ai.agents.models.VoiceConversationStatus":"Azure.AI.Projects.VoiceConversationStatus","com.azure.ai.agents.models.VoiceItemAudioResponse":"Azure.AI.Projects.VoiceItemAudioResponse","com.azure.ai.agents.models.VoiceModelType":"Azure.AI.Projects.VoiceModelType","com.azure.ai.agents.models.VoiceOutputModality":"Azure.AI.Projects.VoiceOutputModality","com.azure.ai.agents.models.VoiceRecordingChannelLayout":"Azure.AI.Projects.VoiceRecordingChannelLayout","com.azure.ai.agents.models.VoiceRecordingResponse":"Azure.AI.Projects.VoiceRecordingResponse","com.azure.ai.agents.models.VoiceResponse":"Azure.AI.Projects.VoiceResponse","com.azure.ai.agents.models.VoiceResponseAudio":"Azure.AI.Projects.VoiceResponseAudio","com.azure.ai.agents.models.VoiceResponseAudioOutput":"Azure.AI.Projects.VoiceResponseAudioOutput","com.azure.ai.agents.models.VoiceResponseBase":"Azure.AI.Projects.VoiceResponseBase","com.azure.ai.agents.models.VoiceResponseBaseObject":null,"com.azure.ai.agents.models.VoiceResponseBaseOutputModality":"Azure.AI.Projects.VoiceResponseBase.output_modality.anonymous","com.azure.ai.agents.models.VoiceResponseBaseStatus":"Azure.AI.Projects.VoiceResponseBase.status.anonymous","com.azure.ai.agents.models.VoiceType":"Azure.AI.Projects.VoiceType","com.azure.ai.agents.models.WebIqPreviewTool":"Azure.AI.Projects.WebIQPreviewTool","com.azure.ai.agents.models.WebIqPreviewToolboxTool":"Azure.AI.Projects.WebIQPreviewToolboxTool","com.azure.ai.agents.models.WebSearchApproximateLocation":"OpenAI.WebSearchApproximateLocation","com.azure.ai.agents.models.WebSearchConfiguration":"Azure.AI.Projects.WebSearchConfiguration","com.azure.ai.agents.models.WebSearchPreviewTool":"OpenAI.WebSearchPreviewTool","com.azure.ai.agents.models.WebSearchTool":"OpenAI.WebSearchTool","com.azure.ai.agents.models.WebSearchToolFilters":"OpenAI.WebSearchToolFilters","com.azure.ai.agents.models.WebSearchToolSearchContextSize":"WebSearchToolSearchContextSizeExpandable","com.azure.ai.agents.models.WebSearchToolboxTool":"Azure.AI.Projects.WebSearchToolboxTool","com.azure.ai.agents.models.WorkIqPreviewTool":"Azure.AI.Projects.WorkIQPreviewTool","com.azure.ai.agents.models.WorkIqPreviewToolboxTool":"Azure.AI.Projects.WorkIQPreviewToolboxTool","com.azure.ai.agents.models.WorkflowAgentDefinition":"Azure.AI.Projects.WorkflowAgentDefinition"},"generatedFiles":["src/main/java/com/azure/ai/agents/AgentsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentsClient.java","src/main/java/com/azure/ai/agents/AgentsClientBuilder.java","src/main/java/com/azure/ai/agents/AgentsServiceVersion.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java","src/main/java/com/azure/ai/agents/BetaAgentsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentsClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresAsyncClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java","src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java","src/main/java/com/azure/ai/agents/ToolboxesClient.java","src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaMemoryStoresImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java","src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/agents/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/PollingUtils.java","src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java","src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromCodeContent.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateSessionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateToolboxVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java","src/main/java/com/azure/ai/agents/implementation/models/ListMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java","src/main/java/com/azure/ai/agents/implementation/models/SearchMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxInput.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxRequest.java","src/main/java/com/azure/ai/agents/implementation/models/package-info.java","src/main/java/com/azure/ai/agents/implementation/package-info.java","src/main/java/com/azure/ai/agents/models/A2APreviewTool.java","src/main/java/com/azure/ai/agents/models/A2APreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/A2AProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/A2AProtocolVersion.java","src/main/java/com/azure/ai/agents/models/A2ATool.java","src/main/java/com/azure/ai/agents/models/A2AToolCall.java","src/main/java/com/azure/ai/agents/models/A2AToolCallOutput.java","src/main/java/com/azure/ai/agents/models/A2AToolboxTool.java","src/main/java/com/azure/ai/agents/models/AISearchIndexResource.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReference.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReferenceType.java","src/main/java/com/azure/ai/agents/models/AgentCard.java","src/main/java/com/azure/ai/agents/models/AgentCardSkill.java","src/main/java/com/azure/ai/agents/models/AgentDefinition.java","src/main/java/com/azure/ai/agents/models/AgentDetails.java","src/main/java/com/azure/ai/agents/models/AgentDetailsVersions.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationSchemeType.java","src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java","src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java","src/main/java/com/azure/ai/agents/models/AgentIdentity.java","src/main/java/com/azure/ai/agents/models/AgentIdentityStatus.java","src/main/java/com/azure/ai/agents/models/AgentKind.java","src/main/java/com/azure/ai/agents/models/AgentObjectType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationCandidate.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetCriterion.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInputType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationInlineDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJob.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobListItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobResult.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationOptions.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationReferenceDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentReference.java","src/main/java/com/azure/ai/agents/models/AgentSessionResource.java","src/main/java/com/azure/ai/agents/models/AgentSessionStatus.java","src/main/java/com/azure/ai/agents/models/AgentState.java","src/main/java/com/azure/ai/agents/models/AgentStateSource.java","src/main/java/com/azure/ai/agents/models/AgentVersionDetails.java","src/main/java/com/azure/ai/agents/models/AgentVersionStatus.java","src/main/java/com/azure/ai/agents/models/ApiError.java","src/main/java/com/azure/ai/agents/models/ApplyPatchToolParameter.java","src/main/java/com/azure/ai/agents/models/ApproximateLocation.java","src/main/java/com/azure/ai/agents/models/AutoCodeInterpreterToolParameter.java","src/main/java/com/azure/ai/agents/models/AzureAISearchQueryType.java","src/main/java/com/azure/ai/agents/models/AzureAISearchTool.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCall.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolResource.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java","src/main/java/com/azure/ai/agents/models/AzureFunctionBinding.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinitionDetails.java","src/main/java/com/azure/ai/agents/models/AzureFunctionStorageQueue.java","src/main/java/com/azure/ai/agents/models/AzureFunctionTool.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCall.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureUserSecurityContext.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCall.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingTool.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BotServiceAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceRbacAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceTenantAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCall.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolConnectionParameters.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolParameters.java","src/main/java/com/azure/ai/agents/models/CallableToolAllowedCaller.java","src/main/java/com/azure/ai/agents/models/CaptureStructuredOutputsTool.java","src/main/java/com/azure/ai/agents/models/ChatSummaryMemoryItem.java","src/main/java/com/azure/ai/agents/models/CodeConfiguration.java","src/main/java/com/azure/ai/agents/models/CodeDependencyResolution.java","src/main/java/com/azure/ai/agents/models/CodeFileDetails.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterTool.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterToolboxTool.java","src/main/java/com/azure/ai/agents/models/ComputerEnvironment.java","src/main/java/com/azure/ai/agents/models/ComputerTool.java","src/main/java/com/azure/ai/agents/models/ComputerUsePreviewTool.java","src/main/java/com/azure/ai/agents/models/ContainerAutoParameter.java","src/main/java/com/azure/ai/agents/models/ContainerConfiguration.java","src/main/java/com/azure/ai/agents/models/ContainerMemoryLimit.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyAllowlistParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDisabledParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDomainSecretParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParamType.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParameter.java","src/main/java/com/azure/ai/agents/models/ContainerSkill.java","src/main/java/com/azure/ai/agents/models/ContainerSkillType.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeContent.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeMetadata.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java","src/main/java/com/azure/ai/agents/models/CustomGrammarFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomTextFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormat.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormatType.java","src/main/java/com/azure/ai/agents/models/CustomToolParameter.java","src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java","src/main/java/com/azure/ai/agents/models/EntraAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/EvaluationLevel.java","src/main/java/com/azure/ai/agents/models/ExternalAgentDefinition.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCall.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCallOutput.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolParameters.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/FileSearchTool.java","src/main/java/com/azure/ai/agents/models/FileSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/FixedRatioVersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironment.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironmentType.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentContainerReferenceParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentLocalEnvironmentParameter.java","src/main/java/com/azure/ai/agents/models/FunctionTool.java","src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java","src/main/java/com/azure/ai/agents/models/GrammarSyntax.java","src/main/java/com/azure/ai/agents/models/HeaderTelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java","src/main/java/com/azure/ai/agents/models/HybridSearchOptions.java","src/main/java/com/azure/ai/agents/models/ImageGenActionEnum.java","src/main/java/com/azure/ai/agents/models/ImageGenTool.java","src/main/java/com/azure/ai/agents/models/ImageGenToolBackground.java","src/main/java/com/azure/ai/agents/models/ImageGenToolInputImageMask.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModel.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModeration.java","src/main/java/com/azure/ai/agents/models/ImageGenToolOutputFormat.java","src/main/java/com/azure/ai/agents/models/ImageGenToolQuality.java","src/main/java/com/azure/ai/agents/models/ImageGenToolSize.java","src/main/java/com/azure/ai/agents/models/IncludeEnum.java","src/main/java/com/azure/ai/agents/models/InlineSkillParameter.java","src/main/java/com/azure/ai/agents/models/InlineSkillSourceParameter.java","src/main/java/com/azure/ai/agents/models/InputFidelity.java","src/main/java/com/azure/ai/agents/models/InvocationsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/InvocationsWsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/JobStatus.java","src/main/java/com/azure/ai/agents/models/ListMemoriesOptions.java","src/main/java/com/azure/ai/agents/models/LocalShellToolParameter.java","src/main/java/com/azure/ai/agents/models/LocalSkillParameter.java","src/main/java/com/azure/ai/agents/models/ManagedAgentIdentityBlueprintReference.java","src/main/java/com/azure/ai/agents/models/McpListToolsTool.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java","src/main/java/com/azure/ai/agents/models/McpProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/McpTool.java","src/main/java/com/azure/ai/agents/models/McpToolConnectorId.java","src/main/java/com/azure/ai/agents/models/McpToolFilter.java","src/main/java/com/azure/ai/agents/models/McpToolRequireApproval.java","src/main/java/com/azure/ai/agents/models/McpToolboxTool.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCallOutput.java","src/main/java/com/azure/ai/agents/models/MemoryItem.java","src/main/java/com/azure/ai/agents/models/MemoryItemKind.java","src/main/java/com/azure/ai/agents/models/MemoryOperation.java","src/main/java/com/azure/ai/agents/models/MemoryOperationKind.java","src/main/java/com/azure/ai/agents/models/MemorySearchItem.java","src/main/java/com/azure/ai/agents/models/MemorySearchOptions.java","src/main/java/com/azure/ai/agents/models/MemorySearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/MemorySearchToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultOptions.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDetails.java","src/main/java/com/azure/ai/agents/models/MemoryStoreKind.java","src/main/java/com/azure/ai/agents/models/MemoryStoreObjectType.java","src/main/java/com/azure/ai/agents/models/MemoryStoreOperationUsage.java","src/main/java/com/azure/ai/agents/models/MemoryStoreSearchResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateCompletedResult.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateStatus.java","src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java","src/main/java/com/azure/ai/agents/models/MicrosoftFabricPreviewTool.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java","src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java","src/main/java/com/azure/ai/agents/models/ModelRouterMode.java","src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java","src/main/java/com/azure/ai/agents/models/NamespaceTool.java","src/main/java/com/azure/ai/agents/models/OpenApiAnonymousAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthType.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinitionFunction.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiTool.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCall.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCallOutput.java","src/main/java/com/azure/ai/agents/models/OpenApiToolboxTool.java","src/main/java/com/azure/ai/agents/models/OptimizedAgentIdentifier.java","src/main/java/com/azure/ai/agents/models/OtlpTelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/PageOrder.java","src/main/java/com/azure/ai/agents/models/ProceduralMemoryItem.java","src/main/java/com/azure/ai/agents/models/ProgrammaticToolCallingParameter.java","src/main/java/com/azure/ai/agents/models/PromotionInfo.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionTextOptions.java","src/main/java/com/azure/ai/agents/models/ProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/ProtocolVersionRecord.java","src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java","src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java","src/main/java/com/azure/ai/agents/models/RaiConfig.java","src/main/java/com/azure/ai/agents/models/RankerVersionType.java","src/main/java/com/azure/ai/agents/models/RankingOptions.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java","src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPHttpError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java","src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java","src/main/java/com/azure/ai/agents/models/Reasoning.java","src/main/java/com/azure/ai/agents/models/ReasoningEffort.java","src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java","src/main/java/com/azure/ai/agents/models/ReminderPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ResponseFormatJsonSchemaInner.java","src/main/java/com/azure/ai/agents/models/ResponseUsageInputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponseUsageOutputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponsesProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java","src/main/java/com/azure/ai/agents/models/SearchContentType.java","src/main/java/com/azure/ai/agents/models/SearchContextSize.java","src/main/java/com/azure/ai/agents/models/SessionConfiguration.java","src/main/java/com/azure/ai/agents/models/SessionDirectoryEntry.java","src/main/java/com/azure/ai/agents/models/SessionFileWriteResult.java","src/main/java/com/azure/ai/agents/models/SessionLogEvent.java","src/main/java/com/azure/ai/agents/models/SessionLogEventType.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolParameters.java","src/main/java/com/azure/ai/agents/models/SharepointPreviewTool.java","src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java","src/main/java/com/azure/ai/agents/models/SkillReferenceParameter.java","src/main/java/com/azure/ai/agents/models/StructuredInputDefinition.java","src/main/java/com/azure/ai/agents/models/StructuredOutputDefinition.java","src/main/java/com/azure/ai/agents/models/TelemetryConfig.java","src/main/java/com/azure/ai/agents/models/TelemetryDataKind.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuthType.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointKind.java","src/main/java/com/azure/ai/agents/models/TelemetryTransportProtocol.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfiguration.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatJsonObject.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatText.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationType.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatJsonSchema.java","src/main/java/com/azure/ai/agents/models/Tool.java","src/main/java/com/azure/ai/agents/models/ToolCallStatus.java","src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java","src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java","src/main/java/com/azure/ai/agents/models/ToolConfig.java","src/main/java/com/azure/ai/agents/models/ToolProjectConnection.java","src/main/java/com/azure/ai/agents/models/ToolSearchExecutionType.java","src/main/java/com/azure/ai/agents/models/ToolSearchTool.java","src/main/java/com/azure/ai/agents/models/ToolSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxDetails.java","src/main/java/com/azure/ai/agents/models/ToolboxPolicies.java","src/main/java/com/azure/ai/agents/models/ToolboxSearchPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java","src/main/java/com/azure/ai/agents/models/ToolboxSkill.java","src/main/java/com/azure/ai/agents/models/ToolboxSkillReference.java","src/main/java/com/azure/ai/agents/models/ToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxVersionDetails.java","src/main/java/com/azure/ai/agents/models/UpdateAgentDetailsOptions.java","src/main/java/com/azure/ai/agents/models/UserProfileMemoryItem.java","src/main/java/com/azure/ai/agents/models/VersionIndicator.java","src/main/java/com/azure/ai/agents/models/VersionIndicatorType.java","src/main/java/com/azure/ai/agents/models/VersionRefIndicator.java","src/main/java/com/azure/ai/agents/models/VersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/VersionSelector.java","src/main/java/com/azure/ai/agents/models/VersionSelectorType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java","src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java","src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java","src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java","src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java","src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java","src/main/java/com/azure/ai/agents/models/VoiceConversation.java","src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java","src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java","src/main/java/com/azure/ai/agents/models/VoiceModelType.java","src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java","src/main/java/com/azure/ai/agents/models/VoiceType.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java","src/main/java/com/azure/ai/agents/models/WebSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebSearchTool.java","src/main/java/com/azure/ai/agents/models/WebSearchToolFilters.java","src/main/java/com/azure/ai/agents/models/WebSearchToolSearchContextSize.java","src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkflowAgentDefinition.java","src/main/java/com/azure/ai/agents/models/package-info.java","src/main/java/com/azure/ai/agents/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file diff --git a/sdk/ai/azure-ai-projects/customizations/src/main/java/ProjectsCustomizations.java b/sdk/ai/azure-ai-projects/customizations/src/main/java/ProjectsCustomizations.java index 45e265388ee6..9f05b3a2ef87 100644 --- a/sdk/ai/azure-ai-projects/customizations/src/main/java/ProjectsCustomizations.java +++ b/sdk/ai/azure-ai-projects/customizations/src/main/java/ProjectsCustomizations.java @@ -1,6 +1,8 @@ import com.azure.autorest.customization.ClassCustomization; import com.azure.autorest.customization.Customization; import com.azure.autorest.customization.LibraryCustomization; +import com.github.javaparser.StaticJavaParser; +import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.body.FieldDeclaration; import com.github.javaparser.ast.body.MethodDeclaration; import com.github.javaparser.ast.body.TypeDeclaration; @@ -25,11 +27,68 @@ public class ProjectsCustomizations extends Customization { @Override public void customize(LibraryCustomization libraryCustomization, Logger logger) { + preserveRoutineCompatibilityOverloads(libraryCustomization, logger); annotateBetaClients(libraryCustomization, logger); annotateBetaFields(libraryCustomization, loadBetaAnnotations(logger), logger); } - private void annotateBetaClients(LibraryCustomization customization, Logger logger) { + private void preserveRoutineCompatibilityOverloads(LibraryCustomization customization, Logger logger) { + addRoutineCompatibilityOverload(customization, "BetaRoutinesClient", "Routine", false, logger); + addRoutineCompatibilityOverload(customization, "BetaRoutinesAsyncClient", "Mono", true, logger); + } + + private void addRoutineCompatibilityOverload(LibraryCustomization customization, String className, + String returnType, boolean isAsync, Logger logger) { + customization.getClass("com.azure.ai.projects", className).customizeAst(ast -> { + ast.addImport("com.azure.ai.projects.models.Routine"); + ast.addImport("com.azure.ai.projects.models.RoutineAction"); + ast.addImport("com.azure.ai.projects.models.RoutineTrigger"); + ast.addImport("com.azure.core.annotation.ServiceMethod"); + ast.addImport("java.util.Map"); + if (isAsync) { + ast.addImport("reactor.core.publisher.Mono"); + } + + ast.getClassByName(className).ifPresent(clazz -> { + if (hasRoutineCompatibilityOverload(clazz)) { + return; + } + + logger.info("Adding Revapi compatibility overload to {}", className); + clazz.addMethod("createOrUpdateRoutine", Modifier.Keyword.PUBLIC) + .setType(returnType) + .addParameter("String", "routineName") + .addParameter("String", "description") + .addParameter("Boolean", "enabled") + .addParameter("Map", "triggers") + .addParameter("RoutineAction", "action") + .addAnnotation(StaticJavaParser.parseAnnotation( + "@ServiceMethod(returns = com.azure.core.annotation.ReturnType.SINGLE)")) + .setJavadocComment("Creates a new routine or replaces an existing routine without authorization.\n" + + "\n" + + "@param routineName The unique name of the routine.\n" + + "@param description The routine description.\n" + + "@param enabled Whether the routine is enabled.\n" + + "@param triggers The triggers that invoke the routine.\n" + + "@param action The action performed by the routine.\n" + + "@return The created or updated routine.") + .setBody(StaticJavaParser.parseBlock("{ return createOrUpdateRoutine(routineName, description, " + + "enabled, triggers, action, null); }")); + }); + }); + } + + private boolean hasRoutineCompatibilityOverload(TypeDeclaration type) { + return type.getMethodsByName("createOrUpdateRoutine").stream().anyMatch(method -> + method.getParameters().size() == 5 + && "String".equals(method.getParameter(0).getType().asString()) + && "String".equals(method.getParameter(1).getType().asString()) + && "Boolean".equals(method.getParameter(2).getType().asString()) + && "Map".equals(method.getParameter(3).getType().asString()) + && "RoutineAction".equals(method.getParameter(4).getType().asString())); + } + + private void annotateBetaClients(LibraryCustomization customization, Logger logger) { customization.getPackage("com.azure.ai.projects") .listClasses() .stream() diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java index 66c8bc3a5d14..f0debdd0ef70 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesAsyncClient.java @@ -428,6 +428,44 @@ public Mono> dispatchRoutineWithResponse(String routineName requestOptions); } + /** + * Create or update a routine + * + * Creates a new routine or replaces an existing routine with the supplied definition. + * + * @param routineName The unique name of the routine. + * @param description A human-readable description of the routine. + * @param enabled Whether the routine is enabled. + * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported. + * @param action The action executed when the routine fires. + * @param authorization Optional authorization configuration for dispatching a newly created routine. Ignored when + * updating an existing routine. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a routine definition returned by the service on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono createOrUpdateRoutine(String routineName, String description, Boolean enabled, + Map triggers, RoutineAction action, RoutineAuthorization authorization) { + // Generated convenience method for createOrUpdateRoutineWithResponse + RequestOptions requestOptions = new RequestOptions(); + CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj + = new CreateOrUpdateRoutineRequest().setDescription(description) + .setEnabled(enabled) + .setTriggers(triggers) + .setAction(action) + .setAuthorization(authorization); + BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj); + return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(Routine.class)); + } + /** * Create or update a routine * @@ -530,6 +568,12 @@ public Mono disableRoutine(String routineName) { * * Returns the routines available in the current project. * + * @param limit The maximum number of routines to return. + * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` + * returned by the previous response, which embeds this value. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. @@ -539,9 +583,18 @@ public Mono disableRoutine(String routineName) { */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listRoutines() { + public PagedFlux listRoutines(Integer limit, String after, PageOrder order) { // Generated convenience method for listRoutines RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } PagedFlux pagedFluxResponse = listRoutines(requestOptions); return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { Flux> flux = (continuationTokenParam == null) @@ -558,34 +611,10 @@ public PagedFlux listRoutines() { } /** - * Delete a routine - * - * Deletes the specified routine. - * - * @param routineName The unique name of the routine. - * @throws IllegalArgumentException thrown if parameters fail the validation. - * @throws HttpResponseException thrown if the request is rejected by server. - * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. - * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. - * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. - * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return A {@link Mono} that completes when a successful response is received. - */ - @Generated - @ServiceMethod(returns = ReturnType.SINGLE) - public Mono deleteRoutine(String routineName) { - // Generated convenience method for deleteRoutineWithResponse - RequestOptions requestOptions = new RequestOptions(); - return deleteRoutineWithResponse(routineName, requestOptions).flatMap(FluxUtil::toMono); - } - - /** - * List prior runs for a routine + * List routines * - * Returns prior runs recorded for the specified routine. + * Returns the routines available in the current project. * - * @param routineName The unique name of the routine. - * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. @@ -595,84 +624,54 @@ public Mono deleteRoutine(String routineName) { */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listRoutineRuns(String routineName) { - // Generated convenience method for listRoutineRuns + public PagedFlux listRoutines() { + // Generated convenience method for listRoutines RequestOptions requestOptions = new RequestOptions(); - PagedFlux pagedFluxResponse = listRoutineRuns(routineName, requestOptions); + PagedFlux pagedFluxResponse = listRoutines(requestOptions); return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { Flux> flux = (continuationTokenParam == null) ? pagedFluxResponse.byPage().take(1) : pagedFluxResponse.byPage(continuationTokenParam).take(1); - return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), pagedResponse.getStatusCode(), pagedResponse.getHeaders(), pagedResponse.getValue() .stream() - .map(protocolMethodData -> protocolMethodData.toObject(RoutineRun.class)) + .map(protocolMethodData -> protocolMethodData.toObject(Routine.class)) .collect(Collectors.toList()), pagedResponse.getContinuationToken(), null)); }); } /** - * Queue an asynchronous routine dispatch + * Delete a routine * - * Queues an asynchronous dispatch for the specified routine. + * Deletes the specified routine. * * @param routineName The unique name of the routine. - * @param payload A direct action-input override sent downstream when testing a routine. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return identifiers returned after a routine dispatch is queued on successful completion of {@link Mono}. + * @return A {@link Mono} that completes when a successful response is received. */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono dispatchRoutine(String routineName, RoutineDispatchPayload payload) { - // Generated convenience method for dispatchRoutineWithResponse + public Mono deleteRoutine(String routineName) { + // Generated convenience method for deleteRoutineWithResponse RequestOptions requestOptions = new RequestOptions(); - DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj - = new DispatchRoutineAsyncRequest().setPayload(payload); - BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); - return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions) - .flatMap(FluxUtil::toMono) - .map(protocolMethodData -> protocolMethodData.toObject(DispatchRoutineResult.class)); + return deleteRoutineWithResponse(routineName, requestOptions).flatMap(FluxUtil::toMono); } /** - * Queue an asynchronous routine dispatch + * List prior runs for a routine * - * Queues an asynchronous dispatch for the specified routine. + * Returns prior runs recorded for the specified routine. * * @param routineName The unique name of the routine. - * @throws IllegalArgumentException thrown if parameters fail the validation. - * @throws HttpResponseException thrown if the request is rejected by server. - * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. - * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. - * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. - * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return identifiers returned after a routine dispatch is queued on successful completion of {@link Mono}. - */ - @Generated - @ServiceMethod(returns = ReturnType.SINGLE) - public Mono dispatchRoutine(String routineName) { - // Generated convenience method for dispatchRoutineWithResponse - RequestOptions requestOptions = new RequestOptions(); - DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj = new DispatchRoutineAsyncRequest(); - BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); - return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions) - .flatMap(FluxUtil::toMono) - .map(protocolMethodData -> protocolMethodData.toObject(DispatchRoutineResult.class)); - } - - /** - * List routines - * - * Returns the routines available in the current project. - * - * @param limit The maximum number of routines to return. + * @param filter An optional MLflow search-runs filter expression applied within the routine's experiment. + * @param limit The maximum number of runs to return. * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` * returned by the previous response, which embeds this value. * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` @@ -687,9 +686,13 @@ public Mono dispatchRoutine(String routineName) { */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listRoutines(Integer limit, String after, PageOrder order) { - // Generated convenience method for listRoutines + public PagedFlux listRoutineRuns(String routineName, String filter, Integer limit, String after, + PageOrder order) { + // Generated convenience method for listRoutineRuns RequestOptions requestOptions = new RequestOptions(); + if (filter != null) { + requestOptions.addQueryParam("filter", filter, false); + } if (limit != null) { requestOptions.addQueryParam("limit", String.valueOf(limit), false); } @@ -699,16 +702,16 @@ public PagedFlux listRoutines(Integer limit, String after, PageOrder or if (order != null) { requestOptions.addQueryParam("order", order.toString(), false); } - PagedFlux pagedFluxResponse = listRoutines(requestOptions); + PagedFlux pagedFluxResponse = listRoutineRuns(routineName, requestOptions); return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { Flux> flux = (continuationTokenParam == null) ? pagedFluxResponse.byPage().take(1) : pagedFluxResponse.byPage(continuationTokenParam).take(1); - return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + return flux.map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), pagedResponse.getStatusCode(), pagedResponse.getHeaders(), pagedResponse.getValue() .stream() - .map(protocolMethodData -> protocolMethodData.toObject(Routine.class)) + .map(protocolMethodData -> protocolMethodData.toObject(RoutineRun.class)) .collect(Collectors.toList()), pagedResponse.getContinuationToken(), null)); }); @@ -720,12 +723,6 @@ public PagedFlux listRoutines(Integer limit, String after, PageOrder or * Returns prior runs recorded for the specified routine. * * @param routineName The unique name of the routine. - * @param filter An optional MLflow search-runs filter expression applied within the routine's experiment. - * @param limit The maximum number of runs to return. - * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` - * returned by the previous response, which embeds this value. - * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - * for descending order. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -736,22 +733,9 @@ public PagedFlux listRoutines(Integer limit, String after, PageOrder or */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedFlux listRoutineRuns(String routineName, String filter, Integer limit, String after, - PageOrder order) { + public PagedFlux listRoutineRuns(String routineName) { // Generated convenience method for listRoutineRuns RequestOptions requestOptions = new RequestOptions(); - if (filter != null) { - requestOptions.addQueryParam("filter", filter, false); - } - if (limit != null) { - requestOptions.addQueryParam("limit", String.valueOf(limit), false); - } - if (after != null) { - requestOptions.addQueryParam("after", after, false); - } - if (order != null) { - requestOptions.addQueryParam("order", order.toString(), false); - } PagedFlux pagedFluxResponse = listRoutineRuns(routineName, requestOptions); return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { Flux> flux = (continuationTokenParam == null) @@ -768,40 +752,72 @@ public PagedFlux listRoutineRuns(String routineName, String filter, } /** - * Create or update a routine + * Queue an asynchronous routine dispatch * - * Creates a new routine or replaces an existing routine with the supplied definition. + * Queues an asynchronous dispatch for the specified routine. * * @param routineName The unique name of the routine. - * @param description A human-readable description of the routine. - * @param enabled Whether the routine is enabled. - * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported. - * @param action The action executed when the routine fires. - * @param authorization Optional authorization configuration for dispatching a newly created routine. Ignored when - * updating an existing routine. + * @param payload A direct action-input override sent downstream when testing a routine. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return a routine definition returned by the service on successful completion of {@link Mono}. + * @return identifiers returned after a routine dispatch is queued on successful completion of {@link Mono}. */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public Mono createOrUpdateRoutine(String routineName, String description, Boolean enabled, - Map triggers, RoutineAction action, RoutineAuthorization authorization) { - // Generated convenience method for createOrUpdateRoutineWithResponse + public Mono dispatchRoutine(String routineName, RoutineDispatchPayload payload) { + // Generated convenience method for dispatchRoutineWithResponse RequestOptions requestOptions = new RequestOptions(); - CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj - = new CreateOrUpdateRoutineRequest().setDescription(description) - .setEnabled(enabled) - .setTriggers(triggers) - .setAction(action) - .setAuthorization(authorization); - BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj); - return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions) + DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj + = new DispatchRoutineAsyncRequest().setPayload(payload); + BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); + return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions) .flatMap(FluxUtil::toMono) - .map(protocolMethodData -> protocolMethodData.toObject(Routine.class)); + .map(protocolMethodData -> protocolMethodData.toObject(DispatchRoutineResult.class)); + } + + /** + * Queue an asynchronous routine dispatch + * + * Queues an asynchronous dispatch for the specified routine. + * + * @param routineName The unique name of the routine. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return identifiers returned after a routine dispatch is queued on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono dispatchRoutine(String routineName) { + // Generated convenience method for dispatchRoutineWithResponse + RequestOptions requestOptions = new RequestOptions(); + DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj = new DispatchRoutineAsyncRequest(); + BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); + return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(DispatchRoutineResult.class)); + } + + /** + * Creates a new routine or replaces an existing routine without authorization. + * + * @param routineName The unique name of the routine. + * @param description The routine description. + * @param enabled Whether the routine is enabled. + * @param triggers The triggers that invoke the routine. + * @param action The action performed by the routine. + * @return The created or updated routine. + */ + @ServiceMethod(returns = com.azure.core.annotation.ReturnType.SINGLE) + public Mono createOrUpdateRoutine(String routineName, String description, Boolean enabled, + Map triggers, RoutineAction action) { + return createOrUpdateRoutine(routineName, description, enabled, triggers, action, null); } } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java index 1e83b6b031b3..8e75772c264d 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaRoutinesClient.java @@ -416,6 +416,43 @@ public Response dispatchRoutineWithResponse(String routineName, Bina return this.serviceClient.dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions); } + /** + * Create or update a routine + * + * Creates a new routine or replaces an existing routine with the supplied definition. + * + * @param routineName The unique name of the routine. + * @param description A human-readable description of the routine. + * @param enabled Whether the routine is enabled. + * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported. + * @param action The action executed when the routine fires. + * @param authorization Optional authorization configuration for dispatching a newly created routine. Ignored when + * updating an existing routine. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a routine definition returned by the service. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Routine createOrUpdateRoutine(String routineName, String description, Boolean enabled, + Map triggers, RoutineAction action, RoutineAuthorization authorization) { + // Generated convenience method for createOrUpdateRoutineWithResponse + RequestOptions requestOptions = new RequestOptions(); + CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj + = new CreateOrUpdateRoutineRequest().setDescription(description) + .setEnabled(enabled) + .setTriggers(triggers) + .setAction(action) + .setAuthorization(authorization); + BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj); + return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions).getValue() + .toObject(Routine.class); + } + /** * Create or update a routine * @@ -509,6 +546,42 @@ public Routine disableRoutine(String routineName) { return disableRoutineWithResponse(routineName, requestOptions).getValue().toObject(Routine.class); } + /** + * List routines + * + * Returns the routines available in the current project. + * + * @param limit The maximum number of routines to return. + * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` + * returned by the previous response, which embeds this value. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a page of items with a URL cursor to the next page as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listRoutines(Integer limit, String after, PageOrder order) { + // Generated convenience method for listRoutines + RequestOptions requestOptions = new RequestOptions(); + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + return serviceClient.listRoutines(requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(Routine.class)); + } + /** * List routines * @@ -557,6 +630,12 @@ public void deleteRoutine(String routineName) { * Returns prior runs recorded for the specified routine. * * @param routineName The unique name of the routine. + * @param filter An optional MLflow search-runs filter expression applied within the routine's experiment. + * @param limit The maximum number of runs to return. + * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` + * returned by the previous response, which embeds this value. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -567,38 +646,47 @@ public void deleteRoutine(String routineName) { */ @Generated @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listRoutineRuns(String routineName) { + public PagedIterable listRoutineRuns(String routineName, String filter, Integer limit, String after, + PageOrder order) { // Generated convenience method for listRoutineRuns RequestOptions requestOptions = new RequestOptions(); + if (filter != null) { + requestOptions.addQueryParam("filter", filter, false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } return serviceClient.listRoutineRuns(routineName, requestOptions) .mapPage(bodyItemValue -> bodyItemValue.toObject(RoutineRun.class)); } /** - * Queue an asynchronous routine dispatch + * List prior runs for a routine * - * Queues an asynchronous dispatch for the specified routine. + * Returns prior runs recorded for the specified routine. * * @param routineName The unique name of the routine. - * @param payload A direct action-input override sent downstream when testing a routine. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return identifiers returned after a routine dispatch is queued. + * @return a page of items with a URL cursor to the next page as paginated response with {@link PagedIterable}. */ @Generated - @ServiceMethod(returns = ReturnType.SINGLE) - public DispatchRoutineResult dispatchRoutine(String routineName, RoutineDispatchPayload payload) { - // Generated convenience method for dispatchRoutineWithResponse + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listRoutineRuns(String routineName) { + // Generated convenience method for listRoutineRuns RequestOptions requestOptions = new RequestOptions(); - DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj - = new DispatchRoutineAsyncRequest().setPayload(payload); - BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); - return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions).getValue() - .toObject(DispatchRoutineResult.class); + return serviceClient.listRoutineRuns(routineName, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(RoutineRun.class)); } /** @@ -607,6 +695,7 @@ public DispatchRoutineResult dispatchRoutine(String routineName, RoutineDispatch * Queues an asynchronous dispatch for the specified routine. * * @param routineName The unique name of the routine. + * @param payload A direct action-input override sent downstream when testing a routine. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -617,127 +706,54 @@ public DispatchRoutineResult dispatchRoutine(String routineName, RoutineDispatch */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - public DispatchRoutineResult dispatchRoutine(String routineName) { + public DispatchRoutineResult dispatchRoutine(String routineName, RoutineDispatchPayload payload) { // Generated convenience method for dispatchRoutineWithResponse RequestOptions requestOptions = new RequestOptions(); - DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj = new DispatchRoutineAsyncRequest(); + DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj + = new DispatchRoutineAsyncRequest().setPayload(payload); BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions).getValue() .toObject(DispatchRoutineResult.class); } /** - * List routines - * - * Returns the routines available in the current project. - * - * @param limit The maximum number of routines to return. - * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` - * returned by the previous response, which embeds this value. - * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - * for descending order. - * @throws IllegalArgumentException thrown if parameters fail the validation. - * @throws HttpResponseException thrown if the request is rejected by server. - * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. - * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. - * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. - * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return a page of items with a URL cursor to the next page as paginated response with {@link PagedIterable}. - */ - @Generated - @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listRoutines(Integer limit, String after, PageOrder order) { - // Generated convenience method for listRoutines - RequestOptions requestOptions = new RequestOptions(); - if (limit != null) { - requestOptions.addQueryParam("limit", String.valueOf(limit), false); - } - if (after != null) { - requestOptions.addQueryParam("after", after, false); - } - if (order != null) { - requestOptions.addQueryParam("order", order.toString(), false); - } - return serviceClient.listRoutines(requestOptions) - .mapPage(bodyItemValue -> bodyItemValue.toObject(Routine.class)); - } - - /** - * List prior runs for a routine + * Queue an asynchronous routine dispatch * - * Returns prior runs recorded for the specified routine. + * Queues an asynchronous dispatch for the specified routine. * * @param routineName The unique name of the routine. - * @param filter An optional MLflow search-runs filter expression applied within the routine's experiment. - * @param limit The maximum number of runs to return. - * @param after An opaque continuation token identifying where to resume the list. Prefer following the `next_link` - * returned by the previous response, which embeds this value. - * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` - * for descending order. * @throws IllegalArgumentException thrown if parameters fail the validation. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return a page of items with a URL cursor to the next page as paginated response with {@link PagedIterable}. + * @return identifiers returned after a routine dispatch is queued. */ @Generated - @ServiceMethod(returns = ReturnType.COLLECTION) - public PagedIterable listRoutineRuns(String routineName, String filter, Integer limit, String after, - PageOrder order) { - // Generated convenience method for listRoutineRuns + @ServiceMethod(returns = ReturnType.SINGLE) + public DispatchRoutineResult dispatchRoutine(String routineName) { + // Generated convenience method for dispatchRoutineWithResponse RequestOptions requestOptions = new RequestOptions(); - if (filter != null) { - requestOptions.addQueryParam("filter", filter, false); - } - if (limit != null) { - requestOptions.addQueryParam("limit", String.valueOf(limit), false); - } - if (after != null) { - requestOptions.addQueryParam("after", after, false); - } - if (order != null) { - requestOptions.addQueryParam("order", order.toString(), false); - } - return serviceClient.listRoutineRuns(routineName, requestOptions) - .mapPage(bodyItemValue -> bodyItemValue.toObject(RoutineRun.class)); + DispatchRoutineAsyncRequest dispatchRoutineAsyncRequestObj = new DispatchRoutineAsyncRequest(); + BinaryData dispatchRoutineAsyncRequest = BinaryData.fromObject(dispatchRoutineAsyncRequestObj); + return dispatchRoutineWithResponse(routineName, dispatchRoutineAsyncRequest, requestOptions).getValue() + .toObject(DispatchRoutineResult.class); } /** - * Create or update a routine - * - * Creates a new routine or replaces an existing routine with the supplied definition. + * Creates a new routine or replaces an existing routine without authorization. * * @param routineName The unique name of the routine. - * @param description A human-readable description of the routine. + * @param description The routine description. * @param enabled Whether the routine is enabled. - * @param triggers The triggers configured for the routine. In v1, exactly one trigger entry is supported. - * @param action The action executed when the routine fires. - * @param authorization Optional authorization configuration for dispatching a newly created routine. Ignored when - * updating an existing routine. - * @throws IllegalArgumentException thrown if parameters fail the validation. - * @throws HttpResponseException thrown if the request is rejected by server. - * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. - * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. - * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. - * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. - * @return a routine definition returned by the service. + * @param triggers The triggers that invoke the routine. + * @param action The action performed by the routine. + * @return The created or updated routine. */ - @Generated - @ServiceMethod(returns = ReturnType.SINGLE) + @ServiceMethod(returns = com.azure.core.annotation.ReturnType.SINGLE) public Routine createOrUpdateRoutine(String routineName, String description, Boolean enabled, - Map triggers, RoutineAction action, RoutineAuthorization authorization) { - // Generated convenience method for createOrUpdateRoutineWithResponse - RequestOptions requestOptions = new RequestOptions(); - CreateOrUpdateRoutineRequest createOrUpdateRoutineRequestObj - = new CreateOrUpdateRoutineRequest().setDescription(description) - .setEnabled(enabled) - .setTriggers(triggers) - .setAction(action) - .setAuthorization(authorization); - BinaryData createOrUpdateRoutineRequest = BinaryData.fromObject(createOrUpdateRoutineRequestObj); - return createOrUpdateRoutineWithResponse(routineName, createOrUpdateRoutineRequest, requestOptions).getValue() - .toObject(Routine.class); + Map triggers, RoutineAction action) { + return createOrUpdateRoutine(routineName, description, enabled, triggers, action, null); } } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java index 988019b20586..eb068c9cbc1a 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsight.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -20,6 +19,7 @@ */ @Immutable public final class AgentInsight implements JsonSerializable { + /* * The insight identifier. */ @@ -262,7 +262,6 @@ public static AgentInsight fromJson(JsonReader jsonReader) throws IOException { while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("id".equals(fieldName)) { deserializedAgentInsight.id = reader.getString(); } else if ("monitor_id".equals(fieldName)) { @@ -293,7 +292,6 @@ public static AgentInsight fromJson(JsonReader jsonReader) throws IOException { reader.skipChildren(); } } - return deserializedAgentInsight; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java index fa1e440a1646..64657d781a55 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -18,6 +17,7 @@ */ @Immutable public final class AgentInsightDetails implements JsonSerializable { + /* * Up to 5 highlighted traces that provide evidence for this insight. */ @@ -113,7 +113,6 @@ public static AgentInsightDetails fromJson(JsonReader jsonReader) throws IOExcep while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("highlighted_traces".equals(fieldName)) { highlightedTraces = reader.readArray(reader1 -> AgentInsightHighlightedTrace.fromJson(reader1)); } else if ("linked_traces".equals(fieldName)) { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java index b0b140da6432..6745ad9d3b5e 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -17,6 +16,7 @@ */ @Immutable public final class AgentInsightEstimatedCost implements JsonSerializable { + /* * Estimated cost amount. */ @@ -88,7 +88,6 @@ public static AgentInsightEstimatedCost fromJson(JsonReader jsonReader) throws I while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("amount".equals(fieldName)) { amount = reader.getDouble(); } else { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java index abf805582438..41100a5cc753 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightHighlightedTrace.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -21,6 +20,7 @@ */ @Immutable public final class AgentInsightHighlightedTrace implements JsonSerializable { + /* * The trace identifier. */ @@ -159,7 +159,6 @@ public static AgentInsightHighlightedTrace fromJson(JsonReader jsonReader) throw while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("trace_id".equals(fieldName)) { traceId = reader.getString(); } else if ("summary".equals(fieldName)) { @@ -178,7 +177,6 @@ public static AgentInsightHighlightedTrace fromJson(JsonReader jsonReader) throw = new AgentInsightHighlightedTrace(summary, durationMs, timestamp); deserializedAgentInsightHighlightedTrace.traceId = traceId; deserializedAgentInsightHighlightedTrace.totalTokens = totalTokens; - return deserializedAgentInsightHighlightedTrace; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java index 13b07d626fb7..d15c72aa2c5f 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightLinkedTrace.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -20,6 +19,7 @@ */ @Immutable public final class AgentInsightLinkedTrace implements JsonSerializable { + /* * The trace identifier. */ @@ -85,7 +85,6 @@ public static AgentInsightLinkedTrace fromJson(JsonReader jsonReader) throws IOE while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("trace_id".equals(fieldName)) { deserializedAgentInsightLinkedTrace.traceId = reader.getString(); } else if ("timestamp".equals(fieldName)) { @@ -94,7 +93,6 @@ public static AgentInsightLinkedTrace fromJson(JsonReader jsonReader) throws IOE reader.skipChildren(); } } - return deserializedAgentInsightLinkedTrace; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java index a30472506620..fd8b7ac53a17 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitor.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -20,6 +19,7 @@ */ @Immutable public final class AgentInsightMonitor implements JsonSerializable { + /* * The monitor identifier. */ @@ -220,7 +220,6 @@ public static AgentInsightMonitor fromJson(JsonReader jsonReader) throws IOExcep while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("id".equals(fieldName)) { deserializedAgentInsightMonitor.id = reader.getString(); } else if ("agent_name".equals(fieldName)) { @@ -245,7 +244,6 @@ public static AgentInsightMonitor fromJson(JsonReader jsonReader) throws IOExcep reader.skipChildren(); } } - return deserializedAgentInsightMonitor; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java index b257f011bb5a..3570f92feba6 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorCreate.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Fluent; @@ -17,6 +16,7 @@ */ @Fluent public final class AgentInsightMonitorCreate implements JsonSerializable { + /* * The agent this monitor should analyze. */ @@ -152,7 +152,6 @@ public static AgentInsightMonitorCreate fromJson(JsonReader jsonReader) throws I while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("agent_name".equals(fieldName)) { agentName = reader.getString(); } else if ("model_deployment_name".equals(fieldName)) { @@ -169,7 +168,6 @@ public static AgentInsightMonitorCreate fromJson(JsonReader jsonReader) throws I = new AgentInsightMonitorCreate(agentName, modelDeploymentName); deserializedAgentInsightMonitorCreate.enabled = enabled; deserializedAgentInsightMonitorCreate.runIntervalHours = runIntervalHours; - return deserializedAgentInsightMonitorCreate; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java index 7e6720367a79..50edc1eb166e 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorListItem.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -20,6 +19,7 @@ */ @Immutable public final class AgentInsightMonitorListItem implements JsonSerializable { + /* * The monitor identifier. */ @@ -204,7 +204,6 @@ public static AgentInsightMonitorListItem fromJson(JsonReader jsonReader) throws while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("id".equals(fieldName)) { deserializedAgentInsightMonitorListItem.id = reader.getString(); } else if ("agent_name".equals(fieldName)) { @@ -228,7 +227,6 @@ public static AgentInsightMonitorListItem fromJson(JsonReader jsonReader) throws reader.skipChildren(); } } - return deserializedAgentInsightMonitorListItem; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java index 22f97aa943d9..1d21791dd6e3 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.ai.projects.implementation.JsonMergePatchHelper; @@ -20,6 +19,7 @@ */ @Fluent public final class AgentInsightMonitorUpdate implements JsonSerializable { + /* * Whether scheduled insight generation is armed for the monitor. */ @@ -63,6 +63,7 @@ private void serializeAsJsonMergePatch(boolean jsonMergePatch) { static { JsonMergePatchHelper .setAgentInsightMonitorUpdateAccessor(new JsonMergePatchHelper.AgentInsightMonitorUpdateAccessor() { + @Override public AgentInsightMonitorUpdate prepareModelForJsonMergePatch(AgentInsightMonitorUpdate model, boolean jsonMergePatchEnabled) { @@ -253,7 +254,6 @@ public static AgentInsightMonitorUpdate fromJson(JsonReader jsonReader) throws I while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("enabled".equals(fieldName)) { deserializedAgentInsightMonitorUpdate.enabled = reader.getNullable(JsonReader::getBoolean); } else if ("run_interval_hours".equals(fieldName)) { @@ -267,7 +267,6 @@ public static AgentInsightMonitorUpdate fromJson(JsonReader jsonReader) throws I reader.skipChildren(); } } - return deserializedAgentInsightMonitorUpdate; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java index be493d572289..9b89931c1869 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * Identifies where an Agent Insights overview came from. */ public final class AgentInsightOverviewSource extends ExpandableStringEnum { + /** * The overview was generated by Agent Insights. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java index 023452dbf0e7..4108044a9570 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * The Prompt surface changed by a proposed fix. */ public final class AgentInsightPromptSurface extends ExpandableStringEnum { + /** * The Prompt instructions. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java index 4975768d24c9..0ece70f570b3 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFix.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -18,6 +17,7 @@ */ @Immutable public final class AgentInsightProposedFix implements JsonSerializable { + /* * The proposed-fix discriminator. */ @@ -109,7 +109,6 @@ public static AgentInsightProposedFix fromJson(JsonReader jsonReader) throws IOE while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("kind".equals(fieldName)) { kind = AgentInsightProposedFixKind.fromString(reader.getString()); } else if ("text".equals(fieldName)) { @@ -122,7 +121,6 @@ public static AgentInsightProposedFix fromJson(JsonReader jsonReader) throws IOE } AgentInsightProposedFix deserializedAgentInsightProposedFix = new AgentInsightProposedFix(kind, text); deserializedAgentInsightProposedFix.changes = changes; - return deserializedAgentInsightProposedFix; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java index 0d8ba60f862a..58baa54c1c94 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixChange.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -18,6 +17,7 @@ */ @Immutable public final class AgentInsightProposedFixChange implements JsonSerializable { + /* * The source path changed by a code change. */ @@ -178,7 +178,6 @@ public static AgentInsightProposedFixChange fromJson(JsonReader jsonReader) thro while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("path".equals(fieldName)) { deserializedAgentInsightProposedFixChange.path = reader.getString(); } else if ("language".equals(fieldName)) { @@ -200,7 +199,6 @@ public static AgentInsightProposedFixChange fromJson(JsonReader jsonReader) thro reader.skipChildren(); } } - return deserializedAgentInsightProposedFixChange; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java index c561d44561c5..bed0ac439956 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * The customer-renderable kind of an agent insight's proposed fix. */ public final class AgentInsightProposedFixKind extends ExpandableStringEnum { + /** * Text-only remediation guidance. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java index c3d00332643b..183ef3238e86 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -17,6 +16,7 @@ */ @Immutable public final class AgentInsightRecommendedAction implements JsonSerializable { + /* * The single recommended fix for the issue represented by the insight. */ @@ -70,7 +70,6 @@ public static AgentInsightRecommendedAction fromJson(JsonReader jsonReader) thro while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("proposed_fix".equals(fieldName)) { proposedFix = AgentInsightProposedFix.fromJson(reader); } else { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java index f8323d2360d3..d6a7fded16c2 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRun.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -20,6 +19,7 @@ */ @Immutable public final class AgentInsightRun implements JsonSerializable { + /* * Server-assigned unique identifier. */ @@ -300,7 +300,6 @@ public static AgentInsightRun fromJson(JsonReader jsonReader) throws IOException while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("id".equals(fieldName)) { deserializedAgentInsightRun.id = reader.getString(); } else if ("status".equals(fieldName)) { @@ -335,7 +334,6 @@ public static AgentInsightRun fromJson(JsonReader jsonReader) throws IOException reader.skipChildren(); } } - return deserializedAgentInsightRun; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java index f33855397953..4b2af76b380d 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunCreate.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Fluent; @@ -17,6 +16,7 @@ */ @Fluent public final class AgentInsightRunCreate implements JsonSerializable { + /* * Optional finite positive number of hours of trace history to analyze, up to 2,160. Defaults to 168. */ @@ -80,14 +80,12 @@ public static AgentInsightRunCreate fromJson(JsonReader jsonReader) throws IOExc while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("lookback_hours".equals(fieldName)) { deserializedAgentInsightRunCreate.lookbackHours = reader.getNullable(JsonReader::getDouble); } else { reader.skipChildren(); } } - return deserializedAgentInsightRunCreate; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java index 0d4e4ea2c152..5289d117932d 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -17,6 +16,7 @@ */ @Immutable public final class AgentInsightRunResult implements JsonSerializable { + /* * The number of traces in the analyzed time window. */ @@ -171,7 +171,6 @@ public static AgentInsightRunResult fromJson(JsonReader jsonReader) throws IOExc while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("traces_in_window".equals(fieldName)) { tracesInWindow = reader.getInt(); } else if ("traces_analyzed".equals(fieldName)) { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java index e8d7296334fb..5d74e28aee5c 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * The trigger that started an agent insight run. */ public final class AgentInsightRunTrigger extends ExpandableStringEnum { + /** * The run was started on demand by a user or client. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java index 0d9317a89d19..bbd380e8f5ca 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * The severity of an agent insight. */ public final class AgentInsightSeverity extends ExpandableStringEnum { + /** * The insight has high severity. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java index cfde79b55189..0635a8094e22 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * The lifecycle status of an agent insight. */ public final class AgentInsightStatus extends ExpandableStringEnum { + /** * The insight is active and should be reviewed. */ diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java index d2238376144f..993cc80ccca8 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSuspension.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -22,6 +21,7 @@ */ @Immutable public final class AgentInsightSuspension implements JsonSerializable { + /* * Stable, machine-readable suspension category. */ @@ -143,7 +143,6 @@ public static AgentInsightSuspension fromJson(JsonReader jsonReader) throws IOEx while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("code".equals(fieldName)) { code = reader.getString(); } else if ("message".equals(fieldName)) { @@ -160,7 +159,6 @@ public static AgentInsightSuspension fromJson(JsonReader jsonReader) throws IOEx AgentInsightSuspension deserializedAgentInsightSuspension = new AgentInsightSuspension(code, message, occurredAt); deserializedAgentInsightSuspension.details = details; - return deserializedAgentInsightSuspension; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java index a05a63a5b0bc..cdeec8bf2158 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightTokenUsage.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -17,6 +16,7 @@ */ @Immutable public final class AgentInsightTokenUsage implements JsonSerializable { + /* * The number of input tokens used by the run. */ @@ -128,7 +128,6 @@ public static AgentInsightTokenUsage fromJson(JsonReader jsonReader) throws IOEx while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("input_tokens".equals(fieldName)) { inputTokens = reader.getInt(); } else if ("output_tokens".equals(fieldName)) { @@ -144,7 +143,6 @@ public static AgentInsightTokenUsage fromJson(JsonReader jsonReader) throws IOEx AgentInsightTokenUsage deserializedAgentInsightTokenUsage = new AgentInsightTokenUsage(inputTokens, outputTokens, totalTokens); deserializedAgentInsightTokenUsage.cachedTokens = cachedTokens; - return deserializedAgentInsightTokenUsage; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java index 7013745086f0..19af8d3fd0aa 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.ai.projects.implementation.JsonMergePatchHelper; @@ -20,6 +19,7 @@ */ @Fluent public final class AgentInsightUpdate implements JsonSerializable { + /* * The lifecycle status to apply to the insight. */ @@ -42,6 +42,7 @@ private void serializeAsJsonMergePatch(boolean jsonMergePatch) { static { JsonMergePatchHelper.setAgentInsightUpdateAccessor(new JsonMergePatchHelper.AgentInsightUpdateAccessor() { + @Override public AgentInsightUpdate prepareModelForJsonMergePatch(AgentInsightUpdate model, boolean jsonMergePatchEnabled) { @@ -129,14 +130,12 @@ public static AgentInsightUpdate fromJson(JsonReader jsonReader) throws IOExcept while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("status".equals(fieldName)) { deserializedAgentInsightUpdate.status = AgentInsightStatus.fromString(reader.getString()); } else { reader.skipChildren(); } } - return deserializedAgentInsightUpdate; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java index 52b75ee4caf7..76c4e88c74c3 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -20,6 +19,7 @@ */ @Immutable public final class AgentInsightsOverview implements JsonSerializable { + /* * The overview content. */ @@ -117,7 +117,6 @@ public static AgentInsightsOverview fromJson(JsonReader jsonReader) throws IOExc while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("content".equals(fieldName)) { content = reader.getString(); } else if ("source".equals(fieldName)) { diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java index f84b96332722..4fd1a0153650 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.ai.projects.implementation.JsonMergePatchHelper; @@ -20,6 +19,7 @@ */ @Fluent public final class AgentInsightsOverviewOverride implements JsonSerializable { + /* * The nonblank overview content, limited to 64 KiB when encoded as UTF-8. */ @@ -43,6 +43,7 @@ private void serializeAsJsonMergePatch(boolean jsonMergePatch) { static { JsonMergePatchHelper .setAgentInsightsOverviewOverrideAccessor(new JsonMergePatchHelper.AgentInsightsOverviewOverrideAccessor() { + @Override public AgentInsightsOverviewOverride prepareModelForJsonMergePatch(AgentInsightsOverviewOverride model, boolean jsonMergePatchEnabled) { @@ -132,14 +133,12 @@ public static AgentInsightsOverviewOverride fromJson(JsonReader jsonReader) thro while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("content".equals(fieldName)) { deserializedAgentInsightsOverviewOverride.content = reader.getString(); } else { reader.skipChildren(); } } - return deserializedAgentInsightsOverviewOverride; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java index 8b95f71b4258..42b24dd84795 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineAuthorization.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Fluent; @@ -17,6 +16,7 @@ */ @Fluent public final class RoutineAuthorization implements JsonSerializable { + /* * 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. @@ -81,14 +81,12 @@ public static RoutineAuthorization fromJson(JsonReader jsonReader) throws IOExce while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); - if ("identity".equals(fieldName)) { deserializedRoutineAuthorization.identity = RoutineDispatchIdentity.fromString(reader.getString()); } else { reader.skipChildren(); } } - return deserializedRoutineAuthorization; }); } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java index a83412329ab0..332b3e8eefea 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java @@ -1,7 +1,6 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. // Code generated by Microsoft (R) TypeSpec Code Generator. - package com.azure.ai.projects.models; import com.azure.core.annotation.Generated; @@ -12,6 +11,7 @@ * The supported identities for routine dispatch authorization. */ public final class RoutineDispatchIdentity extends ExpandableStringEnum { + /** * Dispatches with the target agent identity and a foundation token. */ diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsAsyncSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsAsyncSample.java index 7002031942d6..ae40c1b16cd2 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsAsyncSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsAsyncSample.java @@ -5,6 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -21,7 +22,7 @@ public static void main(String[] args) { .buildAgentsAsyncClient(); PromptAgentDefinition request = new PromptAgentDefinition(model); - AgentVersionDetails agent = agentsClient.createAgentVersion("agent_created_from_java", request).block(); + AgentVersionDetails agent = agentsClient.createAgentVersion("agent-created-from-java", new CreateAgentVersionInput(request)).block(); System.out.println("Agent ID: " + agent.getId()); System.out.println("Agent Name: " + agent.getName()); diff --git a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsSample.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsSample.java index be5dc87113ef..d0c8398c172c 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsSample.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/AgentsSample.java @@ -5,6 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.CreateAgentVersionInput; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -21,7 +22,7 @@ public static void main(String[] args) { .buildAgentsClient(); PromptAgentDefinition request = new PromptAgentDefinition(model); - AgentVersionDetails agent = agentsClient.createAgentVersion("agent_created_from_java", request); + AgentVersionDetails agent = agentsClient.createAgentVersion("agent-created-from-java", new CreateAgentVersionInput(request)); System.out.println("Agent ID: " + agent.getId()); System.out.println("Agent Name: " + agent.getName()); From 5b707a06601b0f69e64b9fdfb23bace1b1312ddf Mon Sep 17 00:00:00 2001 From: Mike Guo Date: Wed, 2 Sep 2026 08:58:59 +0800 Subject: [PATCH 3/3] Add Azure AI spelling terms Co-Authored-By: Claude --- sdk/ai/cspell.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdk/ai/cspell.yml b/sdk/ai/cspell.yml index 8c7162df88f0..cf77de5f3ae3 100644 --- a/sdk/ai/cspell.yml +++ b/sdk/ai/cspell.yml @@ -8,11 +8,16 @@ import: - ../../.vscode/cspell.json words: - "aisearch" + - "BYOS" - "byot" - "csdl" - "dedup" - "fourx" - "gitmcp" + - "pcma" + - "pcmu" - "sixx" - "ubinary" - "upia" + - "webrtc" + - "xhigh"