diff --git a/eng/versioning/version_client.txt b/eng/versioning/version_client.txt index 56637e2d7951..447690769b64 100644 --- a/eng/versioning/version_client.txt +++ b/eng/versioning/version_client.txt @@ -37,7 +37,7 @@ com.azure:azure-data-sdk-parent;1.3.0;1.3.0 com.azure:azure-sdk-parent;1.6.0;1.6.0 com.azure:azure-client-sdk-parent;1.7.0;1.7.0 com.azure:azure-ai-agents-persistent;1.0.0-beta.2;1.0.0-beta.3 -com.azure:azure-ai-agents;2.4.0;2.5.0-beta.1 +com.azure:azure-ai-agents;2.4.0;2.5.0 com.azure:azure-ai-anomalydetector;3.0.0-beta.5;3.0.0-beta.6 com.azure:azure-ai-contentsafety;1.0.20;1.1.0-beta.1 com.azure:azure-ai-contentunderstanding;1.0.0;1.1.0-beta.4 @@ -53,7 +53,7 @@ com.azure:azure-ai-openai;1.0.0-beta.16;1.0.0-beta.17 com.azure:azure-ai-openai-assistants;1.0.0-beta.5;1.0.0-beta.6 com.azure:azure-ai-openai-realtime;1.0.0-beta.1;1.0.0-beta.1 com.azure:azure-ai-openai-stainless;1.0.0-beta.1;1.0.0-beta.1 -com.azure:azure-ai-projects;2.4.0;2.5.0-beta.1 +com.azure:azure-ai-projects;2.4.0;2.5.0 com.azure:azure-ai-speech-transcription;1.0.0;1.1.0-beta.1 com.azure:azure-ai-textanalytics;5.5.15;5.6.0-beta.1 com.azure:azure-ai-textanalytics-perf;1.0.0-beta.1;1.0.0-beta.1 diff --git a/sdk/ai/azure-ai-agents/CHANGELOG.md b/sdk/ai/azure-ai-agents/CHANGELOG.md index 2611fc2732fa..3e35251dafd8 100644 --- a/sdk/ai/azure-ai-agents/CHANGELOG.md +++ b/sdk/ai/azure-ai-agents/CHANGELOG.md @@ -1,15 +1,63 @@ # Release History -## 2.5.0-beta.1 (Unreleased) +## 2.5.0 (Unreleased) ### Features Added +- Added persisted realtime message items for voice-agent conversations: + `RealtimeConversationItemMessageSystem`, `RealtimeConversationItemMessageUser`, and + `RealtimeConversationItemMessageAssistant`, including role-specific content models and + `RealtimeConversationItemType.MESSAGE`. +- Added `VoiceAgentInputTranscription.setLanguages(...)` and `setKeywords(...)`. +- Added `WebSearchTool.setExternalWebAccess(...)` and `WebSearchToolboxTool.setExternalWebAccess(...)`. +- Added `ImageGenToolModel.GPT_IMAGE_2` and `GPT_IMAGE_2_2026_04_21`. +- Added broad voice-agent support: `VoiceAgentDefinition` (agent kind `voice`) with audio input/output configuration, + avatar rendering, turn-detection (server and semantic VAD), noise reduction, input transcription, greeting + configuration, and function/MCP/toolbox/system tools. Realtime conversation items now also support MCP tool calls + and list-tools results (`RealtimeMCPToolCall`, `RealtimeMCPListTools`, `RealtimeMCPApprovalRequest` / + `RealtimeMCPApprovalResponse`). +- Added the beta `BetaAgentEndpointConversationsClient` / `BetaAgentEndpointConversationsAsyncClient` (via + `AgentsClientBuilder.beta()`) for listing/getting/deleting persisted voice-agent conversations, their responses and + conversation items, and the associated audio content. +- Added Microsoft 365 agent publishing. `AgentsClient` / `AgentsAsyncClient` gained `publishAgentToMicrosoft365`, + `getMicrosoft365AppPackage`, and `getMicrosoft365PublishDefaults` (plus `WithResponse` overloads), backed by new + `PublishAgentToMicrosoft365Options`, `GetMicrosoft365AppPackageOptions`, `Microsoft365PublishResponse`, + `Microsoft365PublishDefaults`, `Microsoft365PublishScope`, and `Microsoft365PermissionScopes` models. + `AgentEndpointConfig.getPublishApprovalStatus()` exposes the Microsoft 365 store review status through the new + `PublishApprovalStatus` enum. +- Added digital-worker (formerly "autopilot") support: the `DigitalWorkerType` enum, `AgentDetails.getDigitalWorkerType()`, + and a `publishAsAutopilot` option on the Microsoft 365 publish/app-package options to publish an agent as a + Microsoft 365 digital worker. +- Added activity-protocol access boundaries: the `ActivityProtocolAccessBoundary` enum and + `ActivityProtocolConfiguration.getAccessBoundaries()`, plus matching `accessBoundaries` options on the Microsoft 365 + publish/app-package options, to scope developer/manager/tenant read and write access for one-on-one and group + conversations. +- Added Model Router support: `ModelRouterDetails`, `ModelRouterMode`, `ModelRouterAttempt` / + `ModelRouterAttemptResult` / `ModelRouterAttemptError`, `RoutingTraceEntry`, and `ModelSelectionDetails` (exposed via + `AzureCreateResponseDetails.getModelSelectionDetails()`) provide visibility into automatic model-selection routing + decisions. +- Added `WebIqPreviewTool` / `WebIqPreviewToolboxTool` for connecting an agent to a WebIQ MCP server. +- Added `ShellToolboxTool` for running shell commands in an automatically provisioned or existing container, + configured via `ToolboxShellEnvironment`, `ToolboxShellContainerAutoEnvironment`, + `ToolboxShellContainerReferenceEnvironment`, and `ToolboxShellNetworkPolicy`. +- Added hosted-agent session configuration: `SessionConfiguration` and + `HostedAgentDefinition.setSessionConfiguration()` / `getSessionConfiguration()` let callers set the idle-timeout + default applied to sessions created for a hosted-agent version. +- Added the `FoundryFeaturesOptInKeys.AGENT_INSIGHTS_V1_PREVIEW` opt-in flag for the Agent Insights preview feature + area. +- Added `AgentsClient.generateAgent` / `generateAgentWithResponse` (and async equivalents) to generate and create an + agent from kind-specific, high-level inputs. + ### Breaking Changes ### Bugs Fixed +- Fixed realtime message deserialization through `RealtimeConversationItem` and `VoiceResponse.getOutput()` so + concrete message roles and the persisted `created_at` and `response_id` values are preserved. + ### Other Changes +- Updated the OpenAI TypeSpec model dependency to 1.26.0. - Added sync and async conversation samples demonstrating the `x-ms-user-identity` header with the OpenAI ConversationService. - Added sync and async samples for draft agent versions, reminder toolbox tools, hosted-agent enable/disable, advanced memory-store workflows, and agent optimization. diff --git a/sdk/ai/azure-ai-agents/README.md b/sdk/ai/azure-ai-agents/README.md index 46df8730ab15..f718cb0fc10a 100644 --- a/sdk/ai/azure-ai-agents/README.md +++ b/sdk/ai/azure-ai-agents/README.md @@ -31,7 +31,7 @@ Various documentation is available to help you get started com.azure azure-ai-agents - 2.4.0 + 2.5.0 ``` [//]: # ({x-version-update-end}) @@ -267,17 +267,30 @@ conversationsClient.items().create( To scope conversation operations to a delegated end user, set `FOUNDRY_USER_IDENTITY` to an opaque application-generated value and apply it as the `x-ms-user-identity` header. The caller must have the `agents/endpoints/UserIdentityImpersonation/action` RBAC permission. See the sync [UserIdentityConversation.java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/conversations/UserIdentityConversation.java) and async [UserIdentityConversationAsync.java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/conversations/UserIdentityConversationAsync.java) samples. +#### Configure the agent endpoint + +Before invoking the agent, point its endpoint at the version you just created and enable the OpenAI Responses protocol on it: + +```java com.azure.ai.agents.configure_agent_endpoint +AgentEndpointConfig endpointConfig = new AgentEndpointConfig() + .setVersionSelector(new VersionSelector().setVersionSelectionRules(Collections.singletonList( + new FixedRatioVersionSelectionRule(100).setAgentVersion(agent.getVersion())))) + .setProtocolConfiguration(new ProtocolConfiguration().setResponses(new ResponsesProtocolConfiguration())); + +agentsClient.updateAgentDetails(agent.getName(), + new UpdateAgentDetailsOptions().setAgentEndpoint(endpointConfig)); +``` + #### Text generation with Responses -And the final step that ties everything together, we pass the `AgentReference` and the `conversation.id()` as parameters for the `Response` creation: +With the agent endpoint configured, invoke the OpenAI Responses API through an agent-scoped OpenAI client: ```java com.azure.ai.agents.create_response -AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); -Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder().conversation(conversation.id())); -// To extract Azure-specific response details: -AzureCreateResponseDetails azureResults = ResponsesClient.getAzureFields(response); +OpenAIClient agentScopedClient = builder.buildAgentScopedOpenAIClient(agent.getName()); + +Response response = agentScopedClient.responses().create(ResponseCreateParams.builder() + .conversation(conversation.id()) + .build()); ``` ### Using Agent tools @@ -744,16 +757,16 @@ The synchronous streaming methods return `IterableStream`, ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); // Stream response - text is printed as it arrives -IterableStream events = - responsesClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), +try (StreamResponse events = openAIClient.responses().createStreaming( ResponseCreateParams.builder() - .input("Tell me a short story about a brave explorer.")); + .input("Tell me a short story about a brave explorer.") + .build())) { -for (ResponseStreamEvent event : events) { - responseAccumulator.accumulate(event); - event.outputTextDelta() - .ifPresent(textEvent -> System.out.print(textEvent.delta())); + events.stream().forEach(event -> { + responseAccumulator.accumulate(event); + event.outputTextDelta() + .ifPresent(textEvent -> System.out.print(textEvent.delta())); + }); } System.out.println(); // newline after streamed text @@ -769,25 +782,28 @@ See the full samples in [SimpleStreamingSync.java](https://github.com/Azure/azur The asynchronous streaming methods return `Flux`, integrating naturally with Reactor pipelines: ```java com.azure.ai.agents.streaming.simple_async -// Use ResponseAccumulator to collect streamed events into a final Response -ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); - -// Stream response asynchronously - text is printed as each chunk arrives -return responsesAsyncClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), +// OpenAI streaming events arrive through callbacks. This Mono only tracks terminal completion. +Mono streamingCompletion = Mono.defer(() -> { + ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); + AsyncStreamResponse stream = openAIAsyncClient.responses().createStreaming( ResponseCreateParams.builder() - .input("Tell me a short story about a brave explorer.")) - .doOnNext(event -> { - responseAccumulator.accumulate(event); - event.outputTextDelta() - .ifPresent(textEvent -> System.out.print(textEvent.delta())); - }) - .then(Mono.fromCallable(() -> { - System.out.println(); // newline after streamed text + .input("Tell me a short story about a brave explorer.") + .build()); + + stream.subscribe(event -> responseAccumulator.accumulate(event) + .outputTextDelta() + .ifPresent(textEvent -> System.out.print(textEvent.delta()))); + + return Mono.fromFuture(stream.onCompleteFuture()) + .doOnSuccess(unused -> { + System.out.println(); // newline after streamed text - // Access the complete accumulated response - Response response = responseAccumulator.response(); - System.out.println("\nResponse ID: " + response.id()); + // Access the complete accumulated response + Response response = responseAccumulator.response(); + System.out.println("\nResponse ID: " + response.id()); + }) + .doFinally(signal -> stream.close()); +}); ``` See the full samples in [SimpleStreamingAsync.java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/SimpleStreamingAsync.java), [FunctionCallStreamingAsync.java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/FunctionCallStreamingAsync.java), and [CodeInterpreterStreamingAsync.java](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/streaming/CodeInterpreterStreamingAsync.java). @@ -936,7 +952,7 @@ For details on contributing to this repository, see the [contributing guide](htt [product_documentation]: https://aka.ms/azsdk/azure-ai-agents/product-doc -[docs]: https://azure.github.io/azure-sdk-for-java/ +[docs]: https://aka.ms/azsdk/azure-ai-projects-v2/api-reference-v1 [jdk]: https://learn.microsoft.com/azure/developer/java/fundamentals/ [azure_subscription]: https://azure.microsoft.com/free/ [azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity diff --git a/sdk/ai/azure-ai-agents/checkstyle-suppressions.xml b/sdk/ai/azure-ai-agents/checkstyle-suppressions.xml index 435a95ebd8e4..f182278d2359 100644 --- a/sdk/ai/azure-ai-agents/checkstyle-suppressions.xml +++ b/sdk/ai/azure-ai-agents/checkstyle-suppressions.xml @@ -10,6 +10,8 @@ + + diff --git a/sdk/ai/azure-ai-agents/customizations/beta-annotations.csv b/sdk/ai/azure-ai-agents/customizations/beta-annotations.csv index 89aca62cf5ca..6bea02ed8de7 100644 --- a/sdk/ai/azure-ai-agents/customizations/beta-annotations.csv +++ b/sdk/ai/azure-ai-agents/customizations/beta-annotations.csv @@ -3,12 +3,13 @@ class;com.azure.ai.agents.models.A2APreviewTool;Preview API. preview_tool; class;com.azure.ai.agents.models.A2APreviewToolboxTool;Preview API. preview_tool; class;com.azure.ai.agents.models.A2AToolCall;Preview API. preview_tool; class;com.azure.ai.agents.models.A2AToolCallOutput;Preview API. preview_tool; +field;com.azure.ai.agents.models.AgentDetails;Preview API. DigitalWorker=V1Preview;digital_worker_type class;com.azure.ai.agents.models.AgentOptimizationCandidate;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationDatasetCriterion;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationDatasetInput;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationDatasetInputType;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationDatasetItem;Preview API. AgentsOptimization=V2Preview; -class;com.azure.ai.agents.models.AgentOptimizationEvaluatorRef;Preview API. AgentsOptimization=V2Preview; +class;com.azure.ai.agents.models.AgentOptimizationEvaluatorReference;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationJob;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationJobInputs;Preview API. AgentsOptimization=V2Preview; @@ -18,6 +19,7 @@ class;com.azure.ai.agents.models.AgentOptimizationJobResult;Preview API. AgentsO class;com.azure.ai.agents.models.AgentOptimizationOptions;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput;Preview API. AgentsOptimization=V2Preview; field;com.azure.ai.agents.models.AgentVersionDetails;Preview API. DraftAgents=V1Preview;draft +field;com.azure.ai.agents.models.AzureCreateResponseDetails;Preview API. ModelRouterControls=V1Preview;model_selection_details class;com.azure.ai.agents.models.BingCustomSearchConfiguration;Preview API. preview_tool; class;com.azure.ai.agents.models.BingCustomSearchPreviewTool;Preview API. preview_tool; class;com.azure.ai.agents.models.BingCustomSearchToolCall;Preview API. preview_tool; @@ -30,7 +32,8 @@ class;com.azure.ai.agents.models.BrowserAutomationToolCallOutput;Preview API. pr class;com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters;Preview API. preview_tool; class;com.azure.ai.agents.models.BrowserAutomationToolParameters;Preview API. preview_tool; class;com.azure.ai.agents.models.ChatSummaryMemoryItem;Preview API. MemoryStores=V1Preview; -field;com.azure.ai.agents.models.CreateAgentVersionInput;Preview API. DraftAgents=V1Preview, ExternalAgents=V1Preview, WorkflowAgents=V1Preview;definition +field;com.azure.ai.agents.models.CreateAgentVersionInput;Preview API. DigitalWorker=V1Preview, DraftAgents=V1Preview, ExternalAgents=V1Preview, VoiceAgents=V1Preview, WorkflowAgents=V1Preview;definition +field;com.azure.ai.agents.models.CreateAgentVersionInput;Preview API. DigitalWorker=V1Preview;digital_worker_type field;com.azure.ai.agents.models.CreateAgentVersionInput;Preview API. DraftAgents=V1Preview;draft class;com.azure.ai.agents.models.ExternalAgentDefinition;Preview API. ExternalAgents=V1Preview; class;com.azure.ai.agents.models.FabricDataAgentToolCall;Preview API. preview_tool; @@ -60,16 +63,64 @@ class;com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult;Preview API. M class;com.azure.ai.agents.models.MemoryStoreUpdateResponse;Preview API. MemoryStores=V1Preview; class;com.azure.ai.agents.models.MemoryStoreUpdateStatus;Preview API. MemoryStores=V1Preview; class;com.azure.ai.agents.models.MicrosoftFabricPreviewTool;Preview API. preview_tool; +class;com.azure.ai.agents.models.ModelRouterAttempt;Preview API. ModelRouterControls=V1Preview; +class;com.azure.ai.agents.models.ModelRouterAttemptError;Preview API. ModelRouterControls=V1Preview; +class;com.azure.ai.agents.models.ModelRouterAttemptResult;Preview API. ModelRouterControls=V1Preview; +class;com.azure.ai.agents.models.ModelRouterDetails;Preview API. ModelRouterControls=V1Preview; +class;com.azure.ai.agents.models.ModelRouterMode;Preview API. ModelRouterControls=V1Preview; +class;com.azure.ai.agents.models.ModelRouterResponseHeaderValue;Preview API. ModelRouterControls=V1Preview; +class;com.azure.ai.agents.models.ModelSelectionDetails;Preview API. ModelRouterControls=V1Preview; class;com.azure.ai.agents.models.OptimizedAgentIdentifier;Preview API. AgentsOptimization=V2Preview; class;com.azure.ai.agents.models.ProceduralMemoryItem;Preview API. MemoryStores=V1Preview; class;com.azure.ai.agents.models.PromotionInfo;Preview API. AgentsOptimization=V2Preview; +class;com.azure.ai.agents.models.RealtimeConversationItemMessage;Preview API. VoiceAgents=V1Preview; class;com.azure.ai.agents.models.ReminderPreviewToolboxTool;Preview API. preview_tool; +field;com.azure.ai.agents.models.Response;Preview API. ModelRouterControls=V1Preview;model_selection_details +class;com.azure.ai.agents.models.RoutingTraceEntry;Preview API. ModelRouterControls=V1Preview; class;com.azure.ai.agents.models.SharepointGroundingToolCall;Preview API. preview_tool; class;com.azure.ai.agents.models.SharepointGroundingToolCallOutput;Preview API. preview_tool; class;com.azure.ai.agents.models.SharepointGroundingToolParameters;Preview API. preview_tool; class;com.azure.ai.agents.models.SharepointPreviewTool;Preview API. preview_tool; class;com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool;Preview API. preview_tool; class;com.azure.ai.agents.models.UserProfileMemoryItem;Preview API. MemoryStores=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAudioConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAudioInputConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAudioOutputConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAudioTimestampType;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAvatarConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAvatarOutputProtocol;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAvatarType;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAzureSemanticVadEnTurnDetection;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAzureSemanticVadMultilingualTurnDetection;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentAzureSemanticVadTurnDetection;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetection;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetectionModel;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentEndOfUtteranceThresholdLevel;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentGreetingConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentInputTranscription;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentInputTranscriptionModel;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentLlmGeneratedGreetingConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentMaxOutputTokens;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentMcpTool;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentNoiseReduction;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentNoiseReductionType;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentServerVadTurnDetection;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentSessionIncludeOption;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentSystemTool;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentSystemToolName;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentTemplateGreetingConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentTool;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentToolboxTool;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentToolChoice;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentToolResponseScheduling;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentTurnDetectionConfig;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceAgentTurnDetectionType;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceOutputModality;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceResponseAudio;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceResponseAudioOutput;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.VoiceType;Preview API. VoiceAgents=V1Preview; +class;com.azure.ai.agents.models.WebIqPreviewTool;Preview API. preview_tool; +class;com.azure.ai.agents.models.WebIqPreviewToolboxTool;Preview API. preview_tool; class;com.azure.ai.agents.models.WorkflowAgentDefinition;Preview API. WorkflowAgents=V1Preview; class;com.azure.ai.agents.models.WorkIqPreviewTool;Preview API. preview_tool; class;com.azure.ai.agents.models.WorkIqPreviewToolboxTool;Preview API. preview_tool; 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..b61d0f98ac68 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,17 @@ 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.NodeList; +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.AssignExpr; import com.github.javaparser.ast.expr.NormalAnnotationExpr; import com.github.javaparser.ast.expr.StringLiteralExpr; +import com.github.javaparser.ast.stmt.ExpressionStmt; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.charset.StandardCharsets; @@ -15,6 +20,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.slf4j.Logger; @@ -28,10 +34,386 @@ public class AgentsCustomizations extends Customization { public void customize(LibraryCustomization libraryCustomization, Logger logger) { renameImageGenToolSize(libraryCustomization, logger); modifyPollingStrategies(libraryCustomization, logger); + // makeRealtimeMessageDiscriminatorsFinal(libraryCustomization); + applyUnionTypeWrappers(libraryCustomization, logger); annotateBetaClients(libraryCustomization, logger); annotateBetaFields(libraryCustomization, loadBetaAnnotations(logger), logger); } + private static final String MODELS_PACKAGE = "com.azure.ai.agents.models"; + + private static final String UNION_MARKER = "AI Tooling: union type"; + + private static final String DEDUP_MARKER = "AI Tooling: openai-java de-dup"; + + private static final String OPENAI_JSON_HELPER = "com.azure.ai.agents.implementation.OpenAIJsonHelper"; + + // A union variant is described by a flat String[] rather than a helper type: the customization runner only loads + // the AgentsCustomizations class file, so no nested, local or anonymous class may be introduced here. + private static final int V_SETTER_TYPE = 0; + + private static final int V_GETTER_TYPE = 1; + + private static final int V_TO_OBJECT_ARG = 2; + + private static final int V_SUFFIX = 3; + + private static final int V_FACTORY = 4; + + private static final int V_PARAM_DOC = 5; + + private static final int V_RETURN_DOC = 6; + + private static final int V_TOKEN_GUARD = 7; + + private static final int V_EXTRA_IMPORT = 8; + + private static final int V_SETTER_NULLABLE = 9; + + private static final int V_OPENAI_IMPORT = 10; + + private static final int V_OPENAI_UNION_IMPORT = 11; + + private static final int V_OPENAI_UNION_TYPE = 12; + + private static final int V_OPENAI_METHOD_SUFFIX = 13; + + private static final int V_OPENAI_IS_METHOD = 14; + + private static final int V_OPENAI_AS_METHOD = 15; + + private static final int V_OPENAI_DOC = 16; + + private static final int V_SIZE = 17; + + /** + * Re-applies the typed union accessors on the generated models whose TypeSpec union properties are emitted as + * {@code BinaryData}. The generated {@code BinaryData} accessors are hidden from the public API surface (kept + * package-private for {@code fromJson}/{@code toJson} and tests) and one typed setter/getter pair is added per + * union variant. + */ + private void applyUnionTypeWrappers(LibraryCustomization customization, Logger logger) { + List requireApproval = Arrays.asList( + stringUnionVariant("the approval setting string to set (e.g., \"always\" or \"never\")"), + modelUnionVariant("McpToolRequireApproval", "the {@link McpToolRequireApproval} filter to set")); + List toolChoice = Arrays.asList( + stringUnionVariant( + "the tool-selection mode to set, one of {@code \"none\"}, {@code \"auto\"} or {@code \"required\"}"), + openAiUnionVariant("com.openai.models.responses.ToolChoiceFunction", + "com.openai.models.responses.ResponseCreateParams", "ResponseCreateParams.ToolChoice", + "FunctionToolChoice", "isFunction", "asFunction", "a specific function tool"), + openAiUnionVariant("com.openai.models.responses.ToolChoiceMcp", + "com.openai.models.responses.ResponseCreateParams", "ResponseCreateParams.ToolChoice", + "McpToolChoice", "isMcp", "asMcp", "a specific MCP tool")); + List maxOutputTokens = Arrays.asList( + numberUnionVariant("the maximum number of output tokens to set"), + stringUnionVariant( + "the token-limit string to set, for example {@code \"inf\"} for an unlimited count")); + List allowedTools + = Arrays.asList(stringListUnionVariant("the list of tool name strings to set"), + modelUnionVariant("McpToolFilter", "the {@link McpToolFilter} to set")); + + // customizeUnionProperty(customization, "VoiceAgentDefinition", "maxOutputTokens", + // "The maximum output-token count for one response.", maxOutputTokens, true, false, logger); + // customizeUnionProperty(customization, "VoiceAgentDefinition", "toolChoice", + // "How the model chooses tools for generated responses.", toolChoice, true, false, logger); + // customizeUnionProperty(customization, "VoiceAgentLlmGeneratedGreetingConfig", "toolChoice", + // "The tool-selection policy for the opening response. Defaults to `none`.", toolChoice, true, false, + // logger); + // customizeUnionProperty(customization, "VoiceAgentMcpTool", "allowedTools", "The allowed_tools property.", + // allowedTools, true, false, logger); + // customizeUnionProperty(customization, "VoiceAgentMcpTool", "requireApproval", + // "The require_approval property.", requireApproval, true, false, logger); + customizeUnionProperty(customization, "WebIqPreviewTool", "requireApproval", + "Whether the agent requires approval before executing actions. When omitted, the service defaults to" + + " \"always\".", + requireApproval, true, false, logger); + customizeUnionProperty(customization, "WebIqPreviewToolboxTool", "requireApproval", + "Whether the agent requires approval before executing actions. When omitted, the service defaults to" + + " \"always\".", + requireApproval, true, false, logger); + + // // VoiceResponseBase is an immutable output model: no public setters, and the typed getters read through the + // // (overridable) BinaryData accessor so that VoiceResponse, which shadows the field, is handled by the same + // // inherited public API. + // customizeUnionProperty(customization, "VoiceResponseBase", "maxOutputTokens", + // "Maximum number of output tokens for a single assistant response, inclusive of tool calls, that was used" + // + " in this response.", + // maxOutputTokens, false, true, logger); + // // VoiceResponse only re-declares the shadowed accessor; the typed getters are inherited from + // // VoiceResponseBase, so no public API is duplicated here. + // customizeUnionProperty(customization, "VoiceResponse", "maxOutputTokens", + // "Maximum number of output tokens for a single assistant response, inclusive of tool calls, that was used" + // + " in this response.", + // new ArrayList<>(), false, false, logger); + } + + private void customizeUnionProperty(LibraryCustomization customization, String className, String property, + String description, List variants, boolean addSetters, + boolean readThroughAccessor, Logger logger) { + ClassCustomization classCustomization; + try { + classCustomization = customization.getClass(MODELS_PACKAGE, className); + } catch (IllegalArgumentException ex) { + logger.warn("{}.{} does not exist; skipping union type wrappers.", className, property); + return; + } + + String capitalized = Character.toUpperCase(property.charAt(0)) + property.substring(1); + String getterName = "get" + capitalized; + String setterName = "set" + capitalized; + + classCustomization.customizeAst(ast -> ast.getClassByName(className).ifPresent(clazz -> { + boolean hidAccessor = false; + for (MethodDeclaration method : clazz.getMethodsByName(getterName)) { + if (method.getParameters().isEmpty() && isBinaryData(method.getType().asString())) { + hideAccessor(method); + hidAccessor = true; + } + } + for (MethodDeclaration method : clazz.getMethodsByName(setterName)) { + if (addSetters && method.getParameters().size() == 1 + && isBinaryData(method.getParameter(0).getType().asString())) { + hideAccessor(method); + } + } + + if (!hidAccessor) { + logger.error("Could not find a BinaryData {}() accessor on {}", getterName, className); + throw new IllegalStateException( + "Could not find a BinaryData " + getterName + "() accessor on " + className + "."); + } + + for (String[] variant : variants) { + if (variant[V_OPENAI_UNION_TYPE] != null) { + addOpenAIVariant(clazz, className, property, capitalized, description, variant, addSetters); + continue; + } + if (addSetters) { + // Reference variants must assign null directly: BinaryData.fromObject(null) yields a non-null + // wrapper whose toString() throws and which serializes an explicit JSON null. + String assignment = "true".equals(variant[V_SETTER_NULLABLE]) + ? property + " == null ? null : BinaryData." + variant[V_FACTORY] + "(" + property + ")" + : "BinaryData." + variant[V_FACTORY] + "(" + property + ")"; + addMethod(clazz, + "Set the " + property + " property: " + description + "\n\n@param " + property + " " + + variant[V_PARAM_DOC] + ".\n@return the " + className + " object itself.", + "public " + className + " " + setterName + "(" + variant[V_SETTER_TYPE] + " " + property + + ") {\n" + " // " + UNION_MARKER + "\n" + " this." + property + " = " + assignment + + ";\n" + " return this;\n" + "}"); + } + + String body = readThroughAccessor + ? " BinaryData value = " + getterName + "();\n" + " if (value == null) {\n" + + " return null;\n" + " }\n" + " String json = value.toString().trim();\n" + + " if (!(" + variant[V_TOKEN_GUARD] + ")) {\n" + " return null;\n" + " }\n" + + " return value.toObject(" + variant[V_TO_OBJECT_ARG] + ");\n" + : " if (this." + property + " == null) {\n" + " return null;\n" + " }\n" + + " String json = this." + property + ".toString().trim();\n" + " if (!(" + + variant[V_TOKEN_GUARD] + ")) {\n" + " return null;\n" + " }\n" + + " return this." + property + ".toObject(" + variant[V_TO_OBJECT_ARG] + ");\n"; + if (variant[V_EXTRA_IMPORT] != null) { + ast.addImport(variant[V_EXTRA_IMPORT]); + } + addMethod(clazz, + "Get the " + property + " property: " + description + "\n\n@return the " + property + " value as " + + variant[V_RETURN_DOC] + ".", + "public " + (readThroughAccessor ? "final " : "") + variant[V_GETTER_TYPE] + " " + getterName + + "As" + variant[V_SUFFIX] + "() {\n" + " // " + UNION_MARKER + "\n" + body + "}"); + } + + String[] openAiVariant = null; + for (String[] variant : variants) { + if (variant[V_OPENAI_UNION_TYPE] != null) { + openAiVariant = variant; + } + } + if (openAiVariant != null) { + ast.addImport(openAiVariant[V_OPENAI_UNION_IMPORT]); + addMethod(clazz, null, + "private " + openAiVariant[V_OPENAI_UNION_TYPE] + " getOpenAI" + capitalized + "() {\n" + " // " + + DEDUP_MARKER + "\n" + " if (this." + property + " == null) {\n" + + " return null;\n" + " }\n" + " String json = this." + property + + ".toString().trim();\n" + " if (!json.startsWith(\"{\")) {\n" + " return null;\n" + + " }\n" + " return " + OPENAI_JSON_HELPER + ".fromBinaryData(this." + property + ", " + + openAiVariant[V_OPENAI_UNION_TYPE] + ".class);\n" + "}"); + } + })); + } + + /** + * Adds the distinctly named openai-java accessors for one union variant that is represented by an openai-java + * model (the Azure equivalents are suppressed through {@code @@alternateType} in TypeSpec). Overloads are + * deliberately avoided because {@code null} arguments would be ambiguous between variants. + */ + private static void addOpenAIVariant(ClassOrInterfaceDeclaration clazz, String className, String property, + String capitalized, String description, String[] variant, + boolean addSetters) { + clazz.findCompilationUnit().ifPresent(unit -> unit.addImport(variant[V_OPENAI_IMPORT])); + if (addSetters) { + addMethod(clazz, + "Set the " + property + " property to " + variant[V_OPENAI_DOC] + ": " + description + "\n\n@param " + + property + " " + variant[V_PARAM_DOC] + ".\n@return the " + className + " object itself.", + "public " + className + " set" + variant[V_OPENAI_METHOD_SUFFIX] + "(" + variant[V_SETTER_TYPE] + " " + + property + ") {\n" + " // " + DEDUP_MARKER + "\n" + " this." + property + " = " + + OPENAI_JSON_HELPER + ".toBinaryData(" + property + ");\n" + " return this;\n" + "}"); + } + addMethod(clazz, + "Get the " + property + " property as an openai-java {@link " + variant[V_GETTER_TYPE] + "}: " + + description + "\n\n@return the " + property + " value as " + variant[V_RETURN_DOC] + + ", or {@code null} if it is not set or holds another variant.", + "public " + variant[V_GETTER_TYPE] + " get" + variant[V_OPENAI_METHOD_SUFFIX] + "() {\n" + " // " + + DEDUP_MARKER + "\n" + " " + variant[V_OPENAI_UNION_TYPE] + " choice = getOpenAI" + capitalized + + "();\n" + " if (choice == null || !choice." + variant[V_OPENAI_IS_METHOD] + "()) {\n" + + " return null;\n" + " }\n" + " return choice." + variant[V_OPENAI_AS_METHOD] + + "();\n" + "}"); + } + + private static boolean isBinaryData(String type) { + return "BinaryData".equals(type) || "com.azure.core.util.BinaryData".equals(type); + } + + /** + * Removes {@code @Generated}, drops the {@code public} modifier and stamps the union marker comment on a + * generated {@code BinaryData} accessor so that it is no longer part of the published API surface. + */ + private static void hideAccessor(MethodDeclaration method) { + method.getAnnotationByName("Generated").ifPresent(AnnotationExpr::remove); + method.setModifiers(new NodeList<>()); + method.getBody() + .filter(body -> !body.getStatements().isEmpty()) + .ifPresent(body -> body.getStatement(0).setLineComment(" " + UNION_MARKER)); + } + + private static void addMethod(ClassOrInterfaceDeclaration clazz, String javadoc, String methodSource) { + MethodDeclaration method = StaticJavaParser.parseMethodDeclaration(methodSource); + if (javadoc != null) { + method.setJavadocComment(javadoc); + } + clazz.addMember(method); + } + + /** + * Describes one variant of a TypeSpec union: how it is written to and read back from the backing + * {@code BinaryData} field. The slots are addressed through the {@code V_*} constants. + * + * @param setterType the parameter type of the generated setter. + * @param getterType the return type of the generated getter. + * @param toObjectArg the argument passed to {@code BinaryData.toObject}. + * @param suffix the {@code getAs} accessor suffix. + * @param factory the {@code BinaryData} factory method used by the setter. + * @param paramDoc the setter {@code @param} description. + * @param returnDoc the getter {@code @return} description. + * @param tokenGuard a boolean expression over the local {@code json} variable that is {@code true} only when the + * stored JSON token belongs to this variant, so cross-variant reads return {@code null} instead of throwing. + * @param extraImport an additional import the getter needs, or {@code null}. + * @param setterNullable whether the setter parameter is a reference type, in which case a {@code null} argument + * clears the property instead of being wrapped by {@code BinaryData.fromObject}. + * @return the union variant. + */ + private static String[] unionVariant(String setterType, String getterType, String toObjectArg, String suffix, + String factory, String paramDoc, String returnDoc, String tokenGuard, + String extraImport, boolean setterNullable) { + String[] variant = new String[V_SIZE]; + variant[V_SETTER_TYPE] = setterType; + variant[V_GETTER_TYPE] = getterType; + variant[V_TO_OBJECT_ARG] = toObjectArg; + variant[V_SUFFIX] = suffix; + variant[V_FACTORY] = factory; + variant[V_PARAM_DOC] = paramDoc; + variant[V_RETURN_DOC] = returnDoc; + variant[V_TOKEN_GUARD] = tokenGuard; + variant[V_EXTRA_IMPORT] = extraImport; + variant[V_SETTER_NULLABLE] = String.valueOf(setterNullable); + return variant; + } + + private static String[] stringUnionVariant(String paramDoc) { + // BinaryData.fromObject is used for strings as well: fromString stores raw text, which the matching + // toObject(String.class) read back cannot parse as JSON. Both factories write the same quoted JSON token. + return unionVariant("String", "String", "String.class", "String", "fromObject", paramDoc, + "a String, or {@code null} when it is not set or holds another variant", "json.startsWith(\"\\\"\")", + null, true); + } + + private static String[] numberUnionVariant(String paramDoc) { + return unionVariant("int", "Integer", "Integer.class", "Integer", "fromObject", paramDoc, + "an Integer, or {@code null} when it is not set or holds another variant", + "!json.isEmpty() && (Character.isDigit(json.charAt(0)) || json.charAt(0) == '-')", null, false); + } + + private static String[] stringListUnionVariant(String paramDoc) { + return unionVariant("List", "List", "new TypeReference>() { }", "StringList", + "fromObject", paramDoc, "a list of Strings, or {@code null} when it is not set or holds another variant", + "json.startsWith(\"[\")", "com.azure.core.util.serializer.TypeReference", true); + } + + private static String[] modelUnionVariant(String type, String paramDoc) { + return unionVariant(type, type, type + ".class", type, "fromObject", paramDoc, + "a {@link " + type + "}, or {@code null} when it is not set or holds another variant", + "json.startsWith(\"{\")", null, true); + } + + /** + * Declares a union variant that is represented by an openai-java model rather than a generated Azure model. + * Values are bridged through {@code OpenAIJsonHelper} and read back by discriminating on the openai-java + * union wrapper (for example {@code ResponseCreateParams.ToolChoice}). + * + * @param openAiImport the fully qualified openai-java variant class. + * @param unionImport the fully qualified openai-java union class used to discriminate the stored value. + * @param unionType the (possibly nested) name the union class is referenced by in source. + * @param methodSuffix the distinct accessor suffix, e.g. {@code FunctionToolChoice}. + * @param isMethod the union predicate method, e.g. {@code isFunction}. + * @param asMethod the union accessor method, e.g. {@code asFunction}. + * @param doc a short description of the variant used in the generated javadoc. + * @return the union variant. + */ + private static String[] openAiUnionVariant(String openAiImport, String unionImport, String unionType, + String methodSuffix, String isMethod, String asMethod, String doc) { + String simpleName = openAiImport.substring(openAiImport.lastIndexOf('.') + 1); + String[] variant = unionVariant(simpleName, simpleName, simpleName + ".class", simpleName, "fromObject", + "the openai-java {@link " + simpleName + "} to set, or null to clear", "a " + simpleName, + "json.startsWith(\"{\")", null, true); + variant[V_OPENAI_IMPORT] = openAiImport; + variant[V_OPENAI_UNION_IMPORT] = unionImport; + variant[V_OPENAI_UNION_TYPE] = unionType; + variant[V_OPENAI_METHOD_SUFFIX] = methodSuffix; + variant[V_OPENAI_IS_METHOD] = isMethod; + variant[V_OPENAI_AS_METHOD] = asMethod; + variant[V_OPENAI_DOC] = doc; + return variant; + } + + private void makeRealtimeMessageDiscriminatorsFinal(LibraryCustomization customization) { + for (String className : new String[] { + "RealtimeConversationItemMessage", + "RealtimeConversationItemMessageSystem", + "RealtimeConversationItemMessageUser", + "RealtimeConversationItemMessageAssistant" }) { + customization.getClass("com.azure.ai.agents.models", className) + .customizeAst(ast -> ast.getClassByName(className) + .flatMap(clazz -> clazz.getFieldByName("type")) + .ifPresent(field -> field.setModifiers(Modifier.Keyword.PRIVATE, Modifier.Keyword.FINAL))); + } + + for (String className : new String[] { + "RealtimeConversationItemMessageSystem", + "RealtimeConversationItemMessageUser", + "RealtimeConversationItemMessageAssistant" }) { + customization.getClass("com.azure.ai.agents.models", className).customizeAst(ast -> ast + .getClassByName(className) + .ifPresent(clazz -> { + clazz.getFieldByName("role") + .ifPresent(field -> field.setModifiers(Modifier.Keyword.PRIVATE, Modifier.Keyword.FINAL)); + clazz.getMethodsByName("fromJson") + .forEach(method -> method.findAll(AssignExpr.class).stream() + .filter(assignment -> assignment.getTarget().toString().endsWith(".role")) + .forEach(assignment -> assignment.findAncestor(ExpressionStmt.class) + .ifPresent(ExpressionStmt::remove))); + })); + } + } + 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() diff --git a/sdk/ai/azure-ai-agents/pom.xml b/sdk/ai/azure-ai-agents/pom.xml index 5f2af5fd12fe..8f0d083970cf 100644 --- a/sdk/ai/azure-ai-agents/pom.xml +++ b/sdk/ai/azure-ai-agents/pom.xml @@ -14,7 +14,7 @@ com.azure azure-ai-agents - 2.5.0-beta.1 + 2.5.0 jar Microsoft Azure SDK for Agents diff --git a/sdk/ai/azure-ai-agents/revapi.json b/sdk/ai/azure-ai-agents/revapi.json index d94240614405..0cac272ed8c8 100644 --- a/sdk/ai/azure-ai-agents/revapi.json +++ b/sdk/ai/azure-ai-agents/revapi.json @@ -4,6 +4,13 @@ "configuration": { "ignore": true, "differences": [ + { + "regex": true, + "code": "java\\.annotation\\.(added|attributeValueChanged|attributeAdded|attributeRemoved)", + "old": ".*com\\.azure\\.ai\\.agents\\..*", + "annotationType": "com\\.azure\\.ai\\.agents\\.implementation\\.utils\\.Beta", + "justification": "Adding or updating the preview @Beta annotation is metadata only and does not affect runtime behavior. Preview surface may still change between beta releases." + }, { "code": "java.method.numberOfParametersChanged", "old": { @@ -22,8 +29,8 @@ }, { "regex": true, - "code": "java\\.method\\.(numberOfParametersChanged|removed|returnTypeChanged|returnTypeTypeParametersChanged|visibilityIncreased)", - "old": "method .* com\\.azure\\.ai\\.agents\\.models\\.Optimization(Candidate|Job|JobInputs|JobProgress|JobResult|Options)::.*", + "code": "java\\.method\\.(numberOfParametersChanged|parameterTypeParameterChanged|removed|returnTypeChanged|returnTypeTypeParametersChanged|visibilityIncreased)", + "old": "(method|parameter) .* com\\.azure\\.ai\\.agents\\.models\\.(Agent)?Optimization(Candidate|DatasetItem|Job|JobInputs|JobProgress|JobResult|Options)::.*", "justification": "Breaking change in beta operation: optimization models were restructured to align with the current AgentsOptimization preview contract." }, { @@ -86,7 +93,7 @@ { "regex": true, "code": "java\\.class\\.removed", - "old": "class com\\.azure\\.ai\\.agents\\.models\\.(OptimizationAgentIdentifier|OptimizationCandidate|OptimizationDatasetCriterion|OptimizationDatasetInput|OptimizationDatasetInputType|OptimizationDatasetItem|OptimizationEvaluatorRef|OptimizationInlineDatasetInput|OptimizationJob|OptimizationJobInputs|OptimizationJobListItem|OptimizationJobProgress|OptimizationJobResult|OptimizationOptions|OptimizationReferenceDatasetInput|ProgrammaticToolCallingParameter)", + "old": "class com\\.azure\\.ai\\.agents\\.models\\.(AgentOptimizationEvaluatorRef|OptimizationAgentIdentifier|OptimizationCandidate|OptimizationDatasetCriterion|OptimizationDatasetInput|OptimizationDatasetInputType|OptimizationDatasetItem|OptimizationEvaluatorRef|OptimizationInlineDatasetInput|OptimizationJob|OptimizationJobInputs|OptimizationJobListItem|OptimizationJobProgress|OptimizationJobResult|OptimizationOptions|OptimizationReferenceDatasetInput|ProgrammaticToolCallingParameter)", "justification": "Breaking change in beta operation: legacy optimization and programmatic tool-calling models were removed or replaced while aligning with the current preview service contract." } ] 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..04b9d285f8f9 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; @@ -27,8 +29,12 @@ 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.Microsoft365PublishResult; 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; @@ -124,6 +130,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 +150,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) @@ -205,6 +216,7 @@ public Mono> getAgentWithResponse(String agentName, Request * blueprint_reference (Optional): { * type: String(ManagedAgentIdentityBlueprint) (Required) * } + * digital_worker_type: String(m365) (Optional) * draft: Boolean (Optional) * } * } @@ -484,36 +496,6 @@ 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 * @@ -538,6 +520,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 +534,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 +554,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) @@ -643,6 +630,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 +650,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) @@ -779,6 +771,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 +791,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 +841,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. @@ -949,6 +947,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 +967,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) @@ -1082,6 +1085,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 +1105,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) @@ -1622,6 +1630,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 +1650,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) @@ -1971,6 +1984,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()); @@ -1979,6 +1993,36 @@ Mono createAgent(CreateAgentOptions options) { .map(protocolMethodData -> protocolMethodData.toObject(AgentDetails.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 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. + * @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}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono createAgentVersion(String agentName, AgentDefinition definition) { + // The TypeSpec operation flattens more fields than the emitter allows for automatic convenience generation. + 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 a new agent version. * @@ -2184,7 +2228,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. @@ -2216,55 +2261,14 @@ Mono updateAgent(String agentName, AgentDefinition definition, Map } /** - * Create a new code-based agent + * Update an agent endpoint * - * 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. - * 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

+ * Applies a merge-patch update to the specified agent endpoint configuration. + *

Request 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) (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): [
@@ -2277,6 +2281,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,10 +2301,8 @@ 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)
      *     }
-     *     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)
@@ -2318,37 +2323,7 @@ Mono updateAgent(String agentName, AgentDefinition definition, Map
      * }
      * }
      * 
- * - * @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 - * verification. - * @param content The content multipart request content. - * @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) - Mono> createAgentFromCodeWithResponse(String agentName, String codeZipSha256, - BinaryData content, RequestOptions requestOptions) { - // Operation 'createAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and - // hence not generated. - return this.serviceClient.createAgentFromCodeWithResponseAsync(agentName, codeZipSha256, content, - requestOptions); - } - - /** - * 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

* *
@@ -2402,6 +2377,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 +2397,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)
@@ -2444,13 +2424,10 @@ Mono> createAgentFromCodeWithResponse(String agentName, Str
      * }
      * 
* - * @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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity - * verification. - * @param content The content multipart request content. + * @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. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -2460,282 +2437,37 @@ Mono> createAgentFromCodeWithResponse(String agentName, Str */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - Mono> updateAgentFromCodeWithResponse(String agentName, String codeZipSha256, - BinaryData content, RequestOptions requestOptions) { - // Operation 'updateAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and - // hence not generated. - return this.serviceClient.updateAgentFromCodeWithResponseAsync(agentName, codeZipSha256, content, + public Mono> updateAgentDetailsWithResponse(String agentName, + BinaryData patchAgentObjectRequest, RequestOptions requestOptions) { + return this.serviceClient.updateAgentDetailsWithResponseAsync(agentName, patchAgentObjectRequest, requestOptions); } /** - * Update an agent endpoint + * Download agent code * - * Applies a merge-patch update to the specified agent endpoint configuration. - *

Request Body Schema

+ * 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

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
agent_versionStringNoThe version of the agent whose code zip should be + * downloaded. + * If omitted, the latest version's code zip is returned.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

* *
      * {@code
-     * {
-     *     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)
-     *             }
-     *             responses (Optional): {
-     *             }
-     *             a2a (Optional): {
-     *             }
-     *             mcp (Optional): {
-     *             }
-     *             invocations (Optional): {
-     *             }
-     *             invocations_ws (Optional): {
-     *             }
-     *         }
-     *         authorization_schemes (Optional): [
-     *              (Optional){
-     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
-     *             }
-     *         ]
-     *     }
-     *     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)
-     *                 ]
-     *             }
-     *         ]
-     *     }
-     * }
-     * }
-     * 
- * - *

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) (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)
-     *             }
-     *             responses (Optional): {
-     *             }
-     *             a2a (Optional): {
-     *             }
-     *             mcp (Optional): {
-     *             }
-     *             invocations (Optional): {
-     *             }
-     *             invocations_ws (Optional): {
-     *             }
-     *         }
-     *         authorization_schemes (Optional): [
-     *              (Optional){
-     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
-     *             }
-     *         ]
-     *     }
-     *     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 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. - * @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> updateAgentDetailsWithResponse(String agentName, - BinaryData patchAgentObjectRequest, RequestOptions requestOptions) { - return this.serviceClient.updateAgentDetailsWithResponseAsync(agentName, patchAgentObjectRequest, - requestOptions); - } - - /** - * 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. - * 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
-     * {
-     *     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) (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)
-     * }
-     * }
-     * 
- * - * @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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity - * verification. - * @param content The content multipart request content. - * @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) - Mono> createAgentVersionFromCodeWithResponse(String agentName, String codeZipSha256, - BinaryData content, RequestOptions requestOptions) { - // Operation 'createAgentVersionFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable - // and hence not generated. - return this.serviceClient.createAgentVersionFromCodeWithResponseAsync(agentName, codeZipSha256, content, - requestOptions); - } - - /** - * 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

- * - * - * - * - *
Query Parameters
NameTypeRequiredDescription
agent_versionStringNoThe version of the agent whose code zip should be - * downloaded. - * If omitted, the latest version's code zip is returned.
- * You can add these to a request with {@link RequestOptions#addQueryParam} - *

Response Body Schema

- * - *
-     * {@code
-     * BinaryData
+     * BinaryData
      * }
      * 
* @@ -3384,9 +3116,9 @@ public Mono> deleteSessionFileWithResponse(String agentName, Stri @Generated @ServiceMethod(returns = ReturnType.SINGLE) Mono createAgentFromCode(String agentName, String codeZipSha256, CreateAgentFromCodeContent content) { - // Generated convenience method for createAgentFromCodeWithResponse + // Generated convenience method for createAgentFromCodeWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return createAgentFromCodeWithResponse(agentName, codeZipSha256, + return createAgentFromCodeWithResponseInternal(agentName, codeZipSha256, new MultipartFormDataHelper(requestOptions).serializeJsonField("metadata", content.getMetadata()) .serializeFileField("code", content.getCode().getContent(), content.getCode().getContentType(), content.getCode().getFilename()) @@ -3424,9 +3156,9 @@ Mono createAgentFromCode(String agentName, String codeZipSha256, C @ServiceMethod(returns = ReturnType.SINGLE) public Mono updateAgentFromCode(String agentName, String codeZipSha256, CreateAgentVersionFromCodeContent content) { - // Generated convenience method for updateAgentFromCodeWithResponse + // Generated convenience method for updateAgentFromCodeWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return updateAgentFromCodeWithResponse(agentName, codeZipSha256, + return updateAgentFromCodeWithResponseInternal(agentName, codeZipSha256, new MultipartFormDataHelper(requestOptions).serializeJsonField("metadata", content.getMetadata()) .serializeFileField("code", content.getCode().getContent(), content.getCode().getContentType(), content.getCode().getFilename()) @@ -3499,9 +3231,9 @@ public Mono updateAgentDetails(String agentName, UpdateAgentDetail @ServiceMethod(returns = ReturnType.SINGLE) public Mono createAgentVersionFromCode(String agentName, String codeZipSha256, CreateAgentVersionFromCodeContent content) { - // Generated convenience method for createAgentVersionFromCodeWithResponse + // Generated convenience method for createAgentVersionFromCodeWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return createAgentVersionFromCodeWithResponse(agentName, codeZipSha256, + return createAgentVersionFromCodeWithResponseInternal(agentName, codeZipSha256, new MultipartFormDataHelper(requestOptions).serializeJsonField("metadata", content.getMetadata()) .serializeFileField("code", content.getCode().getContent(), content.getCode().getContentType(), content.getCode().getFilename()) @@ -4293,4 +4025,671 @@ public PagedFlux listAgentVersions(String agentName, Intege pagedResponse.getContinuationToken(), null)); }); } + + /** + * 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); + } + + /** + * 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(Microsoft365PublishResult.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)); + } + + /** + * 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. + * 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
+     * {
+     *     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) (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 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 + * verification. + * @param content The content multipart request content. + * @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) + Mono> createAgentFromCodeWithResponseInternal(String agentName, String codeZipSha256, + BinaryData content, RequestOptions requestOptions) { + // Operation 'createAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and + // hence not generated. + return this.serviceClient.createAgentFromCodeWithResponseInternalAsync(agentName, codeZipSha256, content, + requestOptions); + } + + /** + * 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
+     * {
+     *     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) (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 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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity + * verification. + * @param content The content multipart request content. + * @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) + Mono> updateAgentFromCodeWithResponseInternal(String agentName, String codeZipSha256, + BinaryData content, RequestOptions requestOptions) { + // Operation 'updateAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and + // hence not generated. + return this.serviceClient.updateAgentFromCodeWithResponseInternalAsync(agentName, codeZipSha256, content, + requestOptions); + } + + /** + * 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. + * 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
+     * {
+     *     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) (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)
+     * }
+     * }
+     * 
+ * + * @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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity + * verification. + * @param content The content multipart request content. + * @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) + Mono> createAgentVersionFromCodeWithResponseInternal(String agentName, String codeZipSha256, + BinaryData content, RequestOptions requestOptions) { + // Operation 'createAgentVersionFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable + // and hence not generated. + return this.serviceClient.createAgentVersionFromCodeWithResponseInternalAsync(agentName, codeZipSha256, content, + requestOptions); + } } 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..524765040593 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; @@ -27,8 +29,12 @@ 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.Microsoft365PublishResult; 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; @@ -120,6 +126,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 +146,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) @@ -200,6 +211,7 @@ public Response getAgentWithResponse(String agentName, RequestOption * blueprint_reference (Optional): { * type: String(ManagedAgentIdentityBlueprint) (Required) * } + * digital_worker_type: String(m365) (Optional) * draft: Boolean (Optional) * } * } @@ -453,35 +465,6 @@ 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 * @@ -506,6 +489,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 +503,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 +523,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) @@ -611,6 +599,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 +619,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) @@ -747,6 +740,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 +760,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 +810,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. @@ -917,6 +916,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 +936,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) @@ -1049,6 +1053,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 +1073,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) @@ -1569,6 +1578,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 +1598,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) @@ -1904,6 +1918,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()); @@ -1911,6 +1926,35 @@ AgentDetails createAgent(CreateAgentOptions options) { return createAgentWithResponse(createAgentRequest, requestOptions).getValue().toObject(AgentDetails.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 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. + * @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. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public AgentVersionDetails createAgentVersion(String agentName, AgentDefinition definition) { + // The TypeSpec operation flattens more fields than the emitter allows for automatic convenience generation. + RequestOptions requestOptions = new RequestOptions(); + CreateAgentVersionRequest createAgentVersionRequestObj = new CreateAgentVersionRequest(definition); + BinaryData createAgentVersionRequest = BinaryData.fromObject(createAgentVersionRequestObj); + return createAgentVersionWithResponse(agentName, createAgentVersionRequest, requestOptions).getValue() + .toObject(AgentVersionDetails.class); + } + /** * Create a new agent version. * @@ -2090,7 +2134,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. @@ -2122,55 +2167,14 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition, MapResponse Body Schema

+ * Applies a merge-patch update to the specified agent endpoint configuration. + *

Request 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) (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): [
@@ -2183,6 +2187,9 @@ AgentDetails updateAgent(String agentName, AgentDefinition definition, Map
-     *
-     * @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
-     * verification.
-     * @param content The content multipart request content.
-     * @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)
-    Response createAgentFromCodeWithResponse(String agentName, String codeZipSha256, BinaryData content,
-        RequestOptions requestOptions) {
-        // Operation 'createAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and
-        // hence not generated.
-        return this.serviceClient.createAgentFromCodeWithResponse(agentName, codeZipSha256, content, requestOptions);
-    }
-
-    /**
-     * 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

* *
@@ -2307,6 +2283,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 +2303,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)
@@ -2349,13 +2330,10 @@ Response createAgentFromCodeWithResponse(String agentName, String co
      * }
      * 
* - * @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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity - * verification. - * @param content The content multipart request content. + * @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. * @throws HttpResponseException thrown if the request is rejected by server. * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. @@ -2365,280 +2343,36 @@ Response createAgentFromCodeWithResponse(String agentName, String co */ @Generated @ServiceMethod(returns = ReturnType.SINGLE) - Response updateAgentFromCodeWithResponse(String agentName, String codeZipSha256, BinaryData content, + public Response updateAgentDetailsWithResponse(String agentName, BinaryData patchAgentObjectRequest, RequestOptions requestOptions) { - // Operation 'updateAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and - // hence not generated. - return this.serviceClient.updateAgentFromCodeWithResponse(agentName, codeZipSha256, content, requestOptions); + return this.serviceClient.updateAgentDetailsWithResponse(agentName, patchAgentObjectRequest, requestOptions); } /** - * Update an agent endpoint + * Download agent code * - * Applies a merge-patch update to the specified agent endpoint configuration. - *

Request Body Schema

+ * 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

+ * + * + * + * + *
Query Parameters
NameTypeRequiredDescription
agent_versionStringNoThe version of the agent whose code zip should be + * downloaded. + * If omitted, the latest version's code zip is returned.
+ * You can add these to a request with {@link RequestOptions#addQueryParam} + *

Response Body Schema

* *
      * {@code
-     * {
-     *     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)
-     *             }
-     *             responses (Optional): {
-     *             }
-     *             a2a (Optional): {
-     *             }
-     *             mcp (Optional): {
-     *             }
-     *             invocations (Optional): {
-     *             }
-     *             invocations_ws (Optional): {
-     *             }
-     *         }
-     *         authorization_schemes (Optional): [
-     *              (Optional){
-     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
-     *             }
-     *         ]
-     *     }
-     *     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)
-     *                 ]
-     *             }
-     *         ]
-     *     }
-     * }
-     * }
-     * 
- * - *

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) (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)
-     *             }
-     *             responses (Optional): {
-     *             }
-     *             a2a (Optional): {
-     *             }
-     *             mcp (Optional): {
-     *             }
-     *             invocations (Optional): {
-     *             }
-     *             invocations_ws (Optional): {
-     *             }
-     *         }
-     *         authorization_schemes (Optional): [
-     *              (Optional){
-     *                 type: String(Entra/BotService/BotServiceRbac/BotServiceTenant) (Required)
-     *             }
-     *         ]
-     *     }
-     *     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 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. - * @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 updateAgentDetailsWithResponse(String agentName, BinaryData patchAgentObjectRequest, - RequestOptions requestOptions) { - return this.serviceClient.updateAgentDetailsWithResponse(agentName, patchAgentObjectRequest, requestOptions); - } - - /** - * 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. - * 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
-     * {
-     *     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) (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)
-     * }
-     * }
-     * 
- * - * @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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity - * verification. - * @param content The content multipart request content. - * @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) - Response createAgentVersionFromCodeWithResponse(String agentName, String codeZipSha256, - BinaryData content, RequestOptions requestOptions) { - // Operation 'createAgentVersionFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable - // and hence not generated. - return this.serviceClient.createAgentVersionFromCodeWithResponse(agentName, codeZipSha256, content, - requestOptions); - } - - /** - * 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

- * - * - * - * - *
Query Parameters
NameTypeRequiredDescription
agent_versionStringNoThe version of the agent whose code zip should be - * downloaded. - * If omitted, the latest version's code zip is returned.
- * You can add these to a request with {@link RequestOptions#addQueryParam} - *

Response Body Schema

- * - *
-     * {@code
-     * BinaryData
+     * BinaryData
      * }
      * 
* @@ -3290,9 +3024,9 @@ public Response deleteSessionFileWithResponse(String agentName, String ses @Generated @ServiceMethod(returns = ReturnType.SINGLE) AgentDetails createAgentFromCode(String agentName, String codeZipSha256, CreateAgentFromCodeContent content) { - // Generated convenience method for createAgentFromCodeWithResponse + // Generated convenience method for createAgentFromCodeWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return createAgentFromCodeWithResponse(agentName, codeZipSha256, + return createAgentFromCodeWithResponseInternal(agentName, codeZipSha256, new MultipartFormDataHelper(requestOptions).serializeJsonField("metadata", content.getMetadata()) .serializeFileField("code", content.getCode().getContent(), content.getCode().getContentType(), content.getCode().getFilename()) @@ -3329,9 +3063,9 @@ AgentDetails createAgentFromCode(String agentName, String codeZipSha256, CreateA @ServiceMethod(returns = ReturnType.SINGLE) public AgentDetails updateAgentFromCode(String agentName, String codeZipSha256, CreateAgentVersionFromCodeContent content) { - // Generated convenience method for updateAgentFromCodeWithResponse + // Generated convenience method for updateAgentFromCodeWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return updateAgentFromCodeWithResponse(agentName, codeZipSha256, + return updateAgentFromCodeWithResponseInternal(agentName, codeZipSha256, new MultipartFormDataHelper(requestOptions).serializeJsonField("metadata", content.getMetadata()) .serializeFileField("code", content.getCode().getContent(), content.getCode().getContentType(), content.getCode().getFilename()) @@ -3402,9 +3136,9 @@ public AgentDetails updateAgentDetails(String agentName, UpdateAgentDetailsOptio @ServiceMethod(returns = ReturnType.SINGLE) public AgentVersionDetails createAgentVersionFromCode(String agentName, String codeZipSha256, CreateAgentVersionFromCodeContent content) { - // Generated convenience method for createAgentVersionFromCodeWithResponse + // Generated convenience method for createAgentVersionFromCodeWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return createAgentVersionFromCodeWithResponse(agentName, codeZipSha256, + return createAgentVersionFromCodeWithResponseInternal(agentName, codeZipSha256, new MultipartFormDataHelper(requestOptions).serializeJsonField("metadata", content.getMetadata()) .serializeFileField("code", content.getCode().getContent(), content.getCode().getContentType(), content.getCode().getFilename()) @@ -4125,4 +3859,669 @@ public PagedIterable listAgentVersions(String agentName, In return serviceClient.listAgentVersions(agentName, requestOptions) .mapPage(bodyItemValue -> bodyItemValue.toObject(AgentVersionDetails.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. + *

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); + } + + /** + * 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 Microsoft365PublishResult 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(Microsoft365PublishResult.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); + } + + /** + * 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. + * 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
+     * {
+     *     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) (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 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 + * verification. + * @param content The content multipart request content. + * @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) + Response createAgentFromCodeWithResponseInternal(String agentName, String codeZipSha256, + BinaryData content, RequestOptions requestOptions) { + // Operation 'createAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and + // hence not generated. + return this.serviceClient.createAgentFromCodeWithResponseInternal(agentName, codeZipSha256, content, + requestOptions); + } + + /** + * 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
+     * {
+     *     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) (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 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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity + * verification. + * @param content The content multipart request content. + * @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) + Response updateAgentFromCodeWithResponseInternal(String agentName, String codeZipSha256, + BinaryData content, RequestOptions requestOptions) { + // Operation 'updateAgentFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable and + // hence not generated. + return this.serviceClient.updateAgentFromCodeWithResponseInternal(agentName, codeZipSha256, content, + requestOptions); + } + + /** + * 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. + * 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
+     * {
+     *     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) (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)
+     * }
+     * }
+     * 
+ * + * @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 codeZipSha256 SHA-256 hex digest of the uploaded code zip. Used for change detection (dedup) and integrity + * verification. + * @param content The content multipart request content. + * @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) + Response createAgentVersionFromCodeWithResponseInternal(String agentName, String codeZipSha256, + BinaryData content, RequestOptions requestOptions) { + // Operation 'createAgentVersionFromCode' is of content-type 'multipart/form-data'. Protocol API is not usable + // and hence not generated. + return this.serviceClient.createAgentVersionFromCodeWithResponseInternal(agentName, codeZipSha256, content, + requestOptions); + } } 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..7dbab0615e42 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 @@ -529,7 +529,7 @@ public AgentsClient buildAgentsClient() { * The returned builder uses the configuration set on this builder, including endpoint, credential, HTTP pipeline, * policies, retry settings, logging options, client options, and service version. Use this method * when you want to build a client whose type is prefixed with {@code Beta}, such as {@link BetaAgentsClient}, - * {@link BetaAgentsAsyncClient}, {@link BetaMemoryStoresClient}, or {@link BetaMemoryStoresAsyncClient}. + * {@link BetaAgentsAsyncClient}, {@link BetaMemoryStoresClient}, {@link BetaMemoryStoresAsyncClient} *

* Clients created by this sub-builder automatically opt in to the preview service area they target by adding the * required {@code Foundry-Features} header. Calling {@link #allowPreview(boolean)} is not required for these 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..2dd988e4ebb7 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 @@ -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): { @@ -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): { @@ -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): { @@ -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): { 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..fba494acbcf7 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 @@ -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): { @@ -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): { @@ -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): { @@ -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): { 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..60d95512de9c 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 @@ -726,6 +726,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 }) @@ -802,6 +870,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 +890,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) @@ -919,6 +992,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 +1012,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) @@ -1002,6 +1080,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 +1094,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 +1114,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) @@ -1107,6 +1190,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 +1210,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) @@ -1191,6 +1279,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 +1293,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 +1313,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) @@ -1296,6 +1389,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 +1409,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) @@ -1416,6 +1514,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 +1534,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) @@ -1471,8 +1574,8 @@ public Response createAgentWithResponse(BinaryData createAgentReques * @return the response body along with {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> createAgentFromCodeWithResponseAsync(String agentName, String codeZipSha256, - BinaryData content, RequestOptions requestOptions) { + public Mono> createAgentFromCodeWithResponseInternalAsync(String agentName, + String codeZipSha256, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; return FluxUtil @@ -1542,6 +1645,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 +1665,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) @@ -1597,7 +1705,7 @@ public Mono> createAgentFromCodeWithResponseAsync(String ag * @return the response body along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response createAgentFromCodeWithResponse(String agentName, String codeZipSha256, + public Response createAgentFromCodeWithResponseInternal(String agentName, String codeZipSha256, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; @@ -1685,6 +1793,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 +1813,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) @@ -1826,6 +1939,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 +1959,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) @@ -1948,6 +2066,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 +2086,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) @@ -2005,8 +2128,8 @@ public Response updateAgentWithResponse(String agentName, BinaryData * @return the response body along with {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> updateAgentFromCodeWithResponseAsync(String agentName, String codeZipSha256, - BinaryData content, RequestOptions requestOptions) { + public Mono> updateAgentFromCodeWithResponseInternalAsync(String agentName, + String codeZipSha256, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; return FluxUtil @@ -2075,6 +2198,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 +2218,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) @@ -2132,7 +2260,7 @@ public Mono> updateAgentFromCodeWithResponseAsync(String ag * @return the response body along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response updateAgentFromCodeWithResponse(String agentName, String codeZipSha256, + public Response updateAgentFromCodeWithResponseInternal(String agentName, String codeZipSha256, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; @@ -2215,6 +2343,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 +2363,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) @@ -2350,6 +2483,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 +2503,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) @@ -2485,6 +2623,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 +2643,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) @@ -2621,6 +2764,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 +2784,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) @@ -2846,6 +2994,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 +3014,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) @@ -2985,6 +3138,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 +3158,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) @@ -3118,6 +3276,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 +3296,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) @@ -3255,6 +3418,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 +3438,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) @@ -3331,6 +3499,7 @@ public PagedIterable listAgents(RequestOptions requestOptions) { * blueprint_reference (Optional): { * type: String(ManagedAgentIdentityBlueprint) (Required) * } + * digital_worker_type: String(m365) (Optional) * draft: Boolean (Optional) * } * } @@ -3416,6 +3585,7 @@ public Mono> createAgentVersionWithResponseAsync(String age * blueprint_reference (Optional): { * type: String(ManagedAgentIdentityBlueprint) (Required) * } + * digital_worker_type: String(m365) (Optional) * draft: Boolean (Optional) * } * } @@ -4182,6 +4352,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 +4372,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) @@ -4274,6 +4448,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 +4468,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) @@ -4358,6 +4537,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 +4557,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) @@ -4450,6 +4633,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 +4653,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) @@ -4573,7 +4761,7 @@ public Response updateAgentDetailsWithResponse(String agentName, Bin * @return the response body along with {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> createAgentVersionFromCodeWithResponseAsync(String agentName, + public Mono> createAgentVersionFromCodeWithResponseInternalAsync(String agentName, String codeZipSha256, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; @@ -4642,7 +4830,7 @@ public Mono> createAgentVersionFromCodeWithResponseAsync(St * @return the response body along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response createAgentVersionFromCodeWithResponse(String agentName, String codeZipSha256, + public Response createAgentVersionFromCodeWithResponseInternal(String agentName, String codeZipSha256, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; @@ -5910,6 +6098,389 @@ 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 * 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..7ce322adca41 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 @@ -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): { @@ -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): { @@ -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): { @@ -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): { @@ -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): { @@ -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): { @@ -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): { @@ -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): { @@ -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): { @@ -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): { 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..4d8de4270c88 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. 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..30499e184c8e 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; @@ -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..c652115cd57c 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; @@ -50,7 +51,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..44eedf53b842 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; @@ -38,7 +39,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..831ab7123db4 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. 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..2952de6cc1b5 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 @@ -38,7 +38,7 @@ public final class UpdateAgentRequest implements JsonSerializable { + + /** + * 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/AgentDetails.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentDetails.java index 313f74052e0f..6904f2273e71 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 @@ -3,6 +3,7 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; +import com.azure.ai.agents.implementation.utils.Beta; import com.azure.core.annotation.Generated; import com.azure.core.annotation.Immutable; import com.azure.json.JsonReader; @@ -77,6 +78,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 +102,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 +122,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 +140,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 +293,23 @@ 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 + @Beta(warningText = "Preview API. DigitalWorker=V1Preview") + 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 + @Beta(warningText = "Preview API. DigitalWorker=V1Preview") + 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/AgentOptimizationDatasetItem.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java index e77c05b97b28..49c207326a7b 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java @@ -32,12 +32,6 @@ public final class AgentOptimizationDatasetItem implements JsonSerializable writer.writeJson(element)); return jsonWriter.writeEndObject(); } @@ -173,7 +145,8 @@ public static AgentOptimizationDatasetItem fromJson(JsonReader jsonReader) throw } else if ("ground_truth".equals(fieldName)) { deserializedAgentOptimizationDatasetItem.groundTruth = reader.getString(); } else if ("desired_num_turns".equals(fieldName)) { - deserializedAgentOptimizationDatasetItem.desiredNumTurns = reader.getNullable(JsonReader::getInt); + deserializedAgentOptimizationDatasetItem.desiredNumberTurns + = reader.getNullable(JsonReader::getInt); } else if ("criteria".equals(fieldName)) { List criteria = reader.readArray(reader1 -> AgentOptimizationDatasetCriterion.fromJson(reader1)); @@ -185,4 +158,32 @@ public static AgentOptimizationDatasetItem fromJson(JsonReader jsonReader) throw return deserializedAgentOptimizationDatasetItem; }); } + + /* + * Desired number of conversation turns for simulation mode (1-20). + */ + @Generated + private Integer desiredNumberTurns; + + /** + * Get the desiredNumberTurns property: Desired number of conversation turns for simulation mode (1-20). + * + * @return the desiredNumberTurns value. + */ + @Generated + public Integer getDesiredNumberTurns() { + return this.desiredNumberTurns; + } + + /** + * Set the desiredNumberTurns property: Desired number of conversation turns for simulation mode (1-20). + * + * @param desiredNumberTurns the desiredNumberTurns value to set. + * @return the AgentOptimizationDatasetItem object itself. + */ + @Generated + public AgentOptimizationDatasetItem setDesiredNumberTurns(Integer desiredNumberTurns) { + this.desiredNumberTurns = desiredNumberTurns; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorReference.java similarity index 71% rename from sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java rename to sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorReference.java index 5a2b93ebd0d8..36d73868702f 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorReference.java @@ -17,7 +17,8 @@ */ @Fluent @Beta(warningText = "Preview API. AgentsOptimization=V2Preview") -public final class AgentOptimizationEvaluatorRef implements JsonSerializable { +public final class AgentOptimizationEvaluatorReference + implements JsonSerializable { /* * Evaluator name. @@ -32,12 +33,12 @@ public final class AgentOptimizationEvaluatorRef implements JsonSerializable { String name = null; String version = null; @@ -110,10 +111,10 @@ public static AgentOptimizationEvaluatorRef fromJson(JsonReader jsonReader) thro reader.skipChildren(); } } - AgentOptimizationEvaluatorRef deserializedAgentOptimizationEvaluatorRef - = new AgentOptimizationEvaluatorRef(name); - deserializedAgentOptimizationEvaluatorRef.version = version; - return deserializedAgentOptimizationEvaluatorRef; + AgentOptimizationEvaluatorReference deserializedAgentOptimizationEvaluatorReference + = new AgentOptimizationEvaluatorReference(name); + deserializedAgentOptimizationEvaluatorReference.version = version; + return deserializedAgentOptimizationEvaluatorReference; }); } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java index 872ccc525865..63f794a603f6 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java @@ -42,7 +42,7 @@ public final class AgentOptimizationJobInputs implements JsonSerializable evaluators; + private final List evaluators; /* * Tuning knobs and run-mode. @@ -59,7 +59,7 @@ public final class AgentOptimizationJobInputs implements JsonSerializable evaluators) { + List evaluators) { this.agent = agent; this.trainDataset = trainDataset; this.evaluators = evaluators; @@ -117,7 +117,7 @@ public AgentOptimizationJobInputs setValidationDataset(AgentOptimizationDatasetI * @return the evaluators value. */ @Generated - public List getEvaluators() { + public List getEvaluators() { return this.evaluators; } @@ -172,7 +172,7 @@ public static AgentOptimizationJobInputs fromJson(JsonReader jsonReader) throws return jsonReader.readObject(reader -> { OptimizedAgentIdentifier agent = null; AgentOptimizationDatasetInput trainDataset = null; - List evaluators = null; + List evaluators = null; AgentOptimizationDatasetInput validationDataset = null; AgentOptimizationOptions options = null; while (reader.nextToken() != JsonToken.END_OBJECT) { @@ -183,7 +183,7 @@ public static AgentOptimizationJobInputs fromJson(JsonReader jsonReader) throws } else if ("train_dataset".equals(fieldName)) { trainDataset = AgentOptimizationDatasetInput.fromJson(reader); } else if ("evaluators".equals(fieldName)) { - evaluators = reader.readArray(reader1 -> AgentOptimizationEvaluatorRef.fromJson(reader1)); + evaluators = reader.readArray(reader1 -> AgentOptimizationEvaluatorReference.fromJson(reader1)); } else if ("validation_dataset".equals(fieldName)) { validationDataset = AgentOptimizationDatasetInput.fromJson(reader); } else if ("options".equals(fieldName)) { diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java index 8bf11b642fc2..c0e8b5c5a82d 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java @@ -11,6 +11,7 @@ import com.azure.json.JsonToken; import com.azure.json.JsonWriter; import java.io.IOException; +import java.time.Duration; /** * In-flight progress; only populated while status is queued or in_progress. @@ -31,26 +32,6 @@ public final class AgentOptimizationJobProgress implements JsonSerializable { int candidatesCompleted = 0; double bestScore = 0.0; - double elapsedSeconds = 0.0; + Duration elapsed = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); @@ -117,12 +88,46 @@ public static AgentOptimizationJobProgress fromJson(JsonReader jsonReader) throw } else if ("best_score".equals(fieldName)) { bestScore = reader.getDouble(); } else if ("elapsed_seconds".equals(fieldName)) { - elapsedSeconds = reader.getDouble(); + elapsed = Duration.ofNanos((long) (reader.getDouble() * 1000_000_000L)); } else { reader.skipChildren(); } } - return new AgentOptimizationJobProgress(candidatesCompleted, bestScore, elapsedSeconds); + return new AgentOptimizationJobProgress(candidatesCompleted, bestScore, elapsed); }); } + + /* + * Wall-clock time elapsed in seconds since the job began executing. + */ + @Generated + private final double elapsed; + + /** + * Get the elapsed property: Wall-clock time elapsed in seconds since the job began executing. + * + * @return the elapsed value. + */ + @Generated + public Duration getElapsed() { + return Duration.ofNanos((long) (this.elapsed * 1000_000_000L)); + } + + /** + * Creates an instance of AgentOptimizationJobProgress class. + * + * @param candidatesCompleted the candidatesCompleted value to set. + * @param bestScore the bestScore value to set. + * @param elapsed the elapsed value to set. + */ + @Generated + private AgentOptimizationJobProgress(int candidatesCompleted, double bestScore, Duration elapsed) { + this.candidatesCompleted = candidatesCompleted; + this.bestScore = bestScore; + if (elapsed == null) { + this.elapsed = 0.0; + } else { + this.elapsed = (double) elapsed.toNanos() / 1000_000_000L; + } + } } 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..7c13c542c5d6 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 @@ -3,6 +3,7 @@ // Code generated by Microsoft (R) TypeSpec Code Generator. package com.azure.ai.agents.models; +import com.azure.ai.agents.implementation.utils.Beta; import com.azure.core.annotation.Generated; import com.azure.core.annotation.Immutable; import com.azure.json.JsonReader; @@ -51,6 +52,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 +69,42 @@ 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 + @Beta(warningText = "Preview API. ModelRouterControls=V1Preview") + 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 + @Beta(warningText = "Preview API. ModelRouterControls=V1Preview") + public ModelSelectionDetails getModelSelectionDetails() { + return this.modelSelectionDetails; + } } 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..87f25ed3d4ce 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 @@ -37,10 +37,11 @@ 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 +182,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 +195,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 +207,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 +249,37 @@ 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 + @Beta(warningText = "Preview API. DigitalWorker=V1Preview") + 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 + @Beta(warningText = "Preview API. DigitalWorker=V1Preview") + 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 + @Beta(warningText = "Preview API. DigitalWorker=V1Preview") + 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..f0392b01e9ee --- /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/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/Microsoft365PublishResult.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishResult.java new file mode 100644 index 000000000000..2da2e12f8521 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/Microsoft365PublishResult.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 Microsoft365PublishResult 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 Microsoft365PublishResult class. + */ + @Generated + private Microsoft365PublishResult() { + } + + /** + * 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 Microsoft365PublishResult from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of Microsoft365PublishResult 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 Microsoft365PublishResult. + */ + @Generated + public static Microsoft365PublishResult fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + Microsoft365PublishResult deserializedMicrosoft365PublishResult = new Microsoft365PublishResult(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + if ("titleId".equals(fieldName)) { + deserializedMicrosoft365PublishResult.titleId = reader.getString(); + } else if ("teamsAppId".equals(fieldName)) { + deserializedMicrosoft365PublishResult.teamsAppId = reader.getString(); + } else { + reader.skipChildren(); + } + } + return deserializedMicrosoft365PublishResult; + }); + } +} 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..e75a9c359a16 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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..c5ba83358e6c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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..025e62ce2bdb --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java @@ -0,0 +1,136 @@ +// 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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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..f0b70f5e5ace --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterDetails.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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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..d4213c8c29d2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelRouterMode.java @@ -0,0 +1,65 @@ +// 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.ai.agents.implementation.utils.Beta; +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. + */ +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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..75ef9ef0f78c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java @@ -0,0 +1,85 @@ +// 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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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/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/RoutingTraceEntry.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java new file mode 100644 index 000000000000..236788bc930c --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. ModelRouterControls=V1Preview") +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/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..62d96ad142cc 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. 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..a767e3a91575 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java @@ -0,0 +1,245 @@ +// 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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. preview_tool") +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. + */ + BinaryData getRequireApproval() { + // AI Tooling: union type + 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. + */ + WebIqPreviewTool setRequireApproval(BinaryData requireApproval) { + // AI Tooling: union type + 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; + }); + } + + /** + * Set the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @param requireApproval the approval setting string to set (e.g., "always" or "never"). + * @return the WebIqPreviewTool object itself. + */ + public WebIqPreviewTool setRequireApproval(String requireApproval) { + // AI Tooling: union type + this.requireApproval = requireApproval == null ? null : BinaryData.fromObject(requireApproval); + 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 as a String, or {@code null} when it is not set or holds another variant. + */ + public String getRequireApprovalAsString() { + // AI Tooling: union type + if (this.requireApproval == null) { + return null; + } + String json = this.requireApproval.toString().trim(); + if (!(json.startsWith("\""))) { + return null; + } + return this.requireApproval.toObject(String.class); + } + + /** + * Set the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @param requireApproval the {@link McpToolRequireApproval} filter to set. + * @return the WebIqPreviewTool object itself. + */ + public WebIqPreviewTool setRequireApproval(McpToolRequireApproval requireApproval) { + // AI Tooling: union type + this.requireApproval = requireApproval == null ? null : BinaryData.fromObject(requireApproval); + 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 as a {@link McpToolRequireApproval}, or {@code null} when it is not set or + * holds another variant. + */ + public McpToolRequireApproval getRequireApprovalAsMcpToolRequireApproval() { + // AI Tooling: union type + if (this.requireApproval == null) { + return null; + } + String json = this.requireApproval.toString().trim(); + if (!(json.startsWith("{"))) { + return null; + } + return this.requireApproval.toObject(McpToolRequireApproval.class); + } +} 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..50dc35dd9378 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java @@ -0,0 +1,292 @@ +// 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.ai.agents.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. preview_tool") +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. + */ + BinaryData getRequireApproval() { + // AI Tooling: union type + 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. + */ + WebIqPreviewToolboxTool setRequireApproval(BinaryData requireApproval) { + // AI Tooling: union type + 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; + }); + } + + /** + * Set the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @param requireApproval the approval setting string to set (e.g., "always" or "never"). + * @return the WebIqPreviewToolboxTool object itself. + */ + public WebIqPreviewToolboxTool setRequireApproval(String requireApproval) { + // AI Tooling: union type + this.requireApproval = requireApproval == null ? null : BinaryData.fromObject(requireApproval); + 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 as a String, or {@code null} when it is not set or holds another variant. + */ + public String getRequireApprovalAsString() { + // AI Tooling: union type + if (this.requireApproval == null) { + return null; + } + String json = this.requireApproval.toString().trim(); + if (!(json.startsWith("\""))) { + return null; + } + return this.requireApproval.toObject(String.class); + } + + /** + * Set the requireApproval property: Whether the agent requires approval before executing actions. When omitted, the + * service defaults to "always". + * + * @param requireApproval the {@link McpToolRequireApproval} filter to set. + * @return the WebIqPreviewToolboxTool object itself. + */ + public WebIqPreviewToolboxTool setRequireApproval(McpToolRequireApproval requireApproval) { + // AI Tooling: union type + this.requireApproval = requireApproval == null ? null : BinaryData.fromObject(requireApproval); + 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 as a {@link McpToolRequireApproval}, or {@code null} when it is not set or + * holds another variant. + */ + public McpToolRequireApproval getRequireApprovalAsMcpToolRequireApproval() { + // AI Tooling: union type + if (this.requireApproval == null) { + return null; + } + String json = this.requireApproval.toString().trim(); + if (!(json.startsWith("{"))) { + return null; + } + return this.requireApproval.toObject(McpToolRequireApproval.class); + } +} 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..13dc5dc3cdf2 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 @@ -172,6 +172,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 +201,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 +310,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..25b7f722ed26 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 @@ -202,6 +202,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 +235,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 +254,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..63797ced1219 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":"c64ff2bf6467","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.createAgentFromCodeWithResponseInternal":"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.createAgentVersionFromCodeWithResponseInternal":"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.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.updateAgentFromCodeWithResponseInternal":"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.createAgentFromCodeWithResponseInternal":"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.createAgentVersionFromCodeWithResponseInternal":"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.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.updateAgentFromCodeWithResponseInternal":"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.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.AgentOptimizationEvaluatorReference":"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.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.Microsoft365PublishResult":"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.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.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.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.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/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/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/AgentOptimizationEvaluatorReference.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/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/Microsoft365PublishResult.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/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/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/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/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-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..87e5dad4dc63 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 @@ -3,12 +3,17 @@ package com.azure.ai.agents; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.models.AgentEndpointConfig; import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.FixedRatioVersionSelectionRule; import com.azure.ai.agents.models.PromptAgentDefinition; +import com.azure.ai.agents.models.ProtocolConfiguration; +import com.azure.ai.agents.models.ResponsesProtocolConfiguration; +import com.azure.ai.agents.models.UpdateAgentDetailsOptions; +import com.azure.ai.agents.models.VersionSelector; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -16,9 +21,11 @@ import com.openai.models.responses.ResponseOutputMessage; import com.openai.services.blocking.ConversationService; +import java.util.Collections; + /** - * This sample demonstrates how to use the createWithAgentConversation helper method - * to create a response with a conversation. + * This sample demonstrates how to to create a response with a conversation + * against an agent. */ public class CreateResponseWithConversation { public static void main(String[] args) { @@ -32,7 +39,6 @@ public static void main(String[] args) { AgentsClient agentsClient = builder.buildAgentsClient(); ConversationService conversationService = builder.buildOpenAIClient().conversations(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; String conversationId = null; @@ -45,8 +51,14 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("my-agent", agentDefinition); System.out.printf("Agent created (id: %s, version: %s)\n", agent.getId(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + AgentEndpointConfig endpointConfig = new AgentEndpointConfig() + .setVersionSelector(new VersionSelector().setVersionSelectionRules(Collections.singletonList( + new FixedRatioVersionSelectionRule(100).setAgentVersion(agent.getVersion())))) + .setProtocolConfiguration(new ProtocolConfiguration().setResponses(new ResponsesProtocolConfiguration())); + agentsClient.updateAgentDetails(agent.getName(), + new UpdateAgentDetailsOptions().setAgentEndpoint(endpointConfig)); + + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // Create a conversation Conversation conversation = conversationService.create(); @@ -54,11 +66,11 @@ public static void main(String[] args) { System.out.println("Created conversation: " + conversationId); // Create a response using the conversation - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(conversationId) - .input("Hi, how can you help me?")); + .input("Hi, how can you help me?") + .build()); // Process and display the response System.out.println("\n=== Agent Response ==="); 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..4178b1b7ab3c 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 @@ -3,8 +3,6 @@ package com.azure.ai.agents; -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.MemorySearchPreviewTool; import com.azure.ai.agents.models.MemoryStoreDefaultDefinition; @@ -14,6 +12,7 @@ import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -43,7 +42,6 @@ public static void main(String[] args) { AgentsClient agentsClient = builder.buildAgentsClient(); BetaMemoryStoresClient memoryStoresClient = builder.beta().buildBetaMemoryStoresClient(); ConversationService conversationService = builder.buildOpenAIClient().conversations(); - ResponsesClient responsesClient = builder.buildResponsesClient(); String memoryStoreName = "my_memory_store"; String agentName = "MyAgent"; @@ -74,18 +72,20 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion(agentName, agentDefinition); System.out.printf("Agent created (id: %s, version: %s)\n", agent.getId(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); Conversation conversation = conversationService.create(); firstConversationId = conversation.id(); System.out.println("Created conversation (id: " + firstConversationId + ")"); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(firstConversationId) - .input("I prefer dark roast coffee")); + .input("I prefer dark roast coffee") + .build()); System.out.println("Response output: " + getResponseText(response)); System.out.println("Waiting for memories to be stored..."); @@ -95,11 +95,11 @@ public static void main(String[] args) { followUpConversationId = newConversation.id(); System.out.println("Created new conversation (id: " + followUpConversationId + ")"); - Response followUpResponse = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response followUpResponse = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(followUpConversationId) - .input("Please order my usual coffee")); + .input("Please order my usual coffee") + .build()); System.out.println("Response output: " + getResponseText(followUpResponse)); System.out.println("Sample completed successfully."); 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..e050acc4eff2 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 @@ -3,12 +3,11 @@ package com.azure.ai.agents; -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.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.conversations.items.ItemCreateParams; import com.openai.models.conversations.items.ItemListPage; @@ -35,7 +34,6 @@ public static void main(String[] args) { .serviceVersion(AgentsServiceVersion.getLatest()) .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); ConversationService conversationsClient = builder.buildOpenAIClient().conversations(); // Setting up the conversation with initial messages @@ -50,13 +48,15 @@ public static void main(String[] args) { AgentVersionDetails agent1 = createPromptAgent(agentsClient, model, "weather-agent-1"); AgentVersionDetails agent2 = createPromptAgent(agentsClient, model, "weather-agent-2"); - AgentReference agent1Reference = new AgentReference(agent1.getName()).setVersion(agent1.getVersion()); - AgentReference agent2Reference = new AgentReference(agent2.getName()).setVersion(agent2.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent1); + SampleUtils.pinAgentVersion(agentsClient, agent2); + OpenAIClient agent1Client = builder.buildAgentScopedOpenAIClient(agent1.getName()); + OpenAIClient agent2Client = builder.buildAgentScopedOpenAIClient(agent2.getName()); // Get response from agent1 - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agent1Reference), - ResponseCreateParams.builder().conversation(conversation.id())); + Response response = agent1Client.responses().create(ResponseCreateParams.builder() + .conversation(conversation.id()) + .build()); System.out.println("Agent response from: " + agent1.getName()); System.out.println("\tResponse: " + response.output().get(0).asMessage().content().get(0).asOutputText().text()); @@ -66,9 +66,9 @@ public static void main(String[] args) { printConversationItems(conversationsClient, conversation.id(), 3); // Get follow-up response from agent1 - Response followUpResponse = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agent1Reference), - ResponseCreateParams.builder().conversation(conversation.id())); + Response followUpResponse = agent1Client.responses().create(ResponseCreateParams.builder() + .conversation(conversation.id()) + .build()); System.out.println("Agent response from: " + agent1.getName()); System.out.println("\tResponse: " + followUpResponse.output().get(0).asMessage().content().get(0).asOutputText().text()); @@ -77,9 +77,9 @@ public static void main(String[] args) { "Provide suggestions opposite of what historical data indicates.", EasyInputMessage.Role.SYSTEM); printConversationItems(conversationsClient, conversation.id(), 4); - Response newMessageThread = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agent2Reference), - ResponseCreateParams.builder().conversation(conversation.id())); + Response newMessageThread = agent2Client.responses().create(ResponseCreateParams.builder() + .conversation(conversation.id()) + .build()); System.out.println("Agent response from: " + agent2.getName()); System.out.println("\tResponse: " + newMessageThread.output().get(0).asMessage().content().get(0).asOutputText().text()); } 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..1e8888748936 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 @@ -4,12 +4,15 @@ package com.azure.ai.agents; -import com.azure.ai.agents.models.AgentReference; +import com.azure.ai.agents.models.AgentEndpointConfig; 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.FixedRatioVersionSelectionRule; import com.azure.ai.agents.models.PromptAgentDefinition; +import com.azure.ai.agents.models.ProtocolConfiguration; +import com.azure.ai.agents.models.ResponsesProtocolConfiguration; import com.azure.ai.agents.models.SessionLogEvent; +import com.azure.ai.agents.models.UpdateAgentDetailsOptions; +import com.azure.ai.agents.models.VersionSelector; import com.azure.core.util.IterableStream; import com.azure.identity.AuthenticationUtil; import com.azure.identity.DefaultAzureCredentialBuilder; @@ -23,6 +26,8 @@ import com.openai.models.responses.ResponseCreateParams; import com.openai.services.blocking.ConversationService; +import java.util.Collections; + public final class ReadmeSamples { public void readmeSamples() { String endpoint = "my-resource-url"; @@ -31,7 +36,6 @@ public void readmeSamples() { AgentsClientBuilder builder = new AgentsClientBuilder(); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); ConversationService conversationsClient = builder.buildOpenAIClient().conversations(); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); @@ -45,6 +49,16 @@ public void readmeSamples() { AgentVersionDetails agent = agentsClient.createAgentVersion("my-agent", promptAgentDefinition); // END: com.azure.ai.agents.create_prompt_agent + // BEGIN: com.azure.ai.agents.configure_agent_endpoint + AgentEndpointConfig endpointConfig = new AgentEndpointConfig() + .setVersionSelector(new VersionSelector().setVersionSelectionRules(Collections.singletonList( + new FixedRatioVersionSelectionRule(100).setAgentVersion(agent.getVersion())))) + .setProtocolConfiguration(new ProtocolConfiguration().setResponses(new ResponsesProtocolConfiguration())); + + agentsClient.updateAgentDetails(agent.getName(), + new UpdateAgentDetailsOptions().setAgentEndpoint(endpointConfig)); + // END: com.azure.ai.agents.configure_agent_endpoint + // BEGIN: com.azure.ai.agents.create_conversation Conversation conversation = conversationsClient.create(); // END: com.azure.ai.agents.create_conversation @@ -66,12 +80,11 @@ public void readmeSamples() { // END: com.azure.ai.agents.add_message_to_conversation // BEGIN: com.azure.ai.agents.create_response - AgentReference agentReference = new AgentReference(agent.getName()).setVersion(agent.getVersion()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder().conversation(conversation.id())); - // To extract Azure-specific response details: - AzureCreateResponseDetails azureResults = ResponsesClient.getAzureFields(response); + OpenAIClient agentScopedClient = builder.buildAgentScopedOpenAIClient(agent.getName()); + + Response response = agentScopedClient.responses().create(ResponseCreateParams.builder() + .conversation(conversation.id()) + .build()); // END: com.azure.ai.agents.create_response // BEGIN: com.azure.ai.agents.openai_official_library diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/SampleUtils.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/SampleUtils.java index f32f41263004..e36d3a485b4b 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/SampleUtils.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/SampleUtils.java @@ -3,14 +3,49 @@ package com.azure.ai.agents; +import com.azure.ai.agents.models.AgentDetails; +import com.azure.ai.agents.models.AgentEndpointConfig; +import com.azure.ai.agents.models.AgentVersionDetails; +import com.azure.ai.agents.models.FixedRatioVersionSelectionRule; +import com.azure.ai.agents.models.ProtocolConfiguration; +import com.azure.ai.agents.models.ResponsesProtocolConfiguration; +import com.azure.ai.agents.models.UpdateAgentDetailsOptions; +import com.azure.ai.agents.models.VersionSelector; +import reactor.core.publisher.Mono; + import java.net.URISyntaxException; import java.net.URL; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.util.Collections; public class SampleUtils { + /** + * Pins an agent endpoint to a specific agent version and enables the OpenAI Responses protocol. + * + * @param agentsClient the agents client + * @param versionDetails the agent version to pin + * @return the updated agent details + */ + public static AgentDetails pinAgentVersion(AgentsClient agentsClient, AgentVersionDetails versionDetails) { + return agentsClient.updateAgentDetails(versionDetails.getName(), createPinnedEndpointOptions(versionDetails)); + } + + /** + * Pins an agent endpoint to a specific agent version and enables the OpenAI Responses protocol. + * + * @param agentsAsyncClient the asynchronous agents client + * @param versionDetails the agent version to pin + * @return a publisher containing the updated agent details + */ + public static Mono pinAgentVersion(AgentsAsyncClient agentsAsyncClient, + AgentVersionDetails versionDetails) { + return agentsAsyncClient.updateAgentDetails(versionDetails.getName(), + createPinnedEndpointOptions(versionDetails)); + } + /** * Gets the path to a file in the sample resource folder. * @param fileName the name of the file in the sample resource folder @@ -37,4 +72,13 @@ public static Path getResourcePath(String fileName) { } throw new RuntimeException("Sample resource file not found: " + fileName); } + + private static UpdateAgentDetailsOptions createPinnedEndpointOptions(AgentVersionDetails versionDetails) { + AgentEndpointConfig endpointConfig = new AgentEndpointConfig() + .setVersionSelector(new VersionSelector().setVersionSelectionRules(Collections.singletonList( + new FixedRatioVersionSelectionRule(100).setAgentVersion(versionDetails.getVersion())))) + .setProtocolConfiguration(new ProtocolConfiguration().setResponses(new ResponsesProtocolConfiguration())); + + return new UpdateAgentDetailsOptions().setAgentEndpoint(endpointConfig); + } } diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationAsyncSample.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationAsyncSample.java index 651facd4c700..d8e24b739da9 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationAsyncSample.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationAsyncSample.java @@ -5,7 +5,7 @@ import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.BetaAgentsAsyncClient; -import com.azure.ai.agents.models.AgentOptimizationEvaluatorRef; +import com.azure.ai.agents.models.AgentOptimizationEvaluatorReference; import com.azure.ai.agents.models.AgentOptimizationJob; import com.azure.ai.agents.models.AgentOptimizationJobInputs; import com.azure.ai.agents.models.AgentOptimizationJobResult; @@ -77,7 +77,7 @@ public static void main(String[] args) { private static AgentOptimizationJob createOptimizationJob(Configuration configuration) { String evaluatorVersion = configuration.get("EVALUATOR_VERSION"); - AgentOptimizationEvaluatorRef evaluator = new AgentOptimizationEvaluatorRef( + AgentOptimizationEvaluatorReference evaluator = new AgentOptimizationEvaluatorReference( configuration.get("EVALUATOR_NAME", "task_adherence")); if (evaluatorVersion != null) { evaluator.setVersion(evaluatorVersion); diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationSample.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationSample.java index 45c5141b4c57..8c2bc6b1f63a 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationSample.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/optimization/AgentOptimizationSample.java @@ -6,7 +6,7 @@ import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.BetaAgentsClient; import com.azure.ai.agents.models.AgentOptimizationCandidate; -import com.azure.ai.agents.models.AgentOptimizationEvaluatorRef; +import com.azure.ai.agents.models.AgentOptimizationEvaluatorReference; import com.azure.ai.agents.models.AgentOptimizationJob; import com.azure.ai.agents.models.AgentOptimizationJobInputs; import com.azure.ai.agents.models.AgentOptimizationJobResult; @@ -82,7 +82,7 @@ public static void main(String[] args) { private static AgentOptimizationJob createOptimizationJob(Configuration configuration) { String evaluatorVersion = configuration.get("EVALUATOR_VERSION"); - AgentOptimizationEvaluatorRef evaluator = new AgentOptimizationEvaluatorRef( + AgentOptimizationEvaluatorReference evaluator = new AgentOptimizationEvaluatorReference( configuration.get("EVALUATOR_NAME", "task_adherence")); if (evaluatorVersion != null) { evaluator.setVersion(evaluatorVersion); 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..4c4c3df5ca9d 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 @@ -5,15 +5,14 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; -import com.azure.core.util.IterableStream; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; +import com.openai.core.http.StreamResponse; import com.openai.helpers.ResponseAccumulator; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -42,7 +41,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -59,32 +57,32 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("code-interpreter-streaming-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // BEGIN: com.azure.ai.agents.streaming.code_interpreter_sync // Stream response with Code Interpreter - observe code execution events as they arrive ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); - IterableStream events = - responsesClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + try (StreamResponse events = openAIClient.responses().createStreaming( ResponseCreateParams.builder() - .input("Calculate the first 10 prime numbers using Python.")); - - for (ResponseStreamEvent event : events) { - responseAccumulator.accumulate(event); - // Print text deltas as they stream in - event.outputTextDelta().ifPresent(textEvent -> - System.out.print(textEvent.delta())); - - // Observe code interpreter progress events - event.codeInterpreterCallInProgress().ifPresent(e -> - System.out.println("\n[Code interpreter running...]")); - event.codeInterpreterCallCodeDelta().ifPresent(e -> - System.out.print(e.delta())); - event.codeInterpreterCallCompleted().ifPresent(e -> - System.out.println("\n[Code interpreter completed]")); + .input("Calculate the first 10 prime numbers using Python.") + .build())) { + + events.stream().forEach(event -> { + responseAccumulator.accumulate(event); + // Print text deltas as they stream in + event.outputTextDelta().ifPresent(textEvent -> + System.out.print(textEvent.delta())); + + // Observe code interpreter progress events + event.codeInterpreterCallInProgress().ifPresent(e -> + System.out.println("\n[Code interpreter running...]")); + event.codeInterpreterCallCodeDelta().ifPresent(e -> + System.out.print(e.delta())); + event.codeInterpreterCallCompleted().ifPresent(e -> + System.out.println("\n[Code interpreter completed]")); + }); } System.out.println(); 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..1b90d311e1ca 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 @@ -5,16 +5,15 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; -import com.azure.core.util.IterableStream; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; +import com.openai.core.http.StreamResponse; import com.openai.helpers.ResponseAccumulator; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -48,7 +47,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -84,27 +82,27 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("function-streaming-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // BEGIN: com.azure.ai.agents.streaming.function_call_sync // Stream response with function tool - observe function call arguments and text as they arrive ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); - IterableStream events = - responsesClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + try (StreamResponse events = openAIClient.responses().createStreaming( ResponseCreateParams.builder() - .input("What's the weather like in Seattle?")); - - for (ResponseStreamEvent event : events) { - responseAccumulator.accumulate(event); - // Print text deltas as they stream in - event.outputTextDelta().ifPresent(textEvent -> - System.out.print(textEvent.delta())); - // Print function call argument deltas as they stream in - event.functionCallArgumentsDelta().ifPresent(argEvent -> - System.out.print(argEvent.delta())); + .input("What's the weather like in Seattle?") + .build())) { + + events.stream().forEach(event -> { + responseAccumulator.accumulate(event); + // Print text deltas as they stream in + event.outputTextDelta().ifPresent(textEvent -> + System.out.print(textEvent.delta())); + // Print function call argument deltas as they stream in + event.functionCallArgumentsDelta().ifPresent(argEvent -> + System.out.print(argEvent.delta())); + }); } System.out.println(); 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..2f8c8982308f 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 @@ -5,16 +5,17 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; +import com.openai.core.http.AsyncStreamResponse; import com.openai.helpers.ResponseAccumulator; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; +import com.openai.models.responses.ResponseStreamEvent; import reactor.core.publisher.Mono; import java.util.concurrent.atomic.AtomicReference; @@ -39,7 +40,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); AtomicReference agentRef = new AtomicReference<>(); @@ -52,32 +52,34 @@ public static void main(String[] args) { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agent.getName()); // BEGIN: com.azure.ai.agents.streaming.simple_async - // Use ResponseAccumulator to collect streamed events into a final Response - ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); - - // Stream response asynchronously - text is printed as each chunk arrives - return responsesAsyncClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + // OpenAI streaming events arrive through callbacks. This Mono only tracks terminal completion. + Mono streamingCompletion = Mono.defer(() -> { + ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); + AsyncStreamResponse stream = openAIAsyncClient.responses().createStreaming( ResponseCreateParams.builder() - .input("Tell me a short story about a brave explorer.")) - .doOnNext(event -> { - responseAccumulator.accumulate(event); - event.outputTextDelta() - .ifPresent(textEvent -> System.out.print(textEvent.delta())); - }) - .then(Mono.fromCallable(() -> { - System.out.println(); // newline after streamed text + .input("Tell me a short story about a brave explorer.") + .build()); + + stream.subscribe(event -> responseAccumulator.accumulate(event) + .outputTextDelta() + .ifPresent(textEvent -> System.out.print(textEvent.delta()))); + + return Mono.fromFuture(stream.onCompleteFuture()) + .doOnSuccess(unused -> { + System.out.println(); // newline after streamed text + + // Access the complete accumulated response + Response response = responseAccumulator.response(); + System.out.println("\nResponse ID: " + response.id()); + }) + .doFinally(signal -> stream.close()); + }); + // END: com.azure.ai.agents.streaming.simple_async - // Access the complete accumulated response - Response response = responseAccumulator.response(); - System.out.println("\nResponse ID: " + response.id()); - // END: com.azure.ai.agents.streaming.simple_async - return response; - })); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent).then(streamingCompletion); }) .then(Mono.defer(() -> { AgentVersionDetails agent = agentRef.get(); 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..1f996a820b76 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; -import com.azure.core.util.IterableStream; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; +import com.openai.core.http.StreamResponse; import com.openai.helpers.ResponseAccumulator; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -38,7 +37,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -50,24 +48,24 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("streaming-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // BEGIN: com.azure.ai.agents.streaming.simple_sync // Use ResponseAccumulator to collect streamed events into a final Response ResponseAccumulator responseAccumulator = ResponseAccumulator.create(); // Stream response - text is printed as it arrives - IterableStream events = - responsesClient.createStreamingAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + try (StreamResponse events = openAIClient.responses().createStreaming( ResponseCreateParams.builder() - .input("Tell me a short story about a brave explorer.")); + .input("Tell me a short story about a brave explorer.") + .build())) { - for (ResponseStreamEvent event : events) { - responseAccumulator.accumulate(event); - event.outputTextDelta() - .ifPresent(textEvent -> System.out.print(textEvent.delta())); + events.stream().forEach(event -> { + responseAccumulator.accumulate(event); + event.outputTextDelta() + .ifPresent(textEvent -> System.out.print(textEvent.delta())); + }); } System.out.println(); // newline after streamed text 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..fdc6b54a3ae2 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 @@ -5,15 +5,14 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.A2AProtocolVersion; import com.azure.ai.agents.models.A2ATool; -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.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Collections; @@ -35,6 +34,7 @@ public class AgentToAgentAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "a2a-agent"; String a2aConnectionId = Configuration.getGlobalConfiguration().get("A2A_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -42,7 +42,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -54,18 +54,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("What can the secondary agent do?")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("What can the secondary agent do?") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..855145e3d6c1 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 @@ -5,15 +5,14 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.A2AProtocolVersion; import com.azure.ai.agents.models.A2ATool; -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.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -41,7 +40,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_agent_to_agent // Create agent-to-agent tool with A2A protocol version and connection ID @@ -59,13 +57,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("What can the secondary agent do?")); + .input("What can the secondary agent do?") + .build()); System.out.println("Response: " + response.output()); } finally { 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..164f50c0b2c1 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 @@ -5,10 +5,8 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AISearchIndexResource; -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.AzureAISearchQueryType; import com.azure.ai.agents.models.AzureAISearchTool; @@ -16,6 +14,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Arrays; @@ -39,6 +38,7 @@ public class AzureAISearchAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "ai-search-agent"; String connectionId = Configuration.getGlobalConfiguration().get("AZURE_AI_SEARCH_CONNECTION_ID"); String indexName = Configuration.getGlobalConfiguration().get("AI_SEARCH_INDEX_NAME"); @@ -47,7 +47,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -66,18 +66,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Search for information about Azure AI services")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Search for information about Azure AI services") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..a2ade1bb0b03 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AISearchIndexResource; import com.azure.ai.agents.models.AzureAISearchQueryType; @@ -16,6 +14,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -46,7 +45,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_azure_ai_search // Create Azure AI Search tool with index configuration @@ -71,13 +69,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Search for information about Azure AI services")); + .input("Search for information about Azure AI services") + .build()); System.out.println("Response: " + response.output()); } finally { 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..3ee685afce2a 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureFunctionBinding; import com.azure.ai.agents.models.AzureFunctionDefinition; @@ -18,6 +16,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ToolChoiceOptions; import reactor.core.publisher.Mono; @@ -46,6 +45,7 @@ public class AzureFunctionAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "azure-function-agent"; String inputQueueName = Configuration.getGlobalConfiguration().get("STORAGE_INPUT_QUEUE_NAME"); String outputQueueName = Configuration.getGlobalConfiguration().get("STORAGE_OUTPUT_QUEUE_NAME"); String queueServiceEndpoint = Configuration.getGlobalConfiguration().get("STORAGE_QUEUE_SERVICE_ENDPOINT"); @@ -55,7 +55,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -85,19 +85,17 @@ public static void main(String[] args) { .setInstructions("You are a helpful assistant.") .setTools(Collections.singletonList(azureFunctionTool)); - agentsAsyncClient.createAgentVersion("azure-function-agent", agentDefinition) + agentsAsyncClient.createAgentVersion(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .toolChoice(ToolChoiceOptions.REQUIRED) - .input("What is the weather in Seattle?")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .toolChoice(ToolChoiceOptions.REQUIRED) + .input("What is the weather in Seattle?") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..8f194cdc09d8 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.AzureFunctionBinding; import com.azure.ai.agents.models.AzureFunctionDefinition; @@ -18,6 +16,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ToolChoiceOptions; @@ -53,7 +52,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // Define function parameters // Use BinaryData.fromObject() to produce correct JSON types @@ -91,14 +89,14 @@ public static void main(String[] args) { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .toolChoice(ToolChoiceOptions.REQUIRED) - .input("What is the weather in Seattle?")); + .input("What is the weather in Seattle?") + .build()); System.out.println("Response: " + response.output()); } finally { 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..98184c9c3bcb 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.BingCustomSearchConfiguration; import com.azure.ai.agents.models.BingCustomSearchPreviewTool; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import reactor.core.publisher.Mono; @@ -39,6 +38,7 @@ public class BingCustomSearchAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "bing-custom-search-agent"; String connectionId = Configuration.getGlobalConfiguration().get("BING_CUSTOM_SEARCH_PROJECT_CONNECTION_ID"); String instanceName = Configuration.getGlobalConfiguration().get("BING_CUSTOM_SEARCH_INSTANCE_NAME"); @@ -47,7 +47,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -62,18 +62,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Search for the latest Azure AI documentation")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Search for the latest Azure AI documentation") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..5b4150707515 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.BingCustomSearchConfiguration; import com.azure.ai.agents.models.BingCustomSearchPreviewTool; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -50,7 +49,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_bing_custom_search // Create Bing Custom Search tool with connection and instance configuration @@ -71,13 +69,13 @@ public static void main(String[] args) { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Search for the latest Azure AI documentation")); + .input("Search for the latest Azure AI documentation") + .build()); System.out.println("Response: " + response.output()); } finally { 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..e0311fe8da88 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.BingGroundingSearchConfiguration; import com.azure.ai.agents.models.BingGroundingSearchToolParameters; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Arrays; @@ -37,6 +36,7 @@ public class BingGroundingAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "bing-grounding-agent"; String bingConnectionId = Configuration.getGlobalConfiguration().get("BING_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -44,7 +44,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -59,18 +59,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("What are the latest developments in AI?")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("What are the latest developments in AI?") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..3f56273dafad 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.BingGroundingSearchConfiguration; import com.azure.ai.agents.models.BingGroundingSearchToolParameters; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -43,7 +42,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_bing_grounding // Create Bing grounding tool with connection configuration @@ -64,13 +62,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("What are the latest developments in AI?")); + .input("What are the latest developments in AI?") + .build()); System.out.println("Response: " + response.output()); } finally { 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..3ccfb218633e 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.BrowserAutomationPreviewTool; import com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Collections; @@ -36,6 +35,7 @@ public class BrowserAutomationAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "browser-agent"; String connectionId = Configuration.getGlobalConfiguration().get("BROWSER_AUTOMATION_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -43,7 +43,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -58,18 +58,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Navigate to microsoft.com and summarize the main content")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Navigate to microsoft.com and summarize the main content") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..6bf4551134d3 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.BrowserAutomationPreviewTool; import com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -42,7 +41,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_browser_automation // Create browser automation tool with connection configuration @@ -63,13 +61,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Navigate to microsoft.com and summarize the main content")); + .input("Navigate to microsoft.com and summarize the main content") + .build()); System.out.println("Response: " + response.output()); } finally { 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..e6a8e7516761 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCodeInterpreterToolCall; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputItem; @@ -37,13 +36,14 @@ public class CodeInterpreterAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "code-interpreter-agent"; AgentsClientBuilder builder = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -55,18 +55,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Calculate the first 10 prime numbers and show me the Python code you used.")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Calculate the first 10 prime numbers and show me the Python code you used.") + .build()))); }) .doOnNext(response -> { for (ResponseOutputItem outputItem : response.output()) { 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..42f7ca99800a 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.CodeInterpreterTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCodeInterpreterToolCall; import com.openai.models.responses.ResponseCreateParams; @@ -41,7 +40,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -60,13 +58,14 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("code-interpreter-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); + + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Calculate the first 10 prime numbers and show me the Python code you used.")); + .input("Calculate the first 10 prime numbers and show me the Python code you used.") + .build()); // Process and display the response for (ResponseOutputItem outputItem : response.output()) { 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..c8ffda08fa5b 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 @@ -6,9 +6,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.AgentsServiceVersion; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.ComputerEnvironment; import com.azure.ai.agents.models.ComputerUsePreviewTool; @@ -18,6 +16,7 @@ import com.azure.ai.agents.tools.ComputerUseUtil.SearchState; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.EasyInputMessage; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseComputerToolCall; @@ -65,6 +64,7 @@ public static void main(String[] args) { Configuration configuration = Configuration.getGlobalConfiguration(); String endpoint = configuration.get("FOUNDRY_PROJECT_ENDPOINT"); String model = configuration.get("AZURE_COMPUTER_USE_MODEL_DEPLOYMENT_NAME", "computer-use-preview"); + String agentName = "ComputerUseAgent"; AgentsClientBuilder builder = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) @@ -72,7 +72,7 @@ public static void main(String[] args) { .serviceVersion(AgentsServiceVersion.getLatest()); AgentsAsyncClient agentsClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); // Load screenshot assets Map screenshots; @@ -124,28 +124,26 @@ public static void main(String[] args) { ); // Create agent and run the interaction loop - agentsClient.createAgentVersion("ComputerUseAgent", agentDefinition) + agentsClient.createAgentVersion(agentName, agentDefinition) .doOnNext(agent -> { agentRef.set(agent); System.out.printf("Agent created (id: %s, name: %s, version: %s)%n", agent.getId(), agent.getName(), agent.getVersion()); }) .flatMap(agent -> { - // Create the AgentReference for the response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); System.out.println("Starting computer automation session (initial screenshot: cua_browser_search.png)..."); // Send initial request - return responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return SampleUtils.pinAgentVersion(agentsClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .inputOfResponse(initialInput) - .truncation(ResponseCreateParams.Truncation.AUTO)) + .truncation(ResponseCreateParams.Truncation.AUTO) + .build()))) .doOnNext(response -> System.out.printf("Initial response received (ID: %s)%n", response.id())) .flatMap(response -> runInteractionLoop( - responsesClient, agentReference, response, screenshots, SearchState.INITIAL, 0)); + openAIAsyncClient, response, screenshots, SearchState.INITIAL, 0)); }) .doFinally(signalType -> { System.out.println("\nCleaning up..."); @@ -163,8 +161,7 @@ public static void main(String[] args) { /** * Recursively processes the interaction loop with the Computer Use Agent. * - * @param responsesClient The responses async client. - * @param agentReference The agent reference. + * @param openAIAsyncClient The agent-scoped OpenAI async client. * @param response The current response from the agent. * @param screenshots The map of screenshot assets. * @param currentState The current search state. @@ -172,8 +169,7 @@ public static void main(String[] args) { * @return A Mono that completes when the loop finishes. */ private static Mono runInteractionLoop( - ResponsesAsyncClient responsesClient, - AgentReference agentReference, + OpenAIClientAsync openAIAsyncClient, Response response, Map screenshots, SearchState currentState, @@ -222,14 +218,14 @@ private static Mono runInteractionLoop( .build()) ); - return responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .previousResponseId(response.id()) .inputOfResponse(followUpInput) - .truncation(ResponseCreateParams.Truncation.AUTO)) + .truncation(ResponseCreateParams.Truncation.AUTO) + .build())) .doOnNext(newResponse -> System.out.printf("Follow-up response received (ID: %s)%n", newResponse.id())) .flatMap(newResponse -> runInteractionLoop( - responsesClient, agentReference, newResponse, screenshots, newState, iteration + 1)); + openAIAsyncClient, newResponse, screenshots, newState, iteration + 1)); } } 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..9a8e426f8c79 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 @@ -6,9 +6,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; import com.azure.ai.agents.AgentsServiceVersion; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.ComputerEnvironment; import com.azure.ai.agents.models.ComputerUsePreviewTool; @@ -18,6 +16,7 @@ import com.azure.ai.agents.tools.ComputerUseUtil.SearchState; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.EasyInputMessage; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseComputerToolCall; @@ -68,7 +67,6 @@ public static void main(String[] args) { .serviceVersion(AgentsServiceVersion.getLatest()); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // Initialize state machine SearchState currentState = SearchState.INITIAL; @@ -104,9 +102,8 @@ public static void main(String[] args) { System.out.printf("Agent created (id: %s, name: %s, version: %s)%n", agent.getId(), agent.getName(), agent.getVersion()); - // Create the AgentReference for the response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // Initial request with screenshot - start with Bing search page System.out.println("Starting computer automation session (initial screenshot: cua_browser_search.png)..."); @@ -136,11 +133,11 @@ public static void main(String[] args) { .build()) ); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .inputOfResponse(initialInput) - .truncation(ResponseCreateParams.Truncation.AUTO)); + .truncation(ResponseCreateParams.Truncation.AUTO) + .build()); System.out.printf("Initial response received (ID: %s)%n", response.id()); @@ -193,12 +190,12 @@ public static void main(String[] args) { .build()) ); - response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + response = openAIClient.responses().create( ResponseCreateParams.builder() .previousResponseId(response.id()) .inputOfResponse(followUpInput) - .truncation(ResponseCreateParams.Truncation.AUTO)); + .truncation(ResponseCreateParams.Truncation.AUTO) + .build()); System.out.printf("Follow-up response received (ID: %s)%n", response.id()); } 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..07843dfde2ef 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import reactor.core.publisher.Mono; @@ -36,6 +35,7 @@ public class CustomCodeInterpreterAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "CustomCodeInterpreterAgent"; String mcpServerUrl = Configuration.getGlobalConfiguration().get("MCP_SERVER_URL"); String connectionId = Configuration.getGlobalConfiguration().get("MCP_PROJECT_CONNECTION_ID"); @@ -44,7 +44,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -57,18 +57,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Calculate the factorial of 10 using Python.")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Calculate the factorial of 10 using Python.") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..8e3a4a299ddf 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -42,7 +41,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // Create custom code interpreter MCP tool // Uses require_approval: "never" because code runs in a sandboxed Container Apps session @@ -61,13 +59,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Calculate the factorial of 10 using Python.")); + .input("Calculate the factorial of 10 using Python.") + .build()); System.out.println("Response: " + response.output()); } finally { 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..bd87b31b5e3a 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricDataAgentToolParameters; import com.azure.ai.agents.models.MicrosoftFabricPreviewTool; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.ToolProjectConnection; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Arrays; @@ -37,6 +36,7 @@ public class FabricAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "fabric-agent"; String fabricConnectionId = Configuration.getGlobalConfiguration().get("FABRIC_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -44,7 +44,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -60,18 +60,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Query the latest sales data from Microsoft Fabric")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Query the latest sales data from Microsoft Fabric") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..3f92a93e72a8 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricIqPreviewTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputItem; @@ -48,7 +47,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); FabricIqPreviewTool fabricIqTool = new FabricIqPreviewTool(fabricIqConnectionId) .setServerLabel("fabric-iq-tool") @@ -63,13 +62,11 @@ public static void main(String[] args) { agent -> { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input(userInput)) + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input(userInput) + .build()))) .doOnNext(FabricIQAsync::printResponse) .then(); }, 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..21b56b001451 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricIqPreviewTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputItem; @@ -46,7 +45,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_fabric_iq @@ -64,13 +62,13 @@ public static void main(String[] args) { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input(userInput)); + .input(userInput) + .build()); printResponse(response); } finally { 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..f58dac20752e 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FabricDataAgentToolParameters; import com.azure.ai.agents.models.MicrosoftFabricPreviewTool; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.ToolProjectConnection; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -43,7 +42,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_fabric // Create Microsoft Fabric tool with connection configuration @@ -65,13 +63,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Query the latest sales data from Microsoft Fabric")); + .input("Query the latest sales data from Microsoft Fabric") + .build()); System.out.println("Response: " + response.output()); } finally { 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..94aa6306e7d4 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FileSearchTool; import com.azure.ai.agents.models.PromptAgentDefinition; @@ -15,6 +13,7 @@ import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; import com.openai.client.OpenAIClient; +import com.openai.client.OpenAIClientAsync; import com.openai.models.files.FileCreateParams; import com.openai.models.files.FileObject; import com.openai.models.files.FilePurpose; @@ -58,10 +57,9 @@ public static void main(String[] args) throws Exception { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); ConversationServiceAsync conversationServiceAsync = builder.buildOpenAIAsyncClient().conversations(); // Vector store and file operations use the sync OpenAI client for setup - OpenAIClient openAIClient = builder.buildOpenAIClient(); + OpenAIClient projectOpenAIClient = builder.buildOpenAIClient(); AtomicReference agentRef = new AtomicReference<>(); AtomicReference conversationIdRef = new AtomicReference<>(); @@ -75,13 +73,13 @@ public static void main(String[] args) throws Exception { Path tempFile = Files.createTempFile("sample_document", ".txt"); Files.write(tempFile, sampleContent.getBytes(StandardCharsets.UTF_8)); - FileObject uploadedFile = openAIClient.files().create(FileCreateParams.builder() + FileObject uploadedFile = projectOpenAIClient.files().create(FileCreateParams.builder() .file(tempFile) .purpose(FilePurpose.ASSISTANTS) .build()); System.out.println("Uploaded file: " + uploadedFile.id()); - VectorStore vectorStore = openAIClient.vectorStores().create(VectorStoreCreateParams.builder() + VectorStore vectorStore = projectOpenAIClient.vectorStores().create(VectorStoreCreateParams.builder() .name("SampleVectorStore") .fileIds(Collections.singletonList(uploadedFile.id())) .build()); @@ -100,19 +98,20 @@ public static void main(String[] args) throws Exception { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + OpenAIClientAsync agentOpenAIAsyncClient + = builder.buildAgentScopedOpenAIAsyncClient(agent.getName()); - return Mono.fromFuture(conversationServiceAsync.create()) + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(conversationServiceAsync.create())) .flatMap(conversation -> { conversationIdRef.set(conversation.id()); System.out.println("Created conversation: " + conversation.id()); - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return Mono.fromFuture(() -> agentOpenAIAsyncClient.responses().create( ResponseCreateParams.builder() .conversation(conversation.id()) - .input("What is the largest planet in the Solar System?")); + .input("What is the largest planet in the Solar System?") + .build())); }); }) .doOnNext(response -> { @@ -159,8 +158,8 @@ public static void main(String[] args) throws Exception { return Mono.empty(); })) .doFinally(signal -> { - openAIClient.vectorStores().delete(vectorStore.id()); - openAIClient.files().delete(uploadedFile.id()); + projectOpenAIClient.vectorStores().delete(vectorStore.id()); + projectOpenAIClient.files().delete(uploadedFile.id()); try { Files.deleteIfExists(tempFile); } catch (Exception ignored) { 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..f029249bfb1b 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FileSearchTool; import com.azure.ai.agents.models.PromptAgentDefinition; @@ -56,9 +54,8 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); - ConversationService conversationService = builder.buildOpenAIClient().conversations(); - OpenAIClient openAIClient = builder.buildOpenAIClient(); + OpenAIClient projectOpenAIClient = builder.buildOpenAIClient(); + ConversationService conversationService = projectOpenAIClient.conversations(); AgentVersionDetails agent = null; Conversation conversation = null; @@ -76,14 +73,14 @@ public static void main(String[] args) { tempFile = Files.createTempFile("sample_document", ".txt"); Files.write(tempFile, sampleContent.getBytes(StandardCharsets.UTF_8)); - uploadedFile = openAIClient.files().create(FileCreateParams.builder() + uploadedFile = projectOpenAIClient.files().create(FileCreateParams.builder() .file(tempFile) .purpose(FilePurpose.ASSISTANTS) .build()); System.out.println("Uploaded file: " + uploadedFile.id()); // Create a vector store with the uploaded file - vectorStore = openAIClient.vectorStores().create(VectorStoreCreateParams.builder() + vectorStore = projectOpenAIClient.vectorStores().create(VectorStoreCreateParams.builder() .name("SampleVectorStore") .fileIds(Collections.singletonList(uploadedFile.id())) .build()); @@ -105,18 +102,18 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("file-search-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient agentOpenAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // Create a conversation and ask the agent conversation = conversationService.create(); System.out.println("Created conversation: " + conversation.id()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = agentOpenAIClient.responses().create( ResponseCreateParams.builder() .conversation(conversation.id()) - .input("What is the largest planet in the Solar System?")); + .input("What is the largest planet in the Solar System?") + .build()); // Process and display the response for (ResponseOutputItem outputItem : response.output()) { @@ -164,11 +161,11 @@ public static void main(String[] args) { System.out.println("Agent deleted"); } if (vectorStore != null) { - openAIClient.vectorStores().delete(vectorStore.id()); + projectOpenAIClient.vectorStores().delete(vectorStore.id()); System.out.println("Vector store deleted"); } if (uploadedFile != null) { - openAIClient.files().delete(uploadedFile.id()); + projectOpenAIClient.files().delete(uploadedFile.id()); System.out.println("File deleted"); } } 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..5c83166ccc42 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 @@ -5,15 +5,14 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseFunctionToolCall; import com.openai.models.responses.ResponseOutputItem; @@ -42,13 +41,14 @@ public class FunctionCallAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "function-call-agent"; AgentsClientBuilder builder = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -81,18 +81,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("What's the weather like in Seattle?")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("What's the weather like in Seattle?") + .build()))); }) .doOnNext(response -> { for (ResponseOutputItem outputItem : response.output()) { 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..bd15b650bf32 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 @@ -5,15 +5,14 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.FunctionTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseFunctionToolCall; @@ -46,7 +45,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -83,13 +81,14 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("function-call-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); + + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("What's the weather like in Seattle?")); + .input("What's the weather like in Seattle?") + .build()); // Process and display the response for (ResponseOutputItem outputItem : response.output()) { 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..97db6514e0bc 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.ImageGenTool; import com.azure.ai.agents.models.ImageGenToolModel; @@ -16,6 +14,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Collections; @@ -37,6 +36,7 @@ public class ImageGenerationAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "image-gen-agent"; String imageModel = Configuration.getGlobalConfiguration().get("IMAGE_GENERATION_MODEL_DEPLOYMENT_NAME"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -44,7 +44,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -58,18 +58,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Generate an image of a sunset over a mountain range")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Generate an image of a sunset over a mountain range") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..ac209de553f3 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.ImageGenTool; import com.azure.ai.agents.models.ImageGenToolModel; @@ -16,6 +14,7 @@ import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -43,7 +42,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_image_generation // Create image generation tool with model, quality, and size @@ -63,13 +61,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Generate an image of a sunset over a mountain range")); + .input("Generate an image of a sunset over a mountain range") + .build()); // The response output may include image_generation_call items with base64-encoded image data. // This sample prints the response status and the number of output items; image extraction 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..3634d9dfa914 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseInputItem; import com.openai.models.responses.ResponseOutputItem; @@ -42,13 +41,14 @@ public class McpAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "mcp-agent"; AgentsClientBuilder builder = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -63,24 +63,18 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Please summarize the Azure REST API specifications Readme")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Please summarize the Azure REST API specifications Readme") + .build()))); }) .flatMap(response -> { - AgentVersionDetails agent = agentRef.get(); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - // Process MCP approval requests List approvals = new ArrayList(); for (ResponseOutputItem item : response.output()) { @@ -99,11 +93,11 @@ public static void main(String[] args) { if (!approvals.isEmpty()) { System.out.println("Sending " + approvals.size() + " approval(s)..."); - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .inputOfResponse(approvals) - .previousResponseId(response.id())); + .previousResponseId(response.id()) + .build())); } return Mono.just(response); 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..183825ae5423 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseInputItem; @@ -46,7 +45,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -68,13 +66,14 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("mcp-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); + + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Please summarize the Azure REST API specifications Readme")); + .input("Please summarize the Azure REST API specifications Readme") + .build()); // Process MCP approval requests — the server requires approval before executing tools List approvals = new ArrayList(); @@ -95,11 +94,11 @@ public static void main(String[] args) { // If approvals were needed, send them back and get the final response if (!approvals.isEmpty()) { System.out.println("Sending " + approvals.size() + " approval(s)..."); - response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + response = openAIClient.responses().create( ResponseCreateParams.builder() .inputOfResponse(approvals) - .previousResponseId(response.id())); + .previousResponseId(response.id()) + .build()); } // Process and display the final response 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..159fcdc579bc 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseInputItem; import com.openai.models.responses.ResponseOutputItem; @@ -39,6 +38,7 @@ public class McpWithConnectionAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "mcp-connection-agent"; String mcpConnectionId = Configuration.getGlobalConfiguration().get("MCP_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -46,7 +46,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -59,24 +59,18 @@ public static void main(String[] args) { .setInstructions("Use MCP tools as needed") .setTools(Collections.singletonList(mcpTool)); - agentsAsyncClient.createAgentVersion("mcp-connection-agent", agentDefinition) + agentsAsyncClient.createAgentVersion(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("What is my username in GitHub profile?")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("What is my username in GitHub profile?") + .build()))); }) .flatMap(response -> { - AgentVersionDetails agent = agentRef.get(); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - // Process MCP approval requests List approvals = new ArrayList<>(); for (ResponseOutputItem item : response.output()) { @@ -95,11 +89,11 @@ public static void main(String[] args) { if (!approvals.isEmpty()) { System.out.println("Sending " + approvals.size() + " approval(s)..."); - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .inputOfResponse(approvals) - .previousResponseId(response.id())); + .previousResponseId(response.id()) + .build())); } return Mono.just(response); 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..67ccd8aab716 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.McpTool; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -50,7 +49,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); ConversationService conversationService = builder.buildOpenAIClient().conversations(); // BEGIN: com.azure.ai.agents.define_mcp_with_connection @@ -70,18 +68,18 @@ public static void main(String[] args) { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // Create a conversation for context Conversation conversation = conversationService.create(); // Send initial request that triggers the MCP tool - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(conversation.id()) - .input("What is my username in GitHub profile?")); + .input("What is my username in GitHub profile?") + .build()); // Process MCP approval requests: approve each one so the agent can proceed List approvals = new ArrayList<>(); @@ -103,12 +101,12 @@ public static void main(String[] args) { System.out.println("Sending " + approvals.size() + " approval(s)..."); // Send approvals back to continue the agent's work - Response followUp = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response followUp = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(conversation.id()) .inputOfResponse(approvals) - .previousResponseId(response.id())); + .previousResponseId(response.id()) + .build()); System.out.println("Response: " + followUp.output()); } else { 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..3128a063aac8 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 @@ -5,10 +5,8 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.BetaMemoryStoresClient; -import com.azure.ai.agents.ResponsesAsyncClient; -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.MemorySearchPreviewTool; import com.azure.ai.agents.models.MemoryStoreDefaultDefinition; @@ -18,6 +16,7 @@ import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.services.async.ConversationServiceAsync; @@ -45,6 +44,7 @@ public class MemorySearchAsync { public static void main(String[] args) throws Exception { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "memory-search-agent"; String chatModel = Configuration.getGlobalConfiguration().get("AZURE_AI_CHAT_MODEL_DEPLOYMENT_NAME"); String embeddingModel = Configuration.getGlobalConfiguration().get("AZURE_AI_EMBEDDING_MODEL_DEPLOYMENT_NAME"); @@ -53,7 +53,7 @@ public static void main(String[] args) throws Exception { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); ConversationServiceAsync conversationServiceAsync = builder.buildOpenAIAsyncClient().conversations(); // Memory store operations use sync client for setup/teardown BetaMemoryStoresClient memoryStoresClient = builder.beta().buildBetaMemoryStoresClient(); @@ -85,41 +85,35 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - // First conversation: teach a preference return Mono.fromFuture(conversationServiceAsync.create()) .flatMap(conv -> { firstConvRef.set(conv.id()); - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .conversation(conv.id()) - .input("I prefer dark roast coffee")); + .input("I prefer dark roast coffee") + .build()))); }); }) .doOnNext(response -> System.out.println("First response received")) .delayElement(Duration.ofSeconds(MEMORY_WRITE_DELAY_SECONDS)) .flatMap(ignored -> { - AgentVersionDetails agent = agentRef.get(); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - // Second conversation: test memory recall return Mono.fromFuture(conversationServiceAsync.create()) .flatMap(conv -> { secondConvRef.set(conv.id()); - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .conversation(conv.id()) - .input("Please order my usual coffee")); + .input("Please order my usual coffee") + .build())); }); }) .doOnNext(response -> System.out.println("Response: " + response.output())) 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..e845b35c5694 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.MemorySearchPreviewTool; import com.azure.ai.agents.models.MemoryStoreDefaultDefinition; @@ -18,6 +16,7 @@ import com.azure.core.exception.ResourceNotFoundException; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -54,7 +53,6 @@ public static void main(String[] args) { AgentsClient agentsClient = builder.buildAgentsClient(); BetaMemoryStoresClient memoryStoresClient = builder.beta().buildBetaMemoryStoresClient(); ConversationService conversationService = builder.buildOpenAIClient().conversations(); - ResponsesClient responsesClient = builder.buildResponsesClient(); String memoryStoreName = "my_memory_store"; String scope = "user_123"; @@ -88,19 +86,20 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("memory-search-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); // First conversation: teach the agent a preference Conversation conversation = conversationService.create(); firstConversationId = conversation.id(); System.out.println("Created conversation (id: " + firstConversationId + ")"); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(firstConversationId) - .input("I prefer dark roast coffee")); + .input("I prefer dark roast coffee") + .build()); System.out.println("Response: " + getResponseText(response)); // Wait for memories to be extracted and stored @@ -112,11 +111,11 @@ public static void main(String[] args) { followUpConversationId = newConversation.id(); System.out.println("Created new conversation (id: " + followUpConversationId + ")"); - Response followUpResponse = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response followUpResponse = openAIClient.responses().create( ResponseCreateParams.builder() .conversation(followUpConversationId) - .input("Please order my usual coffee")); + .input("Please order my usual coffee") + .build()); System.out.println("Response: " + getResponseText(followUpResponse)); } catch (InterruptedException e) { Thread.currentThread().interrupt(); 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..e36c1aada8e4 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 @@ -5,10 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; import com.azure.ai.agents.SampleUtils; -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.OpenApiAnonymousAuthDetails; import com.azure.ai.agents.models.OpenApiFunctionDefinition; @@ -17,6 +14,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import reactor.core.publisher.Mono; @@ -39,13 +37,14 @@ public class OpenApiAsync { public static void main(String[] args) throws Exception { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "openapi-agent"; AgentsClientBuilder builder = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -61,18 +60,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Call the API and tell me what it returns.")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Call the API and tell me what it returns.") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..156d62e252e5 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 @@ -5,10 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; import com.azure.ai.agents.SampleUtils; -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.OpenApiAnonymousAuthDetails; import com.azure.ai.agents.models.OpenApiFunctionDefinition; @@ -17,6 +14,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.conversations.items.ItemCreateParams; import com.openai.models.responses.EasyInputMessage; @@ -49,7 +47,6 @@ public static void main(String[] args) throws Exception { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); ConversationService conversationService = builder.buildOpenAIClient().conversations(); @@ -82,15 +79,14 @@ public static void main(String[] args) throws Exception { .build()); try { - AgentReference agentReference = new AgentReference(agentVersion.getName()) - .setVersion(agentVersion.getVersion()); - - ResponseCreateParams.Builder options = ResponseCreateParams.builder() - .maxOutputTokens(300L); - - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - options.conversation(conversation.id())); + SampleUtils.pinAgentVersion(agentsClient, agentVersion); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agentVersion.getName()); + + Response response = openAIClient.responses().create( + ResponseCreateParams.builder() + .maxOutputTokens(300L) + .conversation(conversation.id()) + .build()); String text = response.output().stream() .filter(item -> item.isMessage()) 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..bd5bf30cd3be 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 @@ -5,10 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; import com.azure.ai.agents.SampleUtils; -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.OpenApiAnonymousAuthDetails; import com.azure.ai.agents.models.OpenApiFunctionDefinition; @@ -17,6 +14,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.conversations.Conversation; import com.openai.models.conversations.items.ItemCreateParams; import com.openai.models.responses.EasyInputMessage; @@ -49,7 +47,6 @@ public static void main(String[] args) throws Exception { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); ConversationService conversationService = builder.buildOpenAIClient().conversations(); @@ -85,15 +82,14 @@ public static void main(String[] args) throws Exception { .build()); try { - AgentReference agentReference = new AgentReference(agentVersion.getName()) - .setVersion(agentVersion.getVersion()); - - ResponseCreateParams.Builder options = ResponseCreateParams.builder() - .maxOutputTokens(300L); - - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - options.conversation(conversation.id())); + SampleUtils.pinAgentVersion(agentsClient, agentVersion); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agentVersion.getName()); + + Response response = openAIClient.responses().create( + ResponseCreateParams.builder() + .maxOutputTokens(300L) + .conversation(conversation.id()) + .build()); String text = response.output().stream() .filter(item -> item.isMessage()) 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..4a0159d13826 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 @@ -5,10 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; import com.azure.ai.agents.SampleUtils; -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.OpenApiFunctionDefinition; import com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails; @@ -18,6 +15,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import reactor.core.publisher.Mono; @@ -41,6 +39,7 @@ public class OpenApiWithConnectionAsync { public static void main(String[] args) throws Exception { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "openapi-connection-agent"; String connectionId = Configuration.getGlobalConfiguration().get("OPENAPI_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -48,7 +47,7 @@ public static void main(String[] args) throws Exception { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -67,18 +66,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Call the API and summarize the returned URL and origin.")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Call the API and summarize the returned URL and origin.") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..28ea194f8f76 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 @@ -5,10 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; import com.azure.ai.agents.SampleUtils; -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.OpenApiFunctionDefinition; import com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails; @@ -18,6 +15,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -52,7 +50,6 @@ public static void main(String[] args) throws Exception { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // Load the OpenAPI spec from a JSON file Map spec = OpenApiFunctionDefinition.readSpecFromFile( @@ -78,13 +75,13 @@ public static void main(String[] args) throws Exception { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Call the API and summarize the returned URL and origin.")); + .input("Call the API and summarize the returned URL and origin.") + .build()); System.out.println("Response: " + response.output()); } finally { 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..bccd1ee1940e 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.SharepointGroundingToolParameters; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.ToolProjectConnection; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import java.time.Duration; import java.util.Arrays; @@ -37,6 +36,7 @@ public class SharePointGroundingAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "sharepoint-agent"; String sharepointConnectionId = Configuration.getGlobalConfiguration().get("SHAREPOINT_PROJECT_CONNECTION_ID"); AgentsClientBuilder builder = new AgentsClientBuilder() @@ -44,7 +44,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -60,18 +60,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("Find the latest project documentation in SharePoint")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("Find the latest project documentation in SharePoint") + .build()))); }) .doOnNext(response -> { System.out.println("Response: " + response.output()); 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..6cdeb0b93506 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 @@ -5,9 +5,7 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.SharepointGroundingToolParameters; @@ -15,6 +13,7 @@ import com.azure.ai.agents.models.ToolProjectConnection; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; @@ -43,7 +42,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_sharepoint // Create SharePoint grounding tool with connection configuration @@ -65,13 +63,13 @@ public static void main(String[] args) { try { // Create a response - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("Find the latest project documentation in SharePoint")); + .input("Find the latest project documentation in SharePoint") + .build()); System.out.println("Response: " + response.output()); } finally { 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..80bd5611e9dc 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WebSearchPreviewTool; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputItem; import com.openai.models.responses.ResponseOutputMessage; @@ -36,13 +35,14 @@ public class WebSearchAsync { public static void main(String[] args) { String endpoint = Configuration.getGlobalConfiguration().get("FOUNDRY_PROJECT_ENDPOINT"); String model = Configuration.getGlobalConfiguration().get("FOUNDRY_MODEL_NAME"); + String agentName = "web-search-agent"; AgentsClientBuilder builder = new AgentsClientBuilder() .credential(new DefaultAzureCredentialBuilder().build()) .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); AtomicReference agentRef = new AtomicReference<>(); @@ -54,18 +54,16 @@ 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(agentName, agentDefinition) .flatMap(agent -> { agentRef.set(agent); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), - ResponseCreateParams.builder() - .input("What are the latest trends in renewable energy?")); + return SampleUtils.pinAgentVersion(agentsAsyncClient, agent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( + ResponseCreateParams.builder() + .input("What are the latest trends in renewable energy?") + .build()))); }) .doOnNext(response -> { for (ResponseOutputItem outputItem : response.output()) { 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..7e3897ab3bfb 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; -import com.azure.ai.agents.models.AzureCreateResponseOptions; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WebSearchPreviewTool; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputItem; @@ -40,7 +39,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); AgentVersionDetails agent = null; @@ -59,13 +57,14 @@ public static void main(String[] args) { agent = agentsClient.createAgentVersion("web-search-agent", agentDefinition); System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); + + Response response = openAIClient.responses().create( ResponseCreateParams.builder() - .input("What are the latest trends in renewable energy?")); + .input("What are the latest trends in renewable energy?") + .build()); // Process and display the response for (ResponseOutputItem outputItem : response.output()) { 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..ace5fe457f85 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsAsyncClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesAsyncClient; -import com.azure.ai.agents.models.AgentReference; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; -import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WorkIqPreviewTool; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClientAsync; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputMessage; @@ -53,7 +52,7 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsAsyncClient agentsAsyncClient = builder.buildAgentsAsyncClient(); - ResponsesAsyncClient responsesAsyncClient = builder.buildResponsesAsyncClient(); + OpenAIClientAsync openAIAsyncClient = builder.buildAgentScopedOpenAIAsyncClient(agentName); WorkIqPreviewTool workIqTool = new WorkIqPreviewTool(workIqConnectionId); @@ -70,14 +69,12 @@ public static void main(String[] args) { System.out.printf("Agent created: %s (version %s)%n", createdAgent.getName(), createdAgent.getVersion()); - AgentReference agentReference = new AgentReference(createdAgent.getName()) - .setVersion(createdAgent.getVersion()); - - return responsesAsyncClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + return SampleUtils.pinAgentVersion(agentsAsyncClient, createdAgent) + .then(Mono.fromFuture(() -> openAIAsyncClient.responses().create( ResponseCreateParams.builder() .toolChoice(ToolChoiceOptions.REQUIRED) - .input(userInput)) + .input(userInput) + .build()))) .doOnNext(response -> { System.out.println("Response status: " + response.status().map(Object::toString).orElse("unknown")); 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..255911e1e6ed 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 @@ -5,14 +5,13 @@ import com.azure.ai.agents.AgentsClient; import com.azure.ai.agents.AgentsClientBuilder; -import com.azure.ai.agents.ResponsesClient; -import com.azure.ai.agents.models.AgentReference; +import com.azure.ai.agents.SampleUtils; import com.azure.ai.agents.models.AgentVersionDetails; -import com.azure.ai.agents.models.AzureCreateResponseOptions; import com.azure.ai.agents.models.PromptAgentDefinition; import com.azure.ai.agents.models.WorkIqPreviewTool; import com.azure.core.util.Configuration; import com.azure.identity.DefaultAzureCredentialBuilder; +import com.openai.client.OpenAIClient; import com.openai.models.responses.Response; import com.openai.models.responses.ResponseCreateParams; import com.openai.models.responses.ResponseOutputMessage; @@ -51,7 +50,6 @@ public static void main(String[] args) { .endpoint(endpoint); AgentsClient agentsClient = builder.buildAgentsClient(); - ResponsesClient responsesClient = builder.buildResponsesClient(); // BEGIN: com.azure.ai.agents.define_work_iq // Create a Work IQ tool with a fully qualified project connection resource ID @@ -68,14 +66,14 @@ public static void main(String[] args) { System.out.printf("Agent created: %s (version %s)%n", agent.getName(), agent.getVersion()); try { - AgentReference agentReference = new AgentReference(agent.getName()) - .setVersion(agent.getVersion()); + SampleUtils.pinAgentVersion(agentsClient, agent); + OpenAIClient openAIClient = builder.buildAgentScopedOpenAIClient(agent.getName()); - Response response = responsesClient.createAzureResponse( - new AzureCreateResponseOptions().setAgentReference(agentReference), + Response response = openAIClient.responses().create( ResponseCreateParams.builder() .toolChoice(ToolChoiceOptions.REQUIRED) - .input(userInput)); + .input(userInput) + .build()); System.out.println("Response status: " + response.status().map(Object::toString).orElse("unknown")); System.out.println("Agent response: " + getResponseText(response)); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/FoundryFeaturesHeaderVerificationTest.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/FoundryFeaturesHeaderVerificationTest.java index fefb6ebd6d5b..331011f11b89 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/FoundryFeaturesHeaderVerificationTest.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/FoundryFeaturesHeaderVerificationTest.java @@ -79,9 +79,6 @@ public void betaHeaderDoesNotLeakToGaClientBuiltFromSameBuilder() { RecordingHttpClient httpClient = new RecordingHttpClient(); AgentsClientBuilder builder = createBuilder(httpClient); - builder.beta().buildBetaMemoryStoresClient().getMemoryStoreWithResponse("store", new RequestOptions()); - assertEquals(FoundryFeaturesOptInKeys.MEMORY_STORES_V1_PREVIEW.toString(), foundryFeatures(httpClient)); - // Beta clients temporarily add their required Foundry-Features policy while their pipeline is being built. // The policy must not remain on the reusable builder, otherwise a later GA client built from the same builder // would silently inherit a beta opt-in header despite allowPreview defaulting to false for GA clients. diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/AgentOptimizationJobProgressSerializationTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/AgentOptimizationJobProgressSerializationTests.java new file mode 100644 index 000000000000..344a4df155a9 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/AgentOptimizationJobProgressSerializationTests.java @@ -0,0 +1,136 @@ +// 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.time.Duration; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; + +/** + * Verifies that {@link AgentOptimizationJobProgress#getElapsed()} is exposed as a {@link Duration} + * (per the {@code client.java.tsp} {@code @@alternateType} customization) while the underlying JSON + * wire format remains a plain number of fractional seconds under the key {@code elapsed_seconds}. + */ +public class AgentOptimizationJobProgressSerializationTests { + + /** + * The wire key stays {@code elapsed_seconds} even though the Java getter is {@code getElapsed()}. + */ + @Test + public void wireKeyIsElapsedSeconds() throws IOException { + String json = "{\"candidates_completed\":1,\"best_score\":0.9,\"elapsed_seconds\":42.5}"; + AgentOptimizationJobProgress progress = deserialize(json); + + String roundTripped = serialize(progress); + assertTrue(roundTripped.contains("\"elapsed_seconds\""), + "expected wire key 'elapsed_seconds' in " + roundTripped); + assertFalse(roundTripped.contains("\"elapsed\":"), + "elapsed_seconds should not be renamed on the wire in " + roundTripped); + } + + /** + * Whole-second values deserialize to {@link Duration#ofSeconds(long)}. + */ + @Test + public void deserializesWholeSecondsToDuration() throws IOException { + String json = "{\"candidates_completed\":3,\"best_score\":0.75,\"elapsed_seconds\":42}"; + AgentOptimizationJobProgress progress = deserialize(json); + + assertNotNull(progress.getElapsed()); + assertEquals(Duration.ofSeconds(42), progress.getElapsed()); + assertEquals(3, progress.getCandidatesCompleted()); + assertEquals(0.75, progress.getBestScore()); + } + + /** + * Fractional-second wire values (float64) preserve sub-second precision when mapped to {@link Duration}. + * A value of {@code 42.5} means 42.5 seconds = 42500 ms. + */ + @Test + public void deserializesFractionalSecondsPreservingSubSecondPrecision() throws IOException { + String json = "{\"candidates_completed\":1,\"best_score\":0.9,\"elapsed_seconds\":42.5}"; + AgentOptimizationJobProgress progress = deserialize(json); + + assertEquals(42500L, progress.getElapsed().toMillis()); + } + + /** + * Very small sub-second values (well below one second) still round-trip through nanos correctly. + */ + @Test + public void deserializesSmallFractionalSecondsToNanos() throws IOException { + // 0.001 seconds = 1_000_000 nanos = 1 ms + String json = "{\"candidates_completed\":0,\"best_score\":0.0,\"elapsed_seconds\":0.001}"; + AgentOptimizationJobProgress progress = deserialize(json); + + assertEquals(1_000_000L, progress.getElapsed().toNanos()); + } + + /** + * Absent {@code elapsed_seconds} defaults to {@link Duration#ZERO} (the generated fallback for missing wire values). + */ + @Test + public void missingElapsedSecondsDefaultsToZero() throws IOException { + String json = "{\"candidates_completed\":2,\"best_score\":0.5}"; + AgentOptimizationJobProgress progress = deserialize(json); + + assertEquals(Duration.ZERO, progress.getElapsed()); + } + + /** + * Round-trip: fractional-second wire value survives {@code fromJson -> toJson -> fromJson} without loss. + */ + @Test + public void roundTripPreservesFractionalSeconds() throws IOException { + String originalJson = "{\"candidates_completed\":5,\"best_score\":0.88,\"elapsed_seconds\":1.5}"; + + AgentOptimizationJobProgress first = deserialize(originalJson); + String reserialized = serialize(first); + AgentOptimizationJobProgress second = deserialize(reserialized); + + assertEquals(first.getElapsed(), second.getElapsed()); + assertEquals(1500L, second.getElapsed().toMillis()); + assertEquals(first.getCandidatesCompleted(), second.getCandidatesCompleted()); + assertEquals(first.getBestScore(), second.getBestScore()); + } + + /** + * Round-trip: whole-second wire value survives {@code fromJson -> toJson -> fromJson} without loss. + */ + @Test + public void roundTripPreservesWholeSeconds() throws IOException { + String originalJson = "{\"candidates_completed\":10,\"best_score\":0.99,\"elapsed_seconds\":120}"; + + AgentOptimizationJobProgress first = deserialize(originalJson); + String reserialized = serialize(first); + AgentOptimizationJobProgress second = deserialize(reserialized); + + assertEquals(Duration.ofSeconds(120), first.getElapsed()); + assertEquals(first.getElapsed(), second.getElapsed()); + } + + private static String serialize(AgentOptimizationJobProgress progress) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + try (JsonWriter writer = JsonProviders.createWriter(out)) { + progress.toJson(writer); + } + return out.toString("UTF-8"); + } + + private static AgentOptimizationJobProgress deserialize(String json) throws IOException { + try (JsonReader reader = JsonProviders.createReader(json)) { + return AgentOptimizationJobProgress.fromJson(reader); + } + } +} diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebIqPreviewToolSerializationTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebIqPreviewToolSerializationTests.java new file mode 100644 index 000000000000..132ec8ef5c2d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebIqPreviewToolSerializationTests.java @@ -0,0 +1,183 @@ +// 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.Arrays; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * Tests for WebIqPreviewTool serialization, focusing on the requireApproval union type handling. + * requireApproval is a union type: String ("always"/"never") | McpToolRequireApproval. + */ +public class WebIqPreviewToolSerializationTests { + + private static final String TEST_CONNECTION_ID = "test-connection-id"; + + private static WebIqPreviewTool newTool() { + return new WebIqPreviewTool(TEST_CONNECTION_ID); + } + + @Test + public void testSerializationWithoutRequireApproval() throws IOException { + String json = serializeToJson(newTool()); + + assertNotNull(json); + assertTrue(json.contains("\"project_connection_id\":\"test-connection-id\"")); + assertFalse(json.contains("\"require_approval\"")); + } + + @Test + public void testSerializationWithRequireApprovalAlwaysString() throws IOException { + String json = serializeToJson(newTool().setRequireApproval("always")); + + assertTrue(json.contains("\"require_approval\":\"always\""), "Unexpected JSON: " + json); + } + + @Test + public void testSerializationWithRequireApprovalNeverString() throws IOException { + String json = serializeToJson(newTool().setRequireApproval("never")); + + assertTrue(json.contains("\"require_approval\":\"never\""), "Unexpected JSON: " + json); + } + + @Test + public void testSerializationWithRequireApprovalAsMcpToolRequireApproval() throws IOException { + McpToolRequireApproval approval + = new McpToolRequireApproval().setAlways(new McpToolFilter().setToolNames(Arrays.asList("browse"))); + + String json = serializeToJson(newTool().setRequireApproval(approval)); + + assertTrue(json.contains("\"require_approval\"")); + assertTrue(json.contains("\"always\""), "Unexpected JSON: " + json); + assertTrue(json.contains("\"browse\""), "Unexpected JSON: " + json); + } + + @Test + public void testDeserializationWithRequireApprovalAsString() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"project_connection_id\":\"test-connection-id\"," + + "\"require_approval\":\"never\"}"; + + WebIqPreviewTool tool = deserializeFromJson(json); + + assertEquals("never", tool.getRequireApprovalAsString()); + } + + @Test + public void testDeserializationWithRequireApprovalAsMcpToolRequireApproval() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"project_connection_id\":\"test-connection-id\"," + + "\"require_approval\":{\"always\":{\"tool_names\":[\"browse\"]}}}"; + + WebIqPreviewTool tool = deserializeFromJson(json); + + McpToolRequireApproval approval = tool.getRequireApprovalAsMcpToolRequireApproval(); + assertNotNull(approval); + assertNotNull(approval.getAlways()); + assertEquals(Arrays.asList("browse"), approval.getAlways().getToolNames()); + } + + @Test + public void testDeserializationWithoutRequireApproval() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"project_connection_id\":\"test-connection-id\"}"; + + WebIqPreviewTool tool = deserializeFromJson(json); + + assertNull(tool.getRequireApprovalAsString()); + assertNull(tool.getRequireApprovalAsMcpToolRequireApproval()); + } + + @Test + public void testRoundTripWithRequireApprovalAsString() throws IOException { + WebIqPreviewTool original = newTool().setServerLabel("web-iq").setRequireApproval("always"); + + WebIqPreviewTool deserialized = deserializeFromJson(serializeToJson(original)); + + assertEquals("web-iq", deserialized.getServerLabel()); + assertEquals("always", deserialized.getRequireApprovalAsString()); + } + + @Test + public void testRoundTripWithRequireApprovalAsMcpToolRequireApproval() throws IOException { + McpToolRequireApproval approval + = new McpToolRequireApproval().setNever(new McpToolFilter().setToolNames(Arrays.asList("search"))); + WebIqPreviewTool original = newTool().setRequireApproval(approval); + + WebIqPreviewTool deserialized = deserializeFromJson(serializeToJson(original)); + + McpToolRequireApproval deserializedApproval = deserialized.getRequireApprovalAsMcpToolRequireApproval(); + assertNotNull(deserializedApproval); + assertNotNull(deserializedApproval.getNever()); + assertEquals(Arrays.asList("search"), deserializedApproval.getNever().getToolNames()); + } + + @Test + public void testDirectSetGetRequireApprovalAsString() { + assertEquals("always", newTool().setRequireApproval("always").getRequireApprovalAsString()); + } + + @Test + public void testDirectSetGetRequireApprovalAsMcpToolRequireApproval() { + McpToolRequireApproval approval + = new McpToolRequireApproval().setAlways(new McpToolFilter().setToolNames(Arrays.asList("browse"))); + + McpToolRequireApproval roundTripped + = newTool().setRequireApproval(approval).getRequireApprovalAsMcpToolRequireApproval(); + + assertNotNull(roundTripped); + assertNotNull(roundTripped.getAlways()); + } + + @Test + public void testRequireApprovalCrossVariantReturnsNull() { + assertNull(newTool().setRequireApproval("always").getRequireApprovalAsMcpToolRequireApproval()); + assertNull(newTool().setRequireApproval(new McpToolRequireApproval()).getRequireApprovalAsString()); + } + + @Test + public void testRequireApprovalCrossVariantReturnsNullAfterDeserialization() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"project_connection_id\":\"test-connection-id\"," + + "\"require_approval\":{\"always\":{\"tool_names\":[\"browse\"]}}}"; + + assertNull(deserializeFromJson(json).getRequireApprovalAsString()); + } + + @Test + public void testNullArgumentClearsRequireApproval() throws IOException { + WebIqPreviewTool fromString = newTool().setRequireApproval("always").setRequireApproval((String) null); + assertNull(fromString.getRequireApprovalAsString()); + assertNull(fromString.getRequireApprovalAsMcpToolRequireApproval()); + assertFalse(serializeToJson(fromString).contains("\"require_approval\"")); + + WebIqPreviewTool fromModel = newTool().setRequireApproval(new McpToolRequireApproval()) + .setRequireApproval((McpToolRequireApproval) null); + assertNull(fromModel.getRequireApprovalAsMcpToolRequireApproval()); + assertNull(fromModel.getRequireApprovalAsString()); + assertFalse(serializeToJson(fromModel).contains("\"require_approval\"")); + } + + private String serializeToJson(WebIqPreviewTool tool) throws IOException { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + try (JsonWriter jsonWriter = JsonProviders.createWriter(outputStream)) { + tool.toJson(jsonWriter); + } + return outputStream.toString("UTF-8"); + } + + private WebIqPreviewTool deserializeFromJson(String json) throws IOException { + try (JsonReader jsonReader = JsonProviders.createReader(json)) { + return WebIqPreviewTool.fromJson(jsonReader); + } + } +} diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebIqPreviewToolboxToolSerializationTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebIqPreviewToolboxToolSerializationTests.java new file mode 100644 index 000000000000..066f086efcb1 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/WebIqPreviewToolboxToolSerializationTests.java @@ -0,0 +1,179 @@ +// 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.Arrays; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +/** + * Tests for WebIqPreviewToolboxTool serialization, focusing on the requireApproval union type handling. + * requireApproval is a union type: String ("always"/"never") | McpToolRequireApproval. + */ +public class WebIqPreviewToolboxToolSerializationTests { + + private static final String TEST_CONNECTION_ID = "test-connection-id"; + + private static WebIqPreviewToolboxTool newTool() { + return new WebIqPreviewToolboxTool(TEST_CONNECTION_ID); + } + + @Test + public void testSerializationWithoutRequireApproval() throws IOException { + String json = serializeToJson(newTool()); + + assertNotNull(json); + assertTrue(json.contains("\"project_connection_id\":\"test-connection-id\"")); + assertFalse(json.contains("\"require_approval\"")); + } + + @Test + public void testSerializationWithRequireApprovalAlwaysString() throws IOException { + String json = serializeToJson(newTool().setRequireApproval("always")); + + assertTrue(json.contains("\"require_approval\":\"always\""), "Unexpected JSON: " + json); + } + + @Test + public void testSerializationWithRequireApprovalNeverString() throws IOException { + String json = serializeToJson(newTool().setRequireApproval("never")); + + assertTrue(json.contains("\"require_approval\":\"never\""), "Unexpected JSON: " + json); + } + + @Test + public void testSerializationWithRequireApprovalAsMcpToolRequireApproval() throws IOException { + McpToolRequireApproval approval + = new McpToolRequireApproval().setAlways(new McpToolFilter().setToolNames(Arrays.asList("browse"))); + + String json = serializeToJson(newTool().setRequireApproval(approval)); + + assertTrue(json.contains("\"require_approval\"")); + assertTrue(json.contains("\"always\""), "Unexpected JSON: " + json); + assertTrue(json.contains("\"browse\""), "Unexpected JSON: " + json); + } + + @Test + public void testDeserializationWithRequireApprovalAsString() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"name\":\"web-iq-tool\"," + + "\"project_connection_id\":\"test-connection-id\",\"require_approval\":\"never\"}"; + + WebIqPreviewToolboxTool tool = deserializeFromJson(json); + + assertEquals("never", tool.getRequireApprovalAsString()); + } + + @Test + public void testDeserializationWithRequireApprovalAsMcpToolRequireApproval() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"name\":\"web-iq-tool\"," + + "\"project_connection_id\":\"test-connection-id\"," + + "\"require_approval\":{\"always\":{\"tool_names\":[\"browse\"]}}}"; + + WebIqPreviewToolboxTool tool = deserializeFromJson(json); + + McpToolRequireApproval approval = tool.getRequireApprovalAsMcpToolRequireApproval(); + assertNotNull(approval); + assertNotNull(approval.getAlways()); + assertEquals(Arrays.asList("browse"), approval.getAlways().getToolNames()); + } + + @Test + public void testDeserializationWithoutRequireApproval() throws IOException { + String json = "{\"type\":\"web_iq_preview\",\"name\":\"web-iq-tool\"," + + "\"project_connection_id\":\"test-connection-id\"}"; + + WebIqPreviewToolboxTool tool = deserializeFromJson(json); + + assertNull(tool.getRequireApprovalAsString()); + assertNull(tool.getRequireApprovalAsMcpToolRequireApproval()); + } + + @Test + public void testRoundTripWithRequireApprovalAsString() throws IOException { + WebIqPreviewToolboxTool original + = newTool().setRequireApproval("always").setServerLabel("web-iq").setName("web-iq-tool"); + + WebIqPreviewToolboxTool deserialized = deserializeFromJson(serializeToJson(original)); + + assertEquals("web-iq-tool", deserialized.getName()); + assertEquals("web-iq", deserialized.getServerLabel()); + assertEquals("always", deserialized.getRequireApprovalAsString()); + } + + @Test + public void testRoundTripWithRequireApprovalAsMcpToolRequireApproval() throws IOException { + McpToolRequireApproval approval + = new McpToolRequireApproval().setNever(new McpToolFilter().setToolNames(Arrays.asList("search"))); + WebIqPreviewToolboxTool original = newTool().setRequireApproval(approval); + + WebIqPreviewToolboxTool deserialized = deserializeFromJson(serializeToJson(original)); + + McpToolRequireApproval deserializedApproval = deserialized.getRequireApprovalAsMcpToolRequireApproval(); + assertNotNull(deserializedApproval); + assertNotNull(deserializedApproval.getNever()); + assertEquals(Arrays.asList("search"), deserializedApproval.getNever().getToolNames()); + } + + @Test + public void testDirectSetGetRequireApprovalAsString() { + assertEquals("never", newTool().setRequireApproval("never").getRequireApprovalAsString()); + } + + @Test + public void testDirectSetGetRequireApprovalAsMcpToolRequireApproval() { + McpToolRequireApproval approval + = new McpToolRequireApproval().setAlways(new McpToolFilter().setToolNames(Arrays.asList("browse"))); + + McpToolRequireApproval roundTripped + = newTool().setRequireApproval(approval).getRequireApprovalAsMcpToolRequireApproval(); + + assertNotNull(roundTripped); + assertNotNull(roundTripped.getAlways()); + } + + @Test + public void testRequireApprovalCrossVariantReturnsNull() { + assertNull(newTool().setRequireApproval("never").getRequireApprovalAsMcpToolRequireApproval()); + assertNull(newTool().setRequireApproval(new McpToolRequireApproval()).getRequireApprovalAsString()); + } + + @Test + public void testNullArgumentClearsRequireApproval() throws IOException { + WebIqPreviewToolboxTool fromString = newTool().setRequireApproval("always").setRequireApproval((String) null); + assertNull(fromString.getRequireApprovalAsString()); + assertNull(fromString.getRequireApprovalAsMcpToolRequireApproval()); + assertFalse(serializeToJson(fromString).contains("\"require_approval\"")); + + WebIqPreviewToolboxTool fromModel = newTool().setRequireApproval(new McpToolRequireApproval()) + .setRequireApproval((McpToolRequireApproval) null); + assertNull(fromModel.getRequireApprovalAsMcpToolRequireApproval()); + assertNull(fromModel.getRequireApprovalAsString()); + assertFalse(serializeToJson(fromModel).contains("\"require_approval\"")); + } + + private String serializeToJson(WebIqPreviewToolboxTool tool) throws IOException { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + try (JsonWriter jsonWriter = JsonProviders.createWriter(outputStream)) { + tool.toJson(jsonWriter); + } + return outputStream.toString("UTF-8"); + } + + private WebIqPreviewToolboxTool deserializeFromJson(String json) throws IOException { + try (JsonReader jsonReader = JsonProviders.createReader(json)) { + return WebIqPreviewToolboxTool.fromJson(jsonReader); + } + } +} diff --git a/sdk/ai/azure-ai-agents/tsp-location.yaml.hide b/sdk/ai/azure-ai-agents/tsp-location.yaml similarity index 81% rename from sdk/ai/azure-ai-agents/tsp-location.yaml.hide rename to sdk/ai/azure-ai-agents/tsp-location.yaml index f9087fc42403..559878debe95 100644 --- a/sdk/ai/azure-ai-agents/tsp-location.yaml.hide +++ b/sdk/ai/azure-ai-agents/tsp-location.yaml @@ -1,9 +1,10 @@ directory: specification/ai-foundry/data-plane/Foundry/src/sdk-java-azure-ai-agents -commit: a7b469aa87033e7ee734b41a12846e0e28609904 +commit: aa03627ce05d6b3c64098103e6f32a720a50ec9f repo: Azure/azure-rest-api-specs additionalDirectories: - specification/ai-foundry/data-plane/Foundry/src/agents - specification/ai-foundry/data-plane/Foundry/src/agents-session-files + - specification/ai-foundry/data-plane/Foundry/src/agents-microsoft365 - specification/ai-foundry/data-plane/Foundry/src/agents-optimization - specification/ai-foundry/data-plane/Foundry/src/common - specification/ai-foundry/data-plane/Foundry/src/memory-stores @@ -13,3 +14,4 @@ additionalDirectories: - specification/ai-foundry/data-plane/Foundry/src/skills - specification/ai-foundry/data-plane/Foundry/src/toolboxes - specification/ai-foundry/data-plane/Foundry/src/tools + - specification/ai-foundry/data-plane/Foundry/src/voice-agents diff --git a/sdk/ai/azure-ai-projects/CHANGELOG.md b/sdk/ai/azure-ai-projects/CHANGELOG.md index 70d52e7977fb..c1802a3e4ecd 100644 --- a/sdk/ai/azure-ai-projects/CHANGELOG.md +++ b/sdk/ai/azure-ai-projects/CHANGELOG.md @@ -1,15 +1,26 @@ # Release History -## 2.5.0-beta.1 (Unreleased) +## 2.5.0 (Unreleased) ### Features Added +- Added a preview Agent Insights surface: `BetaAgentInsightMonitorsClient` / `BetaAgentInsightMonitorsAsyncClient`, obtained from `AIProjectClientBuilder.beta()`. The clients opt in to `Foundry-Features: AgentInsights=V1Preview` (new `FoundryFeaturesOptInKeys.AGENT_INSIGHTS_V1_PREVIEW`) and support: + - Managing agent insight monitors (`create`, `get`, `list`, `update`, `delete`, `reset`). + - Starting and tracking insight runs (`beginCreateRun`, `listRuns`, `getRun`, `cancelRun`). + - Reading and updating the insights a monitor produces (`listInsights`, `getInsight`, `updateInsight`), including optional expanded details via `getInsight(monitorId, insightId, includeDetails)`. + - New models: `AgentInsightMonitor` (plus `AgentInsightMonitorCreate` / `AgentInsightMonitorUpdate` / `AgentInsightMonitorListItem`), `AgentInsightRun` (plus `AgentInsightRunCreate` / `AgentInsightRunResult`), `AgentInsight` / `AgentInsightUpdate` / `AgentInsightDetails`, `AgentInsightsOverview`, `AgentInsightProposedFix`, and related enums and supporting types. +- Added optional dispatch authorization for routines: `RoutineAuthorization` and `RoutineDispatchIdentity` (`AGENT`, `CREATOR`) let you choose the identity used when dispatching a newly created routine. The value is ignored when updating an existing routine. + ### Breaking Changes +- `BetaRoutinesClient.createOrUpdateRoutine(String, String, Boolean, Map, RoutineAction)` and its `BetaRoutinesAsyncClient` counterpart were replaced by overloads that take an additional trailing `RoutineAuthorization authorization` parameter. Pass `null` to keep the previous behavior. + ### Bugs Fixed ### Other Changes +- Regenerated client from the updated TypeSpec specification. + ## 2.4.0 (2026-08-19) ### Features Added diff --git a/sdk/ai/azure-ai-projects/README.md b/sdk/ai/azure-ai-projects/README.md index 8644e93a64df..05726006004e 100644 --- a/sdk/ai/azure-ai-projects/README.md +++ b/sdk/ai/azure-ai-projects/README.md @@ -9,6 +9,7 @@ The AI Projects client library is part of the Azure AI Foundry SDK and provides * **Generate datasets** for model, agent, evaluator, and traces scenarios using the preview `BetaDatasetsClient`. * **Register and manage model weights** as Foundry `ModelVersion` resources using the preview `BetaModelsClient`. * **Create and dispatch routines** using the preview `BetaRoutinesClient`. +* **Monitor deployed agents for issues** and review the resulting insights using the preview `BetaAgentInsightMonitorsClient`. * **Create and manage skills** using the preview `BetaSkillsClient`. * **Create and enumerate Search Indexes** using the `Indexes` operations. @@ -41,7 +42,7 @@ Various documentation is available to help you get started com.azure azure-ai-projects - 2.4.0 + 2.5.0 ``` [//]: # ({x-version-update-end}) @@ -60,6 +61,8 @@ AIProjectClientBuilder builder = new AIProjectClientBuilder() ConnectionsClient connectionsClient = builder.buildConnectionsClient(); // Beta* clients automatically opt in to their preview service area. +BetaAgentInsightMonitorsClient agentInsightMonitorsClient + = builder.beta().buildBetaAgentInsightMonitorsClient(); BetaDatasetsClient dataGenerationJobsClient = builder.beta().buildBetaDatasetsClient(); DatasetsClient datasetsClient = builder.buildDatasetsClient(); DeploymentsClient deploymentsClient = builder.buildDeploymentsClient(); @@ -137,6 +140,7 @@ Build clients whose names start with `Beta` from `AIProjectClientBuilder.beta()` | Beta sub-client | Automatically populated `Foundry-Features` value | |---|---| +| `BetaAgentInsightMonitorsClient` | `AgentInsights=V1Preview` | | `BetaDatasetsClient` | `DataGenerationJobs=V1Preview` | | `BetaEvaluationTaxonomiesClient` | `Evaluations=V1Preview` | | `BetaEvaluatorsClient` | `Evaluations=V1Preview` | @@ -861,7 +865,7 @@ For details on contributing to this repository, see the [contributing guide](htt [product_documentation]: https://learn.microsoft.com/azure/ai-studio/ -[docs]: https://learn.microsoft.com/rest/api/aifoundry/aiproject/ +[docs]: https://aka.ms/azsdk/azure-ai-projects-v2/api-reference-v1 [jdk]: https://learn.microsoft.com/azure/developer/java/fundamentals/ [azure_subscription]: https://azure.microsoft.com/free/ [azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/identity/azure-identity diff --git a/sdk/ai/azure-ai-projects/checkstyle-suppressions.xml b/sdk/ai/azure-ai-projects/checkstyle-suppressions.xml index 482f51716bb4..910d1b9bd849 100644 --- a/sdk/ai/azure-ai-projects/checkstyle-suppressions.xml +++ b/sdk/ai/azure-ai-projects/checkstyle-suppressions.xml @@ -8,6 +8,8 @@ + + diff --git a/sdk/ai/azure-ai-projects/customizations/beta-annotations.csv b/sdk/ai/azure-ai-projects/customizations/beta-annotations.csv index 03555a98859b..4b2819566ce4 100644 --- a/sdk/ai/azure-ai-projects/customizations/beta-annotations.csv +++ b/sdk/ai/azure-ai-projects/customizations/beta-annotations.csv @@ -3,6 +3,32 @@ class;com.azure.ai.projects.models.AgentClusterInsightRequest;Preview API. Insig class;com.azure.ai.projects.models.AgentClusterInsightResult;Preview API. Insights=V1Preview; class;com.azure.ai.projects.models.AgentDataGenerationJobSource;Preview API. DataGenerationJobs=V1Preview; class;com.azure.ai.projects.models.AgentEvaluatorGenerationJobSource;Preview API. Evaluations=V1Preview; +class;com.azure.ai.projects.models.AgentInsight;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightDetails;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightEstimatedCost;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightHighlightedTrace;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightLinkedTrace;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightMonitor;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightMonitorCreate;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightMonitorListItem;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightMonitorUpdate;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightOverviewSource;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightPromptSurface;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightProposedFix;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightProposedFixChange;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightProposedFixKind;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightRecommendedAction;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightRun;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightRunCreate;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightRunResult;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightRunTrigger;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightSeverity;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightsOverview;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightsOverviewOverride;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightStatus;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightSuspension;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightTokenUsage;Preview API. AgentInsights=V1Preview; +class;com.azure.ai.projects.models.AgentInsightUpdate;Preview API. AgentInsights=V1Preview; class;com.azure.ai.projects.models.AgentTaxonomyInput;Preview API. Evaluations=V1Preview; class;com.azure.ai.projects.models.ArtifactProfile;Preview API. Models=V1Preview; class;com.azure.ai.projects.models.AttackStrategy;Preview API. RedTeams=V1Preview; @@ -110,6 +136,8 @@ class;com.azure.ai.projects.models.Routine;Preview API. Routines=V2Preview; class;com.azure.ai.projects.models.RoutineAction;Preview API. Routines=V2Preview; class;com.azure.ai.projects.models.RoutineActionType;Preview API. Routines=V2Preview; class;com.azure.ai.projects.models.RoutineAttemptSource;Preview API. Routines=V2Preview; +class;com.azure.ai.projects.models.RoutineAuthorization;Preview API. Routines=V2Preview; +class;com.azure.ai.projects.models.RoutineDispatchIdentity;Preview API. Routines=V2Preview; class;com.azure.ai.projects.models.RoutineDispatchPayload;Preview API. Routines=V2Preview; class;com.azure.ai.projects.models.RoutineDispatchPayloadType;Preview API. Routines=V2Preview; class;com.azure.ai.projects.models.RoutineRun;Preview API. Routines=V2Preview; diff --git a/sdk/ai/azure-ai-projects/pom.xml b/sdk/ai/azure-ai-projects/pom.xml index 9131f8346b7f..59e0a694eea7 100644 --- a/sdk/ai/azure-ai-projects/pom.xml +++ b/sdk/ai/azure-ai-projects/pom.xml @@ -14,7 +14,7 @@ Code generated by Microsoft (R) TypeSpec Code Generator. com.azure azure-ai-projects - 2.5.0-beta.1 + 2.5.0 jar Microsoft Azure SDK for Projects @@ -73,7 +73,7 @@ Code generated by Microsoft (R) TypeSpec Code Generator. com.azure azure-ai-agents - 2.5.0-beta.1 + 2.5.0 com.openai diff --git a/sdk/ai/azure-ai-projects/revapi.json b/sdk/ai/azure-ai-projects/revapi.json index 6067fc41f136..008bf6d6b4ca 100644 --- a/sdk/ai/azure-ai-projects/revapi.json +++ b/sdk/ai/azure-ai-projects/revapi.json @@ -4,6 +4,13 @@ "configuration": { "ignore": true, "differences": [ + { + "regex": true, + "code": "java\\.annotation\\.(added|attributeValueChanged|attributeAdded|attributeRemoved)", + "old": ".*com\\.azure\\.ai\\.projects\\..*", + "annotationType": "com\\.azure\\.ai\\.projects\\.implementation\\.utils\\.Beta", + "justification": "Adding or updating the preview @Beta annotation is metadata only and does not affect runtime behavior. Preview surface may still change between beta releases." + }, { "code": "java.method.removed", "old": "method com.azure.ai.projects.models.SystemDataV3 com.azure.ai.projects.models.ModelVersion::getSystemData()", @@ -64,6 +71,12 @@ "code": "java.class.removed", "old": "class com.azure.ai.projects.models.TaskGenerationDataGenerationJobOptions", "justification": "Breaking change in beta operation: TaskGenerationDataGenerationJobOptions was renamed to SimulationSeedDataGenerationJobOptions to align with the current DataGenerationJobs preview contract." + }, + { + "regex": true, + "code": "java\\.method\\.numberOfParametersChanged", + "old": "method .* com\\.azure\\.ai\\.projects\\.BetaRoutines(Async)?Client::createOrUpdateRoutine\\(.*\\)", + "justification": "Breaking change in beta operation: BetaRoutines(Async)Client createOrUpdateRoutine takes an additional optional 'authorization' parameter to align with the current Routines preview contract." } ] } 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..2fd7aefc6eaa 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, @@ -116,6 +118,9 @@ public final class AIProjectClientBuilder private static final String DATA_GENERATION_JOBS_PREVIEW_FEATURES = FoundryFeaturesOptInKeys.DATA_GENERATION_JOBS_V1_PREVIEW.toString(); + private static final String AGENT_INSIGHTS_PREVIEW_FEATURES + = FoundryFeaturesOptInKeys.AGENT_INSIGHTS_V1_PREVIEW.toString(); + private boolean allowPreview; @Generated @@ -755,6 +760,26 @@ private BetaDatasetsClient buildBetaDatasetsClient() { return new BetaDatasetsClient(buildInnerClient(DATA_GENERATION_JOBS_PREVIEW_FEATURES).getBetaDatasets()); } + /** + * Builds an instance of BetaAgentInsightMonitorsAsyncClient class. + * + * @return an instance of BetaAgentInsightMonitorsAsyncClient. + */ + private BetaAgentInsightMonitorsAsyncClient buildBetaAgentInsightMonitorsAsyncClient() { + return new BetaAgentInsightMonitorsAsyncClient( + buildInnerClient(AGENT_INSIGHTS_PREVIEW_FEATURES).getBetaAgentInsightMonitors()); + } + + /** + * Builds an instance of BetaAgentInsightMonitorsClient class. + * + * @return an instance of BetaAgentInsightMonitorsClient. + */ + private BetaAgentInsightMonitorsClient buildBetaAgentInsightMonitorsClient() { + return new BetaAgentInsightMonitorsClient( + buildInnerClient(AGENT_INSIGHTS_PREVIEW_FEATURES).getBetaAgentInsightMonitors()); + } + /** * Returns the sub-builder used to create beta clients for preview-only service areas. *

@@ -792,6 +817,7 @@ public BetaAIProjectClientBuilder beta() { BetaRoutinesAsyncClient.class, BetaSkillsAsyncClient.class, BetaDatasetsAsyncClient.class, + BetaAgentInsightMonitorsAsyncClient.class, BetaModelsClient.class, BetaRedTeamsClient.class, BetaEvaluationTaxonomiesClient.class, @@ -800,7 +826,8 @@ public BetaAIProjectClientBuilder beta() { BetaSchedulesClient.class, BetaRoutinesClient.class, BetaSkillsClient.class, - BetaDatasetsClient.class }) + BetaDatasetsClient.class, + BetaAgentInsightMonitorsClient.class }) public final class BetaAIProjectClientBuilder { /** @@ -1082,5 +1109,37 @@ public BetaSkillsClient buildBetaSkillsClient() { public BetaDatasetsClient buildBetaDatasetsClient() { return new BetaDatasetsClient(buildInnerClient(DATA_GENERATION_JOBS_PREVIEW_FEATURES).getBetaDatasets()); } + + /** + * Builds an asynchronous beta Agent Insight Monitors client for preview agent insights operations. + *

+ * The client is created using the endpoint, credential, pipeline, policies, and other configuration set on the + * enclosing {@link AIProjectClientBuilder}. Requests made by the client automatically include the + * {@code Foundry-Features} header required for agent insights preview operations, so + * {@link AIProjectClientBuilder#allowPreview(boolean)} does not need to be enabled. + * + * @return an instance of BetaAgentInsightMonitorsAsyncClient. + */ + @Beta + public BetaAgentInsightMonitorsAsyncClient buildBetaAgentInsightMonitorsAsyncClient() { + return new BetaAgentInsightMonitorsAsyncClient( + buildInnerClient(AGENT_INSIGHTS_PREVIEW_FEATURES).getBetaAgentInsightMonitors()); + } + + /** + * Builds a synchronous beta Agent Insight Monitors client for preview agent insights operations. + *

+ * The client is created using the endpoint, credential, pipeline, policies, and other configuration set on the + * enclosing {@link AIProjectClientBuilder}. Requests made by the client automatically include the + * {@code Foundry-Features} header required for agent insights preview operations, so + * {@link AIProjectClientBuilder#allowPreview(boolean)} does not need to be enabled. + * + * @return an instance of BetaAgentInsightMonitorsClient. + */ + @Beta + public BetaAgentInsightMonitorsClient buildBetaAgentInsightMonitorsClient() { + return new BetaAgentInsightMonitorsClient( + buildInnerClient(AGENT_INSIGHTS_PREVIEW_FEATURES).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..e9649f1be672 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsAsyncClient.java @@ -0,0 +1,1474 @@ +// 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.HttpHeaderName; +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 listAgentInsightMonitors(RequestOptions requestOptions) { + return this.serviceClient.listAgentInsightMonitorsAsync(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> createAgentInsightMonitorWithResponse(BinaryData monitor, + RequestOptions requestOptions) { + return this.serviceClient.createAgentInsightMonitorWithResponseAsync(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> getAgentInsightMonitorWithResponse(String monitorId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentInsightMonitorWithResponseAsync(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> deleteAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.deleteAgentInsightMonitorWithResponseAsync(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> updateAgentInsightMonitorWithResponse(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + return this.serviceClient.updateAgentInsightMonitorWithResponseAsync(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> resetAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.resetAgentInsightMonitorWithResponseAsync(monitorId, requestOptions); + } + + /** + * Start an Agent Insights run for a monitor. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 beginCreateAgentInsightRun(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return this.serviceClient.beginCreateAgentInsightRunAsync(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 listAgentInsightRuns(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listAgentInsightRunsAsync(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> getAgentInsightRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentInsightRunWithResponseAsync(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> cancelAgentInsightRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + return this.serviceClient.cancelAgentInsightRunWithResponseAsync(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 listAgentInsights(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listAgentInsightsAsync(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> getAgentInsightWithResponse(String monitorId, String insightId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentInsightWithResponseAsync(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> updateAgentInsightWithResponse(String monitorId, String insightId, + BinaryData update, RequestOptions requestOptions) { + return this.serviceClient.updateAgentInsightWithResponseAsync(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 listAgentInsightMonitors(String after, String before, Integer limit, + PageOrder order, String agentName) { + // Generated convenience method for listAgentInsightMonitors + 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 = listAgentInsightMonitors(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 listAgentInsightMonitors() { + // Generated convenience method for listAgentInsightMonitors + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listAgentInsightMonitors(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 createAgentInsightMonitor(AgentInsightMonitorCreate monitor) { + // Generated convenience method for createAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + return createAgentInsightMonitorWithResponse(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 getAgentInsightMonitor(String monitorId) { + // Generated convenience method for getAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentInsightMonitorWithResponse(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 deleteAgentInsightMonitor(String monitorId) { + // Generated convenience method for deleteAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + return deleteAgentInsightMonitorWithResponse(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 updateAgentInsightMonitor(String monitorId, AgentInsightMonitorUpdate monitor) { + // Generated convenience method for updateAgentInsightMonitorWithResponse + 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 updateAgentInsightMonitorWithResponse(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 resetAgentInsightMonitor(String monitorId) { + // Generated convenience method for resetAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + return resetAgentInsightMonitorWithResponse(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. + * @param operationId Client-generated unique ID for idempotent retries. When absent, the server creates the job + * unconditionally. + * @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 beginCreateAgentInsightRun(String monitorId, + AgentInsightRunCreate run, String operationId) { + // Generated convenience method for beginCreateAgentInsightRunWithModel + RequestOptions requestOptions = new RequestOptions(); + if (operationId != null) { + requestOptions.setHeader(HttpHeaderName.fromString("Operation-Id"), operationId); + } + return serviceClient.beginCreateAgentInsightRunWithModelAsync(monitorId, BinaryData.fromObject(run), + requestOptions); + } + + /** + * 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 beginCreateAgentInsightRun(String monitorId, + AgentInsightRunCreate run) { + // Generated convenience method for beginCreateAgentInsightRunWithModel + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.beginCreateAgentInsightRunWithModelAsync(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 listAgentInsightRuns(String monitorId, String after, String before, Integer limit, + PageOrder order, JobStatus status, AgentInsightRunTrigger trigger) { + // Generated convenience method for listAgentInsightRuns + 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 = listAgentInsightRuns(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 listAgentInsightRuns(String monitorId) { + // Generated convenience method for listAgentInsightRuns + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listAgentInsightRuns(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 getAgentInsightRun(String monitorId, String runId) { + // Generated convenience method for getAgentInsightRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentInsightRunWithResponse(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 cancelAgentInsightRun(String monitorId, String runId) { + // Generated convenience method for cancelAgentInsightRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return cancelAgentInsightRunWithResponse(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 listAgentInsights(String monitorId, String after, String before, Integer limit, + PageOrder order, String category, AgentInsightSeverity severity, AgentInsightStatus status, + Boolean includeDetails) { + // Generated convenience method for listAgentInsights + 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 = listAgentInsights(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 listAgentInsights(String monitorId) { + // Generated convenience method for listAgentInsights + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listAgentInsights(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 getAgentInsight(String monitorId, String insightId, Boolean includeDetails) { + // Generated convenience method for getAgentInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (includeDetails != null) { + requestOptions.addQueryParam("include_details", String.valueOf(includeDetails), false); + } + return getAgentInsightWithResponse(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 getAgentInsight(String monitorId, String insightId) { + // Generated convenience method for getAgentInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentInsightWithResponse(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 updateAgentInsight(String monitorId, String insightId, AgentInsightUpdate update) { + // Generated convenience method for updateAgentInsightWithResponse + 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 updateAgentInsightWithResponse(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..a9eae809faa5 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaAgentInsightMonitorsClient.java @@ -0,0 +1,1389 @@ +// 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.HttpHeaderName; +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 listAgentInsightMonitors(RequestOptions requestOptions) { + return this.serviceClient.listAgentInsightMonitors(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 createAgentInsightMonitorWithResponse(BinaryData monitor, + RequestOptions requestOptions) { + return this.serviceClient.createAgentInsightMonitorWithResponse(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 getAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.getAgentInsightMonitorWithResponse(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 deleteAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.deleteAgentInsightMonitorWithResponse(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 updateAgentInsightMonitorWithResponse(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + return this.serviceClient.updateAgentInsightMonitorWithResponse(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 resetAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.resetAgentInsightMonitorWithResponse(monitorId, requestOptions); + } + + /** + * Start an Agent Insights run for a monitor. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 beginCreateAgentInsightRun(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return this.serviceClient.beginCreateAgentInsightRun(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 listAgentInsightRuns(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listAgentInsightRuns(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 getAgentInsightRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentInsightRunWithResponse(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 cancelAgentInsightRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + return this.serviceClient.cancelAgentInsightRunWithResponse(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 listAgentInsights(String monitorId, RequestOptions requestOptions) { + return this.serviceClient.listAgentInsights(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 getAgentInsightWithResponse(String monitorId, String insightId, + RequestOptions requestOptions) { + return this.serviceClient.getAgentInsightWithResponse(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 updateAgentInsightWithResponse(String monitorId, String insightId, BinaryData update, + RequestOptions requestOptions) { + return this.serviceClient.updateAgentInsightWithResponse(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 listAgentInsightMonitors(String after, String before, + Integer limit, PageOrder order, String agentName) { + // Generated convenience method for listAgentInsightMonitors + 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.listAgentInsightMonitors(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 listAgentInsightMonitors() { + // Generated convenience method for listAgentInsightMonitors + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentInsightMonitors(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 createAgentInsightMonitor(AgentInsightMonitorCreate monitor) { + // Generated convenience method for createAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + return createAgentInsightMonitorWithResponse(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 getAgentInsightMonitor(String monitorId) { + // Generated convenience method for getAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentInsightMonitorWithResponse(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 deleteAgentInsightMonitor(String monitorId) { + // Generated convenience method for deleteAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + deleteAgentInsightMonitorWithResponse(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 updateAgentInsightMonitor(String monitorId, AgentInsightMonitorUpdate monitor) { + // Generated convenience method for updateAgentInsightMonitorWithResponse + 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 updateAgentInsightMonitorWithResponse(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 resetAgentInsightMonitor(String monitorId) { + // Generated convenience method for resetAgentInsightMonitorWithResponse + RequestOptions requestOptions = new RequestOptions(); + resetAgentInsightMonitorWithResponse(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. + * @param operationId Client-generated unique ID for idempotent retries. When absent, the server creates the job + * unconditionally. + * @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 beginCreateAgentInsightRun(String monitorId, + AgentInsightRunCreate run, String operationId) { + // Generated convenience method for beginCreateAgentInsightRunWithModel + RequestOptions requestOptions = new RequestOptions(); + if (operationId != null) { + requestOptions.setHeader(HttpHeaderName.fromString("Operation-Id"), operationId); + } + return serviceClient.beginCreateAgentInsightRunWithModel(monitorId, BinaryData.fromObject(run), requestOptions); + } + + /** + * 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 beginCreateAgentInsightRun(String monitorId, + AgentInsightRunCreate run) { + // Generated convenience method for beginCreateAgentInsightRunWithModel + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.beginCreateAgentInsightRunWithModel(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 listAgentInsightRuns(String monitorId, String after, String before, + Integer limit, PageOrder order, JobStatus status, AgentInsightRunTrigger trigger) { + // Generated convenience method for listAgentInsightRuns + 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.listAgentInsightRuns(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 listAgentInsightRuns(String monitorId) { + // Generated convenience method for listAgentInsightRuns + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentInsightRuns(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 getAgentInsightRun(String monitorId, String runId) { + // Generated convenience method for getAgentInsightRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentInsightRunWithResponse(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 cancelAgentInsightRun(String monitorId, String runId) { + // Generated convenience method for cancelAgentInsightRunWithResponse + RequestOptions requestOptions = new RequestOptions(); + return cancelAgentInsightRunWithResponse(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 listAgentInsights(String monitorId, String after, String before, Integer limit, + PageOrder order, String category, AgentInsightSeverity severity, AgentInsightStatus status, + Boolean includeDetails) { + // Generated convenience method for listAgentInsights + 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.listAgentInsights(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 listAgentInsights(String monitorId) { + // Generated convenience method for listAgentInsights + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listAgentInsights(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 getAgentInsight(String monitorId, String insightId, Boolean includeDetails) { + // Generated convenience method for getAgentInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + if (includeDetails != null) { + requestOptions.addQueryParam("include_details", String.valueOf(includeDetails), false); + } + return getAgentInsightWithResponse(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 getAgentInsight(String monitorId, String insightId) { + // Generated convenience method for getAgentInsightWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentInsightWithResponse(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 updateAgentInsight(String monitorId, String insightId, AgentInsightUpdate update) { + // Generated convenience method for updateAgentInsightWithResponse + 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 updateAgentInsightWithResponse(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..e3d903dcd03b 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; @@ -73,6 +74,9 @@ public final class BetaRoutinesAsyncClient { * action (Optional): { * type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required) * } + * authorization (Optional): { + * identity: String(agent/creator) (Optional) + * } * } * } *
@@ -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..a5fa02c2ba27 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; @@ -67,6 +68,9 @@ public final class BetaRoutinesClient { * action (Optional): { * type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required) * } + * authorization (Optional): { + * identity: String(agent/creator) (Optional) + * } * } * } * @@ -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/BetaSkillsAsyncClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsAsyncClient.java index a9c56c3f5234..8d12c2206e14 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsAsyncClient.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsAsyncClient.java @@ -272,43 +272,6 @@ public Mono> createSkillVersionWithResponse(String name, Bi return this.serviceClient.createSkillVersionWithResponseAsync(name, createSkillVersionRequest, requestOptions); } - /** - * Create a skill version from uploaded files - * - * Creates a new version of a skill from uploaded files via multipart form data. - *

Response Body Schema

- * - *
-     * {@code
-     * {
-     *     id: String (Required)
-     *     skill_id: String (Required)
-     *     name: String (Required)
-     *     version: String (Required)
-     *     description: String (Required)
-     *     created_at: long (Required)
-     * }
-     * }
-     * 
- * - * @param name The name of the skill. - * @param content The multipart request content. - * @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 specific version of a skill along with {@link Response} on successful completion of {@link Mono}. - */ - @Generated - @ServiceMethod(returns = ReturnType.SINGLE) - Mono> createSkillVersionFromFilesWithResponse(String name, BinaryData content, - RequestOptions requestOptions) { - // Operation 'createSkillVersionFromFiles' is of content-type 'multipart/form-data'. Protocol API is not usable - // and hence not generated. - return this.serviceClient.createSkillVersionFromFilesWithResponseAsync(name, content, requestOptions); - } - /** * List skill versions * @@ -740,9 +703,9 @@ public Mono createSkillVersion(String name) { @Generated @ServiceMethod(returns = ReturnType.SINGLE) public Mono createSkillVersionFromFiles(String name, CreateSkillVersionFromFilesBody content) { - // Generated convenience method for createSkillVersionFromFilesWithResponse + // Generated convenience method for createSkillVersionFromFilesWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return createSkillVersionFromFilesWithResponse(name, + return createSkillVersionFromFilesWithResponseInternal(name, new MultipartFormDataHelper(requestOptions) .serializeFileFields("files", content.getFiles().stream().map(SkillFileDetails::getContent).collect(Collectors.toList()), @@ -914,4 +877,41 @@ public Mono getSkillVersionContent(String name, String version) { RequestOptions requestOptions = new RequestOptions(); return getSkillVersionContentWithResponse(name, version, requestOptions).flatMap(FluxUtil::toMono); } + + /** + * Create a skill version from uploaded files + * + * Creates a new version of a skill from uploaded files via multipart form data. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     skill_id: String (Required)
+     *     name: String (Required)
+     *     version: String (Required)
+     *     description: String (Required)
+     *     created_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param name The name of the skill. + * @param content The multipart request content. + * @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 specific version of a skill along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + Mono> createSkillVersionFromFilesWithResponseInternal(String name, BinaryData content, + RequestOptions requestOptions) { + // Operation 'createSkillVersionFromFiles' is of content-type 'multipart/form-data'. Protocol API is not usable + // and hence not generated. + return this.serviceClient.createSkillVersionFromFilesWithResponseInternalAsync(name, content, requestOptions); + } } diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsClient.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsClient.java index 7cde4e39d35b..f722c8a91713 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsClient.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/BetaSkillsClient.java @@ -312,43 +312,6 @@ public Response createSkillVersionWithResponse(String name, BinaryDa return this.serviceClient.createSkillVersionWithResponse(name, createSkillVersionRequest, requestOptions); } - /** - * Create a skill version from uploaded files - * - * Creates a new version of a skill from uploaded files via multipart form data. - *

Response Body Schema

- * - *
-     * {@code
-     * {
-     *     id: String (Required)
-     *     skill_id: String (Required)
-     *     name: String (Required)
-     *     version: String (Required)
-     *     description: String (Required)
-     *     created_at: long (Required)
-     * }
-     * }
-     * 
- * - * @param name The name of the skill. - * @param content The multipart request content. - * @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 specific version of a skill along with {@link Response}. - */ - @Generated - @ServiceMethod(returns = ReturnType.SINGLE) - Response createSkillVersionFromFilesWithResponse(String name, BinaryData content, - RequestOptions requestOptions) { - // Operation 'createSkillVersionFromFiles' is of content-type 'multipart/form-data'. Protocol API is not usable - // and hence not generated. - return this.serviceClient.createSkillVersionFromFilesWithResponse(name, content, requestOptions); - } - /** * List skill versions * @@ -709,9 +672,9 @@ public SkillVersion createSkillVersion(String name) { @Generated @ServiceMethod(returns = ReturnType.SINGLE) public SkillVersion createSkillVersionFromFiles(String name, CreateSkillVersionFromFilesBody content) { - // Generated convenience method for createSkillVersionFromFilesWithResponse + // Generated convenience method for createSkillVersionFromFilesWithResponseInternal RequestOptions requestOptions = new RequestOptions(); - return createSkillVersionFromFilesWithResponse(name, + return createSkillVersionFromFilesWithResponseInternal(name, new MultipartFormDataHelper(requestOptions) .serializeFileFields("files", content.getFiles().stream().map(SkillFileDetails::getContent).collect(Collectors.toList()), @@ -859,4 +822,41 @@ public BinaryData getSkillVersionContent(String name, String version) { RequestOptions requestOptions = new RequestOptions(); return getSkillVersionContentWithResponse(name, version, requestOptions).getValue(); } + + /** + * Create a skill version from uploaded files + * + * Creates a new version of a skill from uploaded files via multipart form data. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     skill_id: String (Required)
+     *     name: String (Required)
+     *     version: String (Required)
+     *     description: String (Required)
+     *     created_at: long (Required)
+     * }
+     * }
+     * 
+ * + * @param name The name of the skill. + * @param content The multipart request content. + * @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 specific version of a skill along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + Response createSkillVersionFromFilesWithResponseInternal(String name, BinaryData content, + RequestOptions requestOptions) { + // Operation 'createSkillVersionFromFiles' is of content-type 'multipart/form-data'. Protocol API is not usable + // and hence not generated. + return this.serviceClient.createSkillVersionFromFilesWithResponseInternal(name, content, requestOptions); + } } 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..833a0bd8f3b7 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 @@ -80,6 +80,20 @@ 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. */ @@ -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..525713ad66fb --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaAgentInsightMonitorsImpl.java @@ -0,0 +1,3001 @@ +// 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> listAgentInsightMonitors(@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 listAgentInsightMonitorsSync(@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> createAgentInsightMonitor(@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 createAgentInsightMonitorSync(@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> getAgentInsightMonitor(@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 getAgentInsightMonitorSync(@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> deleteAgentInsightMonitor(@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 deleteAgentInsightMonitorSync(@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> updateAgentInsightMonitor(@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 updateAgentInsightMonitorSync(@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> resetAgentInsightMonitor(@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 resetAgentInsightMonitorSync(@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> createAgentInsightRun(@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 createAgentInsightRunSync(@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> listAgentInsightRuns(@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 listAgentInsightRunsSync(@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> getAgentInsightRun(@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 getAgentInsightRunSync(@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> cancelAgentInsightRun(@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 cancelAgentInsightRunSync(@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> listAgentInsights(@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 listAgentInsightsSync(@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> getAgentInsight(@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 getAgentInsightSync(@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> updateAgentInsight(@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 updateAgentInsightSync(@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> listAgentInsightMonitorsSinglePageAsync(RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentInsightMonitors(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 listAgentInsightMonitorsAsync(RequestOptions requestOptions) { + return new PagedFlux<>(() -> listAgentInsightMonitorsSinglePageAsync(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 listAgentInsightMonitorsSinglePage(RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listAgentInsightMonitorsSync(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 listAgentInsightMonitors(RequestOptions requestOptions) { + return new PagedIterable<>(() -> listAgentInsightMonitorsSinglePage(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> createAgentInsightMonitorWithResponseAsync(BinaryData monitor, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.createAgentInsightMonitor(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 createAgentInsightMonitorWithResponse(BinaryData monitor, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.createAgentInsightMonitorSync(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> getAgentInsightMonitorWithResponseAsync(String monitorId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getAgentInsightMonitor(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 getAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentInsightMonitorSync(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> deleteAgentInsightMonitorWithResponseAsync(String monitorId, + RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.deleteAgentInsightMonitor(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 deleteAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return service.deleteAgentInsightMonitorSync(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> updateAgentInsightMonitorWithResponseAsync(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.updateAgentInsightMonitor(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 updateAgentInsightMonitorWithResponse(String monitorId, BinaryData monitor, + RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return service.updateAgentInsightMonitorSync(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> resetAgentInsightMonitorWithResponseAsync(String monitorId, + RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.resetAgentInsightMonitor(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 resetAgentInsightMonitorWithResponse(String monitorId, RequestOptions requestOptions) { + return service.resetAgentInsightMonitorSync(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), requestOptions, Context.NONE); + } + + /** + * Start an Agent Insights run for a monitor. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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> createAgentInsightRunWithResponseAsync(String monitorId, BinaryData run, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.createAgentInsightRun(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), contentType, accept, run, requestOptions, context)); + } + + /** + * Start an Agent Insights run for a monitor. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 createAgentInsightRunWithResponse(String monitorId, BinaryData run, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.createAgentInsightRunSync(this.client.getEndpoint(), monitorId, + this.client.getServiceVersion().getVersion(), contentType, accept, run, requestOptions, Context.NONE); + } + + /** + * Start an Agent Insights run for a monitor. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 beginCreateAgentInsightRunWithModelAsync(String monitorId, + BinaryData run, RequestOptions requestOptions) { + return PollerFlux.create(Duration.ofSeconds(1), + () -> this.createAgentInsightRunWithResponseAsync(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. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 beginCreateAgentInsightRunWithModel(String monitorId, + BinaryData run, RequestOptions requestOptions) { + return SyncPoller.createPoller(Duration.ofSeconds(1), + () -> this.createAgentInsightRunWithResponse(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. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 beginCreateAgentInsightRunAsync(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return PollerFlux.create(Duration.ofSeconds(1), + () -> this.createAgentInsightRunWithResponseAsync(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. + *

Header Parameters

+ * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
Operation-IdStringNoClient-generated unique ID for idempotent retries. When + * absent, the server creates the job unconditionally.
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

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 beginCreateAgentInsightRun(String monitorId, BinaryData run, + RequestOptions requestOptions) { + return SyncPoller.createPoller(Duration.ofSeconds(1), + () -> this.createAgentInsightRunWithResponse(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> listAgentInsightRunsSinglePageAsync(String monitorId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentInsightRuns(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 listAgentInsightRunsAsync(String monitorId, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listAgentInsightRunsSinglePageAsync(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 listAgentInsightRunsSinglePage(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listAgentInsightRunsSync(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 listAgentInsightRuns(String monitorId, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listAgentInsightRunsSinglePage(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> getAgentInsightRunWithResponseAsync(String monitorId, String runId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getAgentInsightRun(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 getAgentInsightRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentInsightRunSync(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> cancelAgentInsightRunWithResponseAsync(String monitorId, String runId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.cancelAgentInsightRun(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 cancelAgentInsightRunWithResponse(String monitorId, String runId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.cancelAgentInsightRunSync(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> listAgentInsightsSinglePageAsync(String monitorId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listAgentInsights(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 listAgentInsightsAsync(String monitorId, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listAgentInsightsSinglePageAsync(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 listAgentInsightsSinglePage(String monitorId, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listAgentInsightsSync(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 listAgentInsights(String monitorId, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listAgentInsightsSinglePage(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> getAgentInsightWithResponseAsync(String monitorId, String insightId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getAgentInsight(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 getAgentInsightWithResponse(String monitorId, String insightId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentInsightSync(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> updateAgentInsightWithResponseAsync(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.updateAgentInsight(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 updateAgentInsightWithResponse(String monitorId, String insightId, BinaryData update, + RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return service.updateAgentInsightSync(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..1fca8ba57088 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 @@ -308,6 +308,9 @@ 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) + * } * } * } * @@ -373,6 +376,9 @@ public Mono> createOrUpdateRoutineWithResponseAsync(String * action (Optional): { * type: String(invoke_agent_responses_api/invoke_agent_invocations_api) (Required) * } + * authorization (Optional): { + * identity: String(agent/creator) (Optional) + * } * } * } * diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaSkillsImpl.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaSkillsImpl.java index 42517001b8bc..9520356c3571 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaSkillsImpl.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/BetaSkillsImpl.java @@ -903,8 +903,8 @@ public Response createSkillVersionWithResponse(String name, BinaryDa * @return a specific version of a skill along with {@link Response} on successful completion of {@link Mono}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Mono> createSkillVersionFromFilesWithResponseAsync(String name, BinaryData content, - RequestOptions requestOptions) { + public Mono> createSkillVersionFromFilesWithResponseInternalAsync(String name, + BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; return FluxUtil.withContext(context -> service.createSkillVersionFromFiles(this.client.getEndpoint(), name, @@ -940,7 +940,7 @@ public Mono> createSkillVersionFromFilesWithResponseAsync(S * @return a specific version of a skill along with {@link Response}. */ @ServiceMethod(returns = ReturnType.SINGLE) - public Response createSkillVersionFromFilesWithResponse(String name, BinaryData content, + public Response createSkillVersionFromFilesWithResponseInternal(String name, BinaryData content, RequestOptions requestOptions) { final String contentType = "multipart/form-data"; final String accept = "application/json"; 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..00837d91158a 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. diff --git a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/utils/Beta.java b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/utils/Beta.java index 1c5816876de1..80b2aa273de9 100644 --- a/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/utils/Beta.java +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/implementation/utils/Beta.java @@ -21,7 +21,7 @@ * version. */ @Documented -@Retention(RetentionPolicy.SOURCE) +@Retention(RetentionPolicy.CLASS) @Target({ TYPE, METHOD, PARAMETER, CONSTRUCTOR, FIELD }) @Inherited public @interface Beta { 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..00b11c51a85d --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..af285e5900b3 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightDetails.java @@ -0,0 +1,131 @@ +// 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.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..8704046f2089 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightEstimatedCost.java @@ -0,0 +1,102 @@ +// 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.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..86b7c20c6180 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..d43166966b0c --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..72d2b161e23a --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..4624948bb177 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..903cfc7c2ede --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..32fccc2e8121 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightMonitorUpdate.java @@ -0,0 +1,275 @@ +// 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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..29cecd608de1 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightOverviewSource.java @@ -0,0 +1,59 @@ +// 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.utils.Beta; +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * Identifies where an Agent Insights overview came from. + */ +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..313b36892e9f --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightPromptSurface.java @@ -0,0 +1,59 @@ +// 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.utils.Beta; +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The Prompt surface changed by a proposed fix. + */ +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..edd28d00a33d --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..235ff00ddd80 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..528a7c036c74 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightProposedFixKind.java @@ -0,0 +1,65 @@ +// 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.utils.Beta; +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. + */ +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..bd65439a446e --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRecommendedAction.java @@ -0,0 +1,84 @@ +// 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.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..56b54b0d7b21 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..b0356f9729c3 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..5a2e721fd2ad --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunResult.java @@ -0,0 +1,196 @@ +// 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.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..6f59d3898174 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightRunTrigger.java @@ -0,0 +1,59 @@ +// 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.utils.Beta; +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The trigger that started an agent insight run. + */ +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..f746a31aeefa --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightSeverity.java @@ -0,0 +1,65 @@ +// 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.utils.Beta; +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The severity of an agent insight. + */ +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..6315ef08ce6b --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightStatus.java @@ -0,0 +1,65 @@ +// 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.utils.Beta; +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The lifecycle status of an agent insight. + */ +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..7fd8255fe803 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..a8f7a2f1ab51 --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..3f42d73cc46e --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightUpdate.java @@ -0,0 +1,144 @@ +// 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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..f3b0d429a6d0 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverview.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.projects.models; + +import com.azure.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..1f629c47f6ca --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/AgentInsightsOverviewOverride.java @@ -0,0 +1,147 @@ +// 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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. AgentInsights=V1Preview") +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..575f4443509b --- /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.ai.projects.implementation.utils.Beta; +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 +@Beta(warningText = "Preview API. Routines=V2Preview") +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..2570a86e2786 --- /dev/null +++ b/sdk/ai/azure-ai-projects/src/main/java/com/azure/ai/projects/models/RoutineDispatchIdentity.java @@ -0,0 +1,59 @@ +// 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.utils.Beta; +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The supported identities for routine dispatch authorization. + */ +@Beta(warningText = "Preview API. Routines=V2Preview") +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..943babeb669d 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":"94b4a8453bc8","crossLanguageDefinitions":{"com.azure.ai.projects.AIProjectClientBuilder":"Azure.AI.Projects","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient":"Azure.AI.Projects.Beta.AgentInsightMonitors","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.beginCreateAgentInsightRun":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.beginCreateAgentInsightRunWithModel":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.cancelAgentInsightRun":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.cancelAgentInsightRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.createAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.createAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.deleteAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.deleteAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getAgentInsight":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getAgentInsightRun":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getAgentInsightRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.getAgentInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.listAgentInsightMonitors":"Azure.AI.Projects.AgentInsightMonitors.list","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.listAgentInsightRuns":"Azure.AI.Projects.AgentInsightMonitors.listRuns","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.listAgentInsights":"Azure.AI.Projects.AgentInsightMonitors.listInsights","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.resetAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.resetAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateAgentInsight":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsAsyncClient.updateAgentInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient":"Azure.AI.Projects.Beta.AgentInsightMonitors","com.azure.ai.projects.BetaAgentInsightMonitorsClient.beginCreateAgentInsightRun":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.beginCreateAgentInsightRunWithModel":"Azure.AI.Projects.AgentInsightMonitors.createRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.cancelAgentInsightRun":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.cancelAgentInsightRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.cancelRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.createAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsClient.createAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.create","com.azure.ai.projects.BetaAgentInsightMonitorsClient.deleteAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsClient.deleteAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.delete","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getAgentInsight":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.get","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getAgentInsightRun":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getAgentInsightRunWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getRun","com.azure.ai.projects.BetaAgentInsightMonitorsClient.getAgentInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.getInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.listAgentInsightMonitors":"Azure.AI.Projects.AgentInsightMonitors.list","com.azure.ai.projects.BetaAgentInsightMonitorsClient.listAgentInsightRuns":"Azure.AI.Projects.AgentInsightMonitors.listRuns","com.azure.ai.projects.BetaAgentInsightMonitorsClient.listAgentInsights":"Azure.AI.Projects.AgentInsightMonitors.listInsights","com.azure.ai.projects.BetaAgentInsightMonitorsClient.resetAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsClient.resetAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.reset","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateAgentInsight":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateAgentInsightMonitor":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateAgentInsightMonitorWithResponse":"Azure.AI.Projects.AgentInsightMonitors.update","com.azure.ai.projects.BetaAgentInsightMonitorsClient.updateAgentInsightWithResponse":"Azure.AI.Projects.AgentInsightMonitors.updateInsight","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.createSkillVersionFromFilesWithResponseInternal":"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.createSkillVersionFromFilesWithResponseInternal":"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/ReadmeSamples.java b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/ReadmeSamples.java index a27d957dcace..019183f70c67 100644 --- a/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/ReadmeSamples.java +++ b/sdk/ai/azure-ai-projects/src/samples/java/com/azure/ai/projects/ReadmeSamples.java @@ -28,6 +28,8 @@ public void readmeSamples() { ConnectionsClient connectionsClient = builder.buildConnectionsClient(); // Beta* clients automatically opt in to their preview service area. + BetaAgentInsightMonitorsClient agentInsightMonitorsClient + = builder.beta().buildBetaAgentInsightMonitorsClient(); BetaDatasetsClient dataGenerationJobsClient = builder.beta().buildBetaDatasetsClient(); DatasetsClient datasetsClient = builder.buildDatasetsClient(); DeploymentsClient deploymentsClient = builder.buildDeploymentsClient(); 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..a4490e31ea4f 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 @@ -51,7 +51,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, null)) .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..9e08c4ceed6c 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 @@ -52,7 +52,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, null)) .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..ebf19657857b 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 @@ -61,7 +61,7 @@ public static void main(String[] args) { 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, null); 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..70d28b11b5de 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 @@ -58,7 +58,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, null); 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..f18e13a61472 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 @@ -48,7 +48,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, null)) .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..2b86c39bc832 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 @@ -56,7 +56,7 @@ public static void main(String[] args) { 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, null); 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..6996dc50ca08 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 @@ -52,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 timer-trigger sample.", true, triggers, action)) + "Routine used by the timer-trigger sample.", true, triggers, action, null)) .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..491c15a080dd 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 @@ -61,7 +61,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, null); 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 diff --git a/sdk/ai/azure-ai-projects/src/test/java/com/azure/ai/projects/FoundryFeaturesHeaderVerificationTest.java b/sdk/ai/azure-ai-projects/src/test/java/com/azure/ai/projects/FoundryFeaturesHeaderVerificationTest.java index a20ec87ae527..f63ef430fb09 100644 --- a/sdk/ai/azure-ai-projects/src/test/java/com/azure/ai/projects/FoundryFeaturesHeaderVerificationTest.java +++ b/sdk/ai/azure-ai-projects/src/test/java/com/azure/ai/projects/FoundryFeaturesHeaderVerificationTest.java @@ -110,6 +110,11 @@ public void betaClientsAddAreaSpecificHeadersByDefault() { builder.beta().buildBetaDatasetsClient().getGenerationJobWithResponse("job", new RequestOptions()); assertEquals("DataGenerationJobs=V1Preview", foundryFeatures(httpClient)); + + builder.beta() + .buildBetaAgentInsightMonitorsClient() + .getAgentInsightMonitorWithResponse("monitor", new RequestOptions()); + assertEquals("AgentInsights=V1Preview", foundryFeatures(httpClient)); } @Test diff --git a/sdk/ai/azure-ai-projects/tsp-location.yaml.hide b/sdk/ai/azure-ai-projects/tsp-location.yaml similarity index 92% rename from sdk/ai/azure-ai-projects/tsp-location.yaml.hide rename to sdk/ai/azure-ai-projects/tsp-location.yaml index dcdc5f9218b8..71ae9a185e9e 100644 --- a/sdk/ai/azure-ai-projects/tsp-location.yaml.hide +++ b/sdk/ai/azure-ai-projects/tsp-location.yaml @@ -1,8 +1,9 @@ directory: specification/ai-foundry/data-plane/Foundry/src/sdk-java-azure-ai-projects -commit: c052e38e5c61643699cfa44b446ee5f3c957c632 +commit: b56cd0810cc0a2b5615315ff35c9e2ad8f9dec6e repo: Azure/azure-rest-api-specs additionalDirectories: - specification/ai-foundry/data-plane/Foundry/src/sdk-common + - specification/ai-foundry/data-plane/Foundry/src/agent-insights - specification/ai-foundry/data-plane/Foundry/src/agents-session-files - specification/ai-foundry/data-plane/Foundry/src/common - specification/ai-foundry/data-plane/Foundry/src/connections diff --git a/sdk/ai/cspell.yml b/sdk/ai/cspell.yml index 8c7162df88f0..0a86c3f508fa 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"