From 82554c86f48481cfada3f94c30e04c255df23ba4 Mon Sep 17 00:00:00 2001 From: Mike Guo Date: Wed, 2 Sep 2026 14:10:09 +0800 Subject: [PATCH] Regenerate Azure AI SDK batch 2 Co-Authored-By: Claude --- ...AgentEndpointConversationsAsyncClient.java | 185 ++ .../AgentEndpointConversationsClient.java | 182 ++ .../azure/ai/agents/AgentsAsyncClient.java | 1117 ++++++++++ .../com/azure/ai/agents/AgentsClient.java | 1076 ++++++++++ .../azure/ai/agents/AgentsClientBuilder.java | 22 + .../BetaVoiceAgentWebSocketAsyncClient.java | 50 +- .../agents/BetaVoiceAgentWebSocketClient.java | 50 +- .../AgentEndpointConversationsImpl.java | 281 +++ .../implementation/AgentsClientImpl.java | 15 + .../ai/agents/implementation/AgentsImpl.java | 1893 +++++++++++++++++ .../BetaVoiceAgentWebSocketsImpl.java | 40 +- .../implementation/JsonMergePatchHelper.java | 18 + ...eplaceTelephonyTransferTargetsRequest.java | 89 + .../models/TransferTelephonyCallRequest.java | 83 + .../PSTNTelephonyTransferDestination.java | 100 + .../SipTelephonyTransferDestination.java | 100 + ...honeExtensionTelephonyBindingListItem.java | 256 +++ .../TeamsTelephonyTransferDestination.java | 100 + .../agents/models/TelephonyBindingStatus.java | 57 + .../models/TelephonyCallDurationBasis.java | 57 + .../models/TelephonyCallLifecycleEvent.java | 322 +++ .../TelephonyCallLifecycleEventName.java | 114 + .../TelephonyCallLifecycleEventOutcome.java | 81 + .../TelephonyCallLifecycleEventSource.java | 69 + .../ai/agents/models/TelephonyCallPhase.java | 117 + .../ai/agents/models/TelephonyCallRecord.java | 537 +++++ .../ai/agents/models/TelephonyCallStatus.java | 63 + .../agents/models/TelephonyCallSummary.java | 447 ++++ .../models/TelephonyCallTimestampSource.java | 63 + .../ai/agents/models/TelephonyCallTiming.java | 322 +++ .../ai/agents/models/TelephonyCallTrace.java | 169 ++ .../agents/models/TelephonyCallTraceMode.java | 58 + .../models/TelephonyCallTraceStatus.java | 81 + .../ai/agents/models/TelephonyProvider.java | 58 + .../models/TelephonyTransferTarget.java | 130 ++ .../models/TelephonyTransferTargets.java | 87 + .../TwilioTelephonyBindingListItem.java | 233 ++ .../models/UpdateTelephonyBindingRequest.java | 272 +++ .../agents/models/VoiceAgentDefinition.java | 159 +- .../ai/agents/models/VoiceAgentSubAgent.java | 221 ++ .../models/VoiceAgentSubAgentConfig.java | 85 + .../VoiceAgentSubagentResponsePolicy.java | 308 +++ .../agents/models/VoiceAgentTargetAgent.java | 176 ++ .../ai/agents/models/VoiceAgentTransport.java | 57 + .../VoiceGeneratedItemAudioResponse.java | 291 +++ .../ai/agents/models/VoiceModelType.java | 6 + .../META-INF/azure-ai-agents_metadata.json | 2 +- .../agents/voice/VoiceAgentSampleUtils.java | 3 +- .../voice/VoiceAgentWithToolsSample.java | 14 +- .../azure/ai/agents/VoiceAgentsMockTests.java | 3 +- ...oiceAgentDefinitionSerializationTests.java | 4 +- sdk/ai/azure-ai-agents/tsp-location.yaml | 26 + sdk/ai/azure-ai-projects/tsp-location.yaml | 26 + 53 files changed, 10308 insertions(+), 67 deletions(-) create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsAsyncClient.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsClient.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentEndpointConversationsImpl.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ReplaceTelephonyTransferTargetsRequest.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/TransferTelephonyCallRequest.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PSTNTelephonyTransferDestination.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SipTelephonyTransferDestination.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsPhoneExtensionTelephonyBindingListItem.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsTelephonyTransferDestination.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyBindingStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallDurationBasis.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEvent.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventName.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventOutcome.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventSource.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallPhase.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallRecord.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallSummary.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTimestampSource.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTiming.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTrace.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceMode.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceStatus.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyProvider.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTarget.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTargets.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TwilioTelephonyBindingListItem.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/UpdateTelephonyBindingRequest.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgent.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgentConfig.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubagentResponsePolicy.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTargetAgent.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTransport.java create mode 100644 sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceGeneratedItemAudioResponse.java create mode 100644 sdk/ai/azure-ai-agents/tsp-location.yaml create mode 100644 sdk/ai/azure-ai-projects/tsp-location.yaml diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsAsyncClient.java new file mode 100644 index 000000000000..46c40581074d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsAsyncClient.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.agents; + +import com.azure.ai.agents.implementation.AgentEndpointConversationsImpl; +import com.azure.ai.agents.models.VoiceGeneratedItemAudioResponse; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.BinaryData; +import com.azure.core.util.FluxUtil; +import reactor.core.publisher.Mono; + +/** + * Initializes a new instance of the asynchronous AgentsClient type. + */ +@ServiceClient(builder = AgentsClientBuilder.class, isAsync = true) +public final class AgentEndpointConversationsAsyncClient { + @Generated + private final AgentEndpointConversationsImpl serviceClient; + + /** + * Initializes an instance of AgentEndpointConversationsAsyncClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + AgentEndpointConversationsAsyncClient(AgentEndpointConversationsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * Get a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. This subordinate artifact is separate from the + * canonical heard-audio segment and exists only when playback was interrupted and the service rendered more audio + * than the listener heard, including when the response ends as cancelled. Returns `404` when the conversation or + * item was not persisted, or when no generated audio exists beyond the heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio along with {@link Response} on successful completion + * of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemGeneratedAudioWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemGeneratedAudioWithResponseAsync(agentName, conversationId, + itemId, requestOptions); + } + + /** + * Stream a voice agent conversation item's generated audio + * + * Streams a conversation item's generated audio as a WAV (`audio/wav`) byte stream through the service. This + * subordinate artifact exists only when playback was interrupted and the service rendered more audio than the + * listener heard, including when the response ends as cancelled. This route serves Foundry-managed storage only. + * For bring-your-own-storage (BYOS) recordings the bytes are not proxied, so this route returns `409 Conflict`. + * Returns `404` when the conversation or item was not persisted, or when no generated audio exists beyond the + * heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemGeneratedAudioContentWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemGeneratedAudioContentWithResponseAsync(agentName, + conversationId, itemId, requestOptions); + } + + /** + * Get a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. This subordinate artifact is separate from the + * canonical heard-audio segment and exists only when playback was interrupted and the service rendered more audio + * than the listener heard, including when the response ends as cancelled. Returns `404` when the conversation or + * item was not persisted, or when no generated audio exists beyond the heard segment. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio metadata is retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationItemGeneratedAudio(String agentName, + String conversationId, String itemId) { + // Generated convenience method for getAgentConversationItemGeneratedAudioWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemGeneratedAudioWithResponse(agentName, conversationId, itemId, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(VoiceGeneratedItemAudioResponse.class)); + } + + /** + * Stream a voice agent conversation item's generated audio + * + * Streams a conversation item's generated audio as a WAV (`audio/wav`) byte stream through the service. This + * subordinate artifact exists only when playback was interrupted and the service rendered more audio than the + * listener heard, including when the response ends as cancelled. This route serves Foundry-managed storage only. + * For bring-your-own-storage (BYOS) recordings the bytes are not proxied, so this route returns `409 Conflict`. + * Returns `404` when the conversation or item was not persisted, or when no generated audio exists beyond the + * heard segment. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio is streamed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response body on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getAgentConversationItemGeneratedAudioContent(String agentName, String conversationId, + String itemId) { + // Generated convenience method for getAgentConversationItemGeneratedAudioContentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemGeneratedAudioContentWithResponse(agentName, conversationId, itemId, + requestOptions).flatMap(FluxUtil::toMono); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsClient.java new file mode 100644 index 000000000000..1d8888bdf194 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentEndpointConversationsClient.java @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents; + +import com.azure.ai.agents.implementation.AgentEndpointConversationsImpl; +import com.azure.ai.agents.models.VoiceGeneratedItemAudioResponse; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceClient; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.RequestOptions; +import com.azure.core.http.rest.Response; +import com.azure.core.util.BinaryData; + +/** + * Initializes a new instance of the synchronous AgentsClient type. + */ +@ServiceClient(builder = AgentsClientBuilder.class) +public final class AgentEndpointConversationsClient { + @Generated + private final AgentEndpointConversationsImpl serviceClient; + + /** + * Initializes an instance of AgentEndpointConversationsClient class. + * + * @param serviceClient the service client implementation. + */ + @Generated + AgentEndpointConversationsClient(AgentEndpointConversationsImpl serviceClient) { + this.serviceClient = serviceClient; + } + + /** + * Get a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. This subordinate artifact is separate from the + * canonical heard-audio segment and exists only when playback was interrupted and the service rendered more audio + * than the listener heard, including when the response ends as cancelled. Returns `404` when the conversation or + * item was not persisted, or when no generated audio exists beyond the heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemGeneratedAudioWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemGeneratedAudioWithResponse(agentName, conversationId, itemId, + requestOptions); + } + + /** + * Stream a voice agent conversation item's generated audio + * + * Streams a conversation item's generated audio as a WAV (`audio/wav`) byte stream through the service. This + * subordinate artifact exists only when playback was interrupted and the service rendered more audio than the + * listener heard, including when the response ends as cancelled. This route serves Foundry-managed storage only. + * For bring-your-own-storage (BYOS) recordings the bytes are not proxied, so this route returns `409 Conflict`. + * Returns `404` when the conversation or item was not persisted, or when no generated audio exists beyond the + * heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemGeneratedAudioContentWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + return this.serviceClient.getAgentConversationItemGeneratedAudioContentWithResponse(agentName, conversationId, + itemId, requestOptions); + } + + /** + * Get a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. This subordinate artifact is separate from the + * canonical heard-audio segment and exists only when playback was interrupted and the service rendered more audio + * than the listener heard, including when the response ends as cancelled. Returns `404` when the conversation or + * item was not persisted, or when no generated audio exists beyond the heard segment. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio metadata is retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public VoiceGeneratedItemAudioResponse getAgentConversationItemGeneratedAudio(String agentName, + String conversationId, String itemId) { + // Generated convenience method for getAgentConversationItemGeneratedAudioWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemGeneratedAudioWithResponse(agentName, conversationId, itemId, requestOptions) + .getValue() + .toObject(VoiceGeneratedItemAudioResponse.class); + } + + /** + * Stream a voice agent conversation item's generated audio + * + * Streams a conversation item's generated audio as a WAV (`audio/wav`) byte stream through the service. This + * subordinate artifact exists only when playback was interrupted and the service rendered more audio than the + * listener heard, including when the response ends as cancelled. This route serves Foundry-managed storage only. + * For bring-your-own-storage (BYOS) recordings the bytes are not proxied, so this route returns `409 Conflict`. + * Returns `404` when the conversation or item was not persisted, or when no generated audio exists beyond the + * heard segment. + * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio is streamed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData getAgentConversationItemGeneratedAudioContent(String agentName, String conversationId, + String itemId) { + // Generated convenience method for getAgentConversationItemGeneratedAudioContentWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getAgentConversationItemGeneratedAudioContentWithResponse(agentName, conversationId, itemId, + requestOptions).getValue(); + } +} 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 772ccf2f379e..b9f707dc20e3 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 @@ -16,6 +16,8 @@ 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.ReplaceTelephonyTransferTargetsRequest; +import com.azure.ai.agents.implementation.models.TransferTelephonyCallRequest; import com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest; import com.azure.ai.agents.implementation.models.UpdateAgentRequest; import com.azure.ai.agents.implementation.utils.FileUtils; @@ -38,7 +40,15 @@ import com.azure.ai.agents.models.SessionDirectoryEntry; import com.azure.ai.agents.models.SessionFileWriteResult; import com.azure.ai.agents.models.SessionLogEvent; +import com.azure.ai.agents.models.TelephonyBindingStatus; +import com.azure.ai.agents.models.TelephonyCallRecord; +import com.azure.ai.agents.models.TelephonyCallStatus; +import com.azure.ai.agents.models.TelephonyCallSummary; +import com.azure.ai.agents.models.TelephonyProvider; +import com.azure.ai.agents.models.TelephonyTransferTarget; +import com.azure.ai.agents.models.TelephonyTransferTargets; import com.azure.ai.agents.models.UpdateAgentDetailsOptions; +import com.azure.ai.agents.models.UpdateTelephonyBindingRequest; import com.azure.ai.agents.models.VersionIndicator; import com.azure.core.annotation.Generated; import com.azure.core.annotation.ReturnType; @@ -59,6 +69,8 @@ import com.azure.core.util.FluxUtil; import com.openai.models.conversations.Conversation; import java.nio.file.Paths; +import java.time.OffsetDateTime; +import java.util.List; import java.util.Map; import java.util.stream.Collectors; import reactor.core.publisher.Flux; @@ -4813,4 +4825,1109 @@ public Mono getMicrosoft365PublishDefaults(String a return getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono) .map(protocolMethodData -> protocolMethodData.toObject(Microsoft365PublishDefaults.class)); } + + /** + * Create an agent telephony binding + * + * Creates a telephony binding for the voice agent named in the path. + *

Header Parameters

+ * + * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
repeatability-request-idStringNoRepeatability request ID header
repeatability-first-sentStringNoRepeatability first sent header as + * HTTP-date
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Request Body Schema

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

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param body The provider-specific binding 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 telephony binding owned by a voice agent along with {@link Response} on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> createTelephonyBindingWithResponse(String agentName, BinaryData body, + RequestOptions requestOptions) { + return this.serviceClient.createTelephonyBindingWithResponseAsync(agentName, body, requestOptions); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose bindings are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyBindings(String agentName, RequestOptions requestOptions) { + return this.serviceClient.listTelephonyBindingsAsync(agentName, requestOptions); + } + + /** + * Get an agent telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @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 telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path along with {@link Response} on + * successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getTelephonyBindingWithResponse(String agentName, String bindingId, + RequestOptions requestOptions) { + return this.serviceClient.getTelephonyBindingWithResponseAsync(agentName, bindingId, requestOptions); + } + + /** + * Update an agent telephony binding + * + * Updates a telephony binding owned by the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/suspended) (Optional)
+     *     label: String (Optional)
+     *     connection: String (Optional)
+     *     phone_number: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param body The binding properties 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 telephony binding owned by a voice agent along with {@link Response} on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> updateTelephonyBindingWithResponse(String agentName, String bindingId, + String ifMatch, BinaryData body, RequestOptions requestOptions) { + return this.serviceClient.updateTelephonyBindingWithResponseAsync(agentName, bindingId, ifMatch, body, + requestOptions); + } + + /** + * Delete an agent telephony binding + * + * Deletes a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @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> deleteTelephonyBindingWithResponse(String agentName, String bindingId, String ifMatch, + RequestOptions requestOptions) { + return this.serviceClient.deleteTelephonyBindingWithResponseAsync(agentName, bindingId, ifMatch, + requestOptions); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose calls are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyCalls(String agentName, RequestOptions requestOptions) { + return this.serviceClient.listTelephonyCallsAsync(agentName, requestOptions); + } + + /** + * Get an agent telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the call record. + * @param callId The service-generated call identifier. + * @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 telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path along with {@link Response} on + * successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getTelephonyCallWithResponse(String agentName, String callId, + RequestOptions requestOptions) { + return this.serviceClient.getTelephonyCallWithResponseAsync(agentName, callId, requestOptions); + } + + /** + * Transfer an active agent telephony call + * + * Transfers an active inbound call to a configured target for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     target: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @param transferTelephonyCallRequest The transferTelephonyCallRequest 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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response} on + * successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> transferTelephonyCallWithResponse(String agentName, String callId, + BinaryData transferTelephonyCallRequest, RequestOptions requestOptions) { + return this.serviceClient.transferTelephonyCallWithResponseAsync(agentName, callId, + transferTelephonyCallRequest, requestOptions); + } + + /** + * End an active agent telephony call + * + * Ends an active inbound call owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response} on + * successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> endTelephonyCallWithResponse(String agentName, String callId, + RequestOptions requestOptions) { + return this.serviceClient.endTelephonyCallWithResponseAsync(agentName, callId, requestOptions); + } + + /** + * Get agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path along with {@link Response} on + * successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getTelephonyTransferTargetsWithResponse(String agentName, + RequestOptions requestOptions) { + return this.serviceClient.getTelephonyTransferTargetsWithResponseAsync(agentName, requestOptions); + } + + /** + * Replace agent telephony transfer targets + * + * Replaces all transfer targets configured for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are replaced. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param replaceTelephonyTransferTargetsRequest The replaceTelephonyTransferTargetsRequest 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 telephony transfer targets configured for one voice agent along with {@link Response} on successful + * completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> replaceTelephonyTransferTargetsWithResponse(String agentName, String ifMatch, + BinaryData replaceTelephonyTransferTargetsRequest, RequestOptions requestOptions) { + return this.serviceClient.replaceTelephonyTransferTargetsWithResponseAsync(agentName, ifMatch, + replaceTelephonyTransferTargetsRequest, requestOptions); + } + + /** + * Create an agent telephony binding + * + * Creates a telephony binding for the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param body The provider-specific binding 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 telephony binding owned by a voice agent on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono createTelephonyBinding(String agentName, BinaryData body) { + // Generated convenience method for createTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + return createTelephonyBindingWithResponse(agentName, body, requestOptions).flatMap(FluxUtil::toMono); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent whose bindings are listed. + * @param provider Filters bindings by provider. + * @param status Filters bindings by lifecycle status. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyBindings(String agentName, TelephonyProvider provider, + TelephonyBindingStatus status, Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listTelephonyBindings + RequestOptions requestOptions = new RequestOptions(); + if (provider != null) { + requestOptions.addQueryParam("provider", provider.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return listTelephonyBindings(agentName, requestOptions); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent whose bindings are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyBindings(String agentName) { + // Generated convenience method for listTelephonyBindings + RequestOptions requestOptions = new RequestOptions(); + return listTelephonyBindings(agentName, requestOptions); + } + + /** + * Get an agent telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @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 telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getTelephonyBinding(String agentName, String bindingId) { + // Generated convenience method for getTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getTelephonyBindingWithResponse(agentName, bindingId, requestOptions).flatMap(FluxUtil::toMono); + } + + /** + * Update an agent telephony binding + * + * Updates a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param body The binding properties 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 telephony binding owned by a voice agent on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono updateTelephonyBinding(String agentName, String bindingId, String ifMatch, + UpdateTelephonyBindingRequest body) { + // Generated convenience method for updateTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + JsonMergePatchHelper.getUpdateTelephonyBindingRequestAccessor().prepareModelForJsonMergePatch(body, true); + BinaryData bodyInBinaryData = BinaryData.fromObject(body); + // BinaryData.fromObject() will not fire serialization, use getLength() to fire serialization. + bodyInBinaryData.getLength(); + JsonMergePatchHelper.getUpdateTelephonyBindingRequestAccessor().prepareModelForJsonMergePatch(body, false); + return updateTelephonyBindingWithResponse(agentName, bindingId, ifMatch, bodyInBinaryData, requestOptions) + .flatMap(FluxUtil::toMono); + } + + /** + * Delete an agent telephony binding + * + * Deletes a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @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 deleteTelephonyBinding(String agentName, String bindingId, String ifMatch) { + // Generated convenience method for deleteTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + return deleteTelephonyBindingWithResponse(agentName, bindingId, ifMatch, requestOptions) + .flatMap(FluxUtil::toMono); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose calls are listed. + * @param provider Filters calls by provider. + * @param status Filters calls by lifecycle status. + * @param startedAfter Includes calls that started at or after this Unix timestamp in seconds. + * @param startedBefore Includes calls that started at or before this Unix timestamp in seconds. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyCalls(String agentName, TelephonyProvider provider, + TelephonyCallStatus status, OffsetDateTime startedAfter, OffsetDateTime startedBefore, Integer limit, + PageOrder order, String after, String before) { + // Generated convenience method for listTelephonyCalls + RequestOptions requestOptions = new RequestOptions(); + if (provider != null) { + requestOptions.addQueryParam("provider", provider.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (startedAfter != null) { + requestOptions.addQueryParam("started_after", String.valueOf(startedAfter.toEpochSecond()), false); + } + if (startedBefore != null) { + requestOptions.addQueryParam("started_before", String.valueOf(startedBefore.toEpochSecond()), false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + PagedFlux pagedFluxResponse = listTelephonyCalls(agentName, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux + .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyCallSummary.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose calls are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyCalls(String agentName) { + // Generated convenience method for listTelephonyCalls + RequestOptions requestOptions = new RequestOptions(); + PagedFlux pagedFluxResponse = listTelephonyCalls(agentName, requestOptions); + return PagedFlux.create(() -> (continuationTokenParam, pageSizeParam) -> { + Flux> flux = (continuationTokenParam == null) + ? pagedFluxResponse.byPage().take(1) + : pagedFluxResponse.byPage(continuationTokenParam).take(1); + return flux + .map(pagedResponse -> new PagedResponseBase(pagedResponse.getRequest(), + pagedResponse.getStatusCode(), pagedResponse.getHeaders(), + pagedResponse.getValue() + .stream() + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyCallSummary.class)) + .collect(Collectors.toList()), + pagedResponse.getContinuationToken(), null)); + }); + } + + /** + * Get an agent telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the call record. + * @param callId The service-generated call identifier. + * @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 telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getTelephonyCall(String agentName, String callId) { + // Generated convenience method for getTelephonyCallWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getTelephonyCallWithResponse(agentName, callId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyCallRecord.class)); + } + + /** + * Transfer an active agent telephony call + * + * Transfers an active inbound call to a configured target for the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @param target The name of a transfer target configured for the voice agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return detailed diagnostics for a durable inbound call to a voice agent on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono transferTelephonyCall(String agentName, String callId, String target) { + // Generated convenience method for transferTelephonyCallWithResponse + RequestOptions requestOptions = new RequestOptions(); + TransferTelephonyCallRequest transferTelephonyCallRequestObj = new TransferTelephonyCallRequest(target); + BinaryData transferTelephonyCallRequest = BinaryData.fromObject(transferTelephonyCallRequestObj); + return transferTelephonyCallWithResponse(agentName, callId, transferTelephonyCallRequest, requestOptions) + .flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyCallRecord.class)); + } + + /** + * End an active agent telephony call + * + * Ends an active inbound call owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @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 detailed diagnostics for a durable inbound call to a voice agent on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono endTelephonyCall(String agentName, String callId) { + // Generated convenience method for endTelephonyCallWithResponse + RequestOptions requestOptions = new RequestOptions(); + return endTelephonyCallWithResponse(agentName, callId, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyCallRecord.class)); + } + + /** + * Get agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose transfer targets are retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path on successful completion of + * {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono getTelephonyTransferTargets(String agentName) { + // Generated convenience method for getTelephonyTransferTargetsWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getTelephonyTransferTargetsWithResponse(agentName, requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyTransferTargets.class)); + } + + /** + * Replace agent telephony transfer targets + * + * Replaces all transfer targets configured for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose transfer targets are replaced. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param transferTargets The complete set of destinations to which the voice agent may transfer calls. An empty + * array clears all targets when replacing the configuration. + * @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 telephony transfer targets configured for one voice agent on successful completion of {@link Mono}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono replaceTelephonyTransferTargets(String agentName, String ifMatch, + List transferTargets) { + // Generated convenience method for replaceTelephonyTransferTargetsWithResponse + RequestOptions requestOptions = new RequestOptions(); + ReplaceTelephonyTransferTargetsRequest replaceTelephonyTransferTargetsRequestObj + = new ReplaceTelephonyTransferTargetsRequest(transferTargets); + BinaryData replaceTelephonyTransferTargetsRequest + = BinaryData.fromObject(replaceTelephonyTransferTargetsRequestObj); + return replaceTelephonyTransferTargetsWithResponse(agentName, ifMatch, replaceTelephonyTransferTargetsRequest, + requestOptions).flatMap(FluxUtil::toMono) + .map(protocolMethodData -> protocolMethodData.toObject(TelephonyTransferTargets.class)); + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClient.java index e3ef636c200e..f21df130a837 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 @@ -16,6 +16,8 @@ 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.ReplaceTelephonyTransferTargetsRequest; +import com.azure.ai.agents.implementation.models.TransferTelephonyCallRequest; import com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest; import com.azure.ai.agents.implementation.models.UpdateAgentRequest; import com.azure.ai.agents.implementation.utils.FileUtils; @@ -38,7 +40,15 @@ import com.azure.ai.agents.models.SessionDirectoryEntry; import com.azure.ai.agents.models.SessionFileWriteResult; import com.azure.ai.agents.models.SessionLogEvent; +import com.azure.ai.agents.models.TelephonyBindingStatus; +import com.azure.ai.agents.models.TelephonyCallRecord; +import com.azure.ai.agents.models.TelephonyCallStatus; +import com.azure.ai.agents.models.TelephonyCallSummary; +import com.azure.ai.agents.models.TelephonyProvider; +import com.azure.ai.agents.models.TelephonyTransferTarget; +import com.azure.ai.agents.models.TelephonyTransferTargets; import com.azure.ai.agents.models.UpdateAgentDetailsOptions; +import com.azure.ai.agents.models.UpdateTelephonyBindingRequest; import com.azure.ai.agents.models.VersionIndicator; import com.azure.core.annotation.Generated; import com.azure.core.annotation.ReturnType; @@ -58,6 +68,8 @@ import com.openai.models.conversations.Conversation; import java.io.IOException; import java.nio.file.Paths; +import java.time.OffsetDateTime; +import java.util.List; import java.util.Map; /** @@ -4643,4 +4655,1068 @@ public Microsoft365PublishDefaults getMicrosoft365PublishDefaults(String agentNa return getMicrosoft365PublishDefaultsWithResponse(agentName, requestOptions).getValue() .toObject(Microsoft365PublishDefaults.class); } + + /** + * Create an agent telephony binding + * + * Creates a telephony binding for the voice agent named in the path. + *

Header Parameters

+ * + * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
repeatability-request-idStringNoRepeatability request ID header
repeatability-first-sentStringNoRepeatability first sent header as + * HTTP-date
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Request Body Schema

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

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param body The provider-specific binding 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 telephony binding owned by a voice agent along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response createTelephonyBindingWithResponse(String agentName, BinaryData body, + RequestOptions requestOptions) { + return this.serviceClient.createTelephonyBindingWithResponse(agentName, body, requestOptions); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose bindings are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyBindings(String agentName, RequestOptions requestOptions) { + return this.serviceClient.listTelephonyBindings(agentName, requestOptions); + } + + /** + * Get an agent telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @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 telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getTelephonyBindingWithResponse(String agentName, String bindingId, + RequestOptions requestOptions) { + return this.serviceClient.getTelephonyBindingWithResponse(agentName, bindingId, requestOptions); + } + + /** + * Update an agent telephony binding + * + * Updates a telephony binding owned by the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/suspended) (Optional)
+     *     label: String (Optional)
+     *     connection: String (Optional)
+     *     phone_number: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param body The binding properties 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 telephony binding owned by a voice agent along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response updateTelephonyBindingWithResponse(String agentName, String bindingId, String ifMatch, + BinaryData body, RequestOptions requestOptions) { + return this.serviceClient.updateTelephonyBindingWithResponse(agentName, bindingId, ifMatch, body, + requestOptions); + } + + /** + * Delete an agent telephony binding + * + * Deletes a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @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 deleteTelephonyBindingWithResponse(String agentName, String bindingId, String ifMatch, + RequestOptions requestOptions) { + return this.serviceClient.deleteTelephonyBindingWithResponse(agentName, bindingId, ifMatch, requestOptions); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose calls are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyCalls(String agentName, RequestOptions requestOptions) { + return this.serviceClient.listTelephonyCalls(agentName, requestOptions); + } + + /** + * Get an agent telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the call record. + * @param callId The service-generated call identifier. + * @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 telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getTelephonyCallWithResponse(String agentName, String callId, + RequestOptions requestOptions) { + return this.serviceClient.getTelephonyCallWithResponse(agentName, callId, requestOptions); + } + + /** + * Transfer an active agent telephony call + * + * Transfers an active inbound call to a configured target for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     target: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @param transferTelephonyCallRequest The transferTelephonyCallRequest 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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response transferTelephonyCallWithResponse(String agentName, String callId, + BinaryData transferTelephonyCallRequest, RequestOptions requestOptions) { + return this.serviceClient.transferTelephonyCallWithResponse(agentName, callId, transferTelephonyCallRequest, + requestOptions); + } + + /** + * End an active agent telephony call + * + * Ends an active inbound call owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response endTelephonyCallWithResponse(String agentName, String callId, + RequestOptions requestOptions) { + return this.serviceClient.endTelephonyCallWithResponse(agentName, callId, requestOptions); + } + + /** + * Get agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getTelephonyTransferTargetsWithResponse(String agentName, + RequestOptions requestOptions) { + return this.serviceClient.getTelephonyTransferTargetsWithResponse(agentName, requestOptions); + } + + /** + * Replace agent telephony transfer targets + * + * Replaces all transfer targets configured for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are replaced. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param replaceTelephonyTransferTargetsRequest The replaceTelephonyTransferTargetsRequest 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 telephony transfer targets configured for one voice agent along with {@link Response}. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public Response replaceTelephonyTransferTargetsWithResponse(String agentName, String ifMatch, + BinaryData replaceTelephonyTransferTargetsRequest, RequestOptions requestOptions) { + return this.serviceClient.replaceTelephonyTransferTargetsWithResponse(agentName, ifMatch, + replaceTelephonyTransferTargetsRequest, requestOptions); + } + + /** + * Create an agent telephony binding + * + * Creates a telephony binding for the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param body The provider-specific binding 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 telephony binding owned by a voice agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData createTelephonyBinding(String agentName, BinaryData body) { + // Generated convenience method for createTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + return createTelephonyBindingWithResponse(agentName, body, requestOptions).getValue(); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent whose bindings are listed. + * @param provider Filters bindings by provider. + * @param status Filters bindings by lifecycle status. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyBindings(String agentName, TelephonyProvider provider, + TelephonyBindingStatus status, Integer limit, PageOrder order, String after, String before) { + // Generated convenience method for listTelephonyBindings + RequestOptions requestOptions = new RequestOptions(); + if (provider != null) { + requestOptions.addQueryParam("provider", provider.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return serviceClient.listTelephonyBindings(agentName, requestOptions).mapPage(bodyItemValue -> bodyItemValue); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent whose bindings are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyBindings(String agentName) { + // Generated convenience method for listTelephonyBindings + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listTelephonyBindings(agentName, requestOptions).mapPage(bodyItemValue -> bodyItemValue); + } + + /** + * Get an agent telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @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 telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData getTelephonyBinding(String agentName, String bindingId) { + // Generated convenience method for getTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getTelephonyBindingWithResponse(agentName, bindingId, requestOptions).getValue(); + } + + /** + * Update an agent telephony binding + * + * Updates a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param body The binding properties 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 telephony binding owned by a voice agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public BinaryData updateTelephonyBinding(String agentName, String bindingId, String ifMatch, + UpdateTelephonyBindingRequest body) { + // Generated convenience method for updateTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + JsonMergePatchHelper.getUpdateTelephonyBindingRequestAccessor().prepareModelForJsonMergePatch(body, true); + BinaryData bodyInBinaryData = BinaryData.fromObject(body); + // BinaryData.fromObject() will not fire serialization, use getLength() to fire serialization. + bodyInBinaryData.getLength(); + JsonMergePatchHelper.getUpdateTelephonyBindingRequestAccessor().prepareModelForJsonMergePatch(body, false); + return updateTelephonyBindingWithResponse(agentName, bindingId, ifMatch, bodyInBinaryData, requestOptions) + .getValue(); + } + + /** + * Delete an agent telephony binding + * + * Deletes a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @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 deleteTelephonyBinding(String agentName, String bindingId, String ifMatch) { + // Generated convenience method for deleteTelephonyBindingWithResponse + RequestOptions requestOptions = new RequestOptions(); + deleteTelephonyBindingWithResponse(agentName, bindingId, ifMatch, requestOptions).getValue(); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose calls are listed. + * @param provider Filters calls by provider. + * @param status Filters calls by lifecycle status. + * @param startedAfter Includes calls that started at or after this Unix timestamp in seconds. + * @param startedBefore Includes calls that started at or before this Unix timestamp in seconds. + * @param limit A limit on the number of objects to be returned. Limit can range between 1 and 100, and the + * default is 20. + * @param order Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and`desc` + * for descending order. + * @param after A cursor for use in pagination. `after` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include after=obj_foo in order to fetch the next page of the list. + * @param before A cursor for use in pagination. `before` is an object ID that defines your place in the list. + * For instance, if you make a list request and receive 100 objects, ending with obj_foo, your + * subsequent call can include before=obj_foo in order to fetch the previous page of the list. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyCalls(String agentName, TelephonyProvider provider, + TelephonyCallStatus status, OffsetDateTime startedAfter, OffsetDateTime startedBefore, Integer limit, + PageOrder order, String after, String before) { + // Generated convenience method for listTelephonyCalls + RequestOptions requestOptions = new RequestOptions(); + if (provider != null) { + requestOptions.addQueryParam("provider", provider.toString(), false); + } + if (status != null) { + requestOptions.addQueryParam("status", status.toString(), false); + } + if (startedAfter != null) { + requestOptions.addQueryParam("started_after", String.valueOf(startedAfter.toEpochSecond()), false); + } + if (startedBefore != null) { + requestOptions.addQueryParam("started_before", String.valueOf(startedBefore.toEpochSecond()), false); + } + if (limit != null) { + requestOptions.addQueryParam("limit", String.valueOf(limit), false); + } + if (order != null) { + requestOptions.addQueryParam("order", order.toString(), false); + } + if (after != null) { + requestOptions.addQueryParam("after", after, false); + } + if (before != null) { + requestOptions.addQueryParam("before", before, false); + } + return serviceClient.listTelephonyCalls(agentName, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(TelephonyCallSummary.class)); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose calls are listed. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @Generated + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyCalls(String agentName) { + // Generated convenience method for listTelephonyCalls + RequestOptions requestOptions = new RequestOptions(); + return serviceClient.listTelephonyCalls(agentName, requestOptions) + .mapPage(bodyItemValue -> bodyItemValue.toObject(TelephonyCallSummary.class)); + } + + /** + * Get an agent telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the call record. + * @param callId The service-generated call identifier. + * @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 telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public TelephonyCallRecord getTelephonyCall(String agentName, String callId) { + // Generated convenience method for getTelephonyCallWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getTelephonyCallWithResponse(agentName, callId, requestOptions).getValue() + .toObject(TelephonyCallRecord.class); + } + + /** + * Transfer an active agent telephony call + * + * Transfers an active inbound call to a configured target for the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @param target The name of a transfer target configured for the voice agent. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return detailed diagnostics for a durable inbound call to a voice agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public TelephonyCallRecord transferTelephonyCall(String agentName, String callId, String target) { + // Generated convenience method for transferTelephonyCallWithResponse + RequestOptions requestOptions = new RequestOptions(); + TransferTelephonyCallRequest transferTelephonyCallRequestObj = new TransferTelephonyCallRequest(target); + BinaryData transferTelephonyCallRequest = BinaryData.fromObject(transferTelephonyCallRequestObj); + return transferTelephonyCallWithResponse(agentName, callId, transferTelephonyCallRequest, requestOptions) + .getValue() + .toObject(TelephonyCallRecord.class); + } + + /** + * End an active agent telephony call + * + * Ends an active inbound call owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @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 detailed diagnostics for a durable inbound call to a voice agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public TelephonyCallRecord endTelephonyCall(String agentName, String callId) { + // Generated convenience method for endTelephonyCallWithResponse + RequestOptions requestOptions = new RequestOptions(); + return endTelephonyCallWithResponse(agentName, callId, requestOptions).getValue() + .toObject(TelephonyCallRecord.class); + } + + /** + * Get agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose transfer targets are retrieved. + * @throws IllegalArgumentException thrown if parameters fail the validation. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent. + * @return agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public TelephonyTransferTargets getTelephonyTransferTargets(String agentName) { + // Generated convenience method for getTelephonyTransferTargetsWithResponse + RequestOptions requestOptions = new RequestOptions(); + return getTelephonyTransferTargetsWithResponse(agentName, requestOptions).getValue() + .toObject(TelephonyTransferTargets.class); + } + + /** + * Replace agent telephony transfer targets + * + * Replaces all transfer targets configured for the voice agent named in the path. + * + * @param agentName The name of the voice agent whose transfer targets are replaced. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param transferTargets The complete set of destinations to which the voice agent may transfer calls. An empty + * array clears all targets when replacing the configuration. + * @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 telephony transfer targets configured for one voice agent. + */ + @Generated + @ServiceMethod(returns = ReturnType.SINGLE) + public TelephonyTransferTargets replaceTelephonyTransferTargets(String agentName, String ifMatch, + List transferTargets) { + // Generated convenience method for replaceTelephonyTransferTargetsWithResponse + RequestOptions requestOptions = new RequestOptions(); + ReplaceTelephonyTransferTargetsRequest replaceTelephonyTransferTargetsRequestObj + = new ReplaceTelephonyTransferTargetsRequest(transferTargets); + BinaryData replaceTelephonyTransferTargetsRequest + = BinaryData.fromObject(replaceTelephonyTransferTargetsRequestObj); + return replaceTelephonyTransferTargetsWithResponse(agentName, ifMatch, replaceTelephonyTransferTargetsRequest, + requestOptions).getValue().toObject(TelephonyTransferTargets.class); + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/AgentsClientBuilder.java index 675035be61df..62fb3ba3407b 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 @@ -65,12 +65,14 @@ BetaVoiceAgentWebSocketClient.class, BetaAgentEndpointConversationsClient.class, AgentsClient.class, + AgentEndpointConversationsClient.class, ToolboxesClient.class, BetaMemoryStoresAsyncClient.class, BetaAgentsAsyncClient.class, BetaVoiceAgentWebSocketAsyncClient.class, BetaAgentEndpointConversationsAsyncClient.class, AgentsAsyncClient.class, + AgentEndpointConversationsAsyncClient.class, ToolboxesAsyncClient.class }) public final class AgentsClientBuilder implements HttpTrait, ConfigurationTrait, @@ -725,4 +727,24 @@ public BetaVoiceAgentWebSocketClient buildBetaVoiceAgentWebSocketClient() { public BetaAgentEndpointConversationsClient buildBetaAgentEndpointConversationsClient() { return new BetaAgentEndpointConversationsClient(buildInnerClient().getBetaAgentEndpointConversations()); } + + /** + * Builds an instance of AgentEndpointConversationsAsyncClient class. + * + * @return an instance of AgentEndpointConversationsAsyncClient. + */ + @Generated + public AgentEndpointConversationsAsyncClient buildAgentEndpointConversationsAsyncClient() { + return new AgentEndpointConversationsAsyncClient(buildInnerClient().getAgentEndpointConversations()); + } + + /** + * Builds an instance of AgentEndpointConversationsClient class. + * + * @return an instance of AgentEndpointConversationsClient. + */ + @Generated + public AgentEndpointConversationsClient buildAgentEndpointConversationsClient() { + return new AgentEndpointConversationsClient(buildInnerClient().getAgentEndpointConversations()); + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java index 478571e0e16d..7f69a072d5e4 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java @@ -48,9 +48,18 @@ public final class BetaVoiceAgentWebSocketAsyncClient { * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. *

Query Parameters

* * @@ -60,6 +69,11 @@ public final class BetaVoiceAgentWebSocketAsyncClient { * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview". + * *
Query Parameters
transportStringNoSelects the connection transport. Omit or send `websocket` + * for the default, where signaling and audio are + * exchanged as JSON events over this WebSocket. Send `webrtc` to negotiate a WebRTC connection: the WebSocket + * then carries only SDP signaling (`rtc.call.sdp.create` / `rtc.call.sdp.created`) while media and the data + * channel are peer-to-peer. Allowed values: "websocket", "webrtc".
storeBooleanNoWhether to persist the conversation created by this WebSocket * session. If omitted, the service honors the * persisted voice agent definition's configured `store` value. If supplied, this value overrides the @@ -106,9 +120,18 @@ public Mono> connectVoiceAgentWithResponse(String agentName, Requ * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. * * @param agentName The name of the voice agent. * @throws IllegalArgumentException thrown if parameters fail the validation. @@ -135,9 +158,18 @@ public Mono connectVoiceAgent(String agentName) { * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. * * @param agentName The name of the voice agent. * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java index 05059faa2829..33686b401aa1 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java @@ -46,9 +46,18 @@ public final class BetaVoiceAgentWebSocketClient { * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. *

Query Parameters

* * @@ -58,6 +67,11 @@ public final class BetaVoiceAgentWebSocketClient { * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview". + * *
Query Parameters
transportStringNoSelects the connection transport. Omit or send `websocket` + * for the default, where signaling and audio are + * exchanged as JSON events over this WebSocket. Send `webrtc` to negotiate a WebRTC connection: the WebSocket + * then carries only SDP signaling (`rtc.call.sdp.create` / `rtc.call.sdp.created`) while media and the data + * channel are peer-to-peer. Allowed values: "websocket", "webrtc".
storeBooleanNoWhether to persist the conversation created by this WebSocket * session. If omitted, the service honors the * persisted voice agent definition's configured `store` value. If supplied, this value overrides the @@ -104,9 +118,18 @@ public Response connectVoiceAgentWithResponse(String agentName, RequestOpt * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. * * @param agentName The name of the voice agent. * @throws IllegalArgumentException thrown if parameters fail the validation. @@ -132,9 +155,18 @@ public void connectVoiceAgent(String agentName) { * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. * * @param agentName The name of the voice agent. * @param store Whether to persist the conversation created by this WebSocket session. If omitted, the service diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentEndpointConversationsImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentEndpointConversationsImpl.java new file mode 100644 index 000000000000..e6b1ba20da22 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentEndpointConversationsImpl.java @@ -0,0 +1,281 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.implementation; + +import com.azure.ai.agents.AgentsServiceVersion; +import com.azure.core.annotation.ExpectedResponses; +import com.azure.core.annotation.Get; +import com.azure.core.annotation.HeaderParam; +import com.azure.core.annotation.Host; +import com.azure.core.annotation.HostParam; +import com.azure.core.annotation.PathParam; +import com.azure.core.annotation.QueryParam; +import com.azure.core.annotation.ReturnType; +import com.azure.core.annotation.ServiceInterface; +import com.azure.core.annotation.ServiceMethod; +import com.azure.core.annotation.UnexpectedResponseExceptionType; +import com.azure.core.exception.ClientAuthenticationException; +import com.azure.core.exception.HttpResponseException; +import com.azure.core.exception.ResourceModifiedException; +import com.azure.core.exception.ResourceNotFoundException; +import com.azure.core.http.rest.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 reactor.core.publisher.Mono; + +/** + * An instance of this class provides access to all the operations defined in AgentEndpointConversations. + */ +public final class AgentEndpointConversationsImpl { + /** + * The proxy service used to perform REST calls. + */ + private final AgentEndpointConversationsService service; + + /** + * The service client containing this operation class. + */ + private final AgentsClientImpl client; + + /** + * Initializes an instance of AgentEndpointConversationsImpl. + * + * @param client the instance of the service client containing this operation class. + */ + AgentEndpointConversationsImpl(AgentsClientImpl client) { + this.service = RestProxy.create(AgentEndpointConversationsService.class, client.getHttpPipeline(), + client.getSerializerAdapter()); + this.client = client; + } + + /** + * Gets Service version. + * + * @return the serviceVersion value. + */ + public AgentsServiceVersion getServiceVersion() { + return client.getServiceVersion(); + } + + /** + * The interface defining all the services for AgentsClientAgentEndpointConversations to be used by the proxy + * service to perform REST calls. + */ + @Host("{endpoint}") + @ServiceInterface(name = "AgentsClientAgentEndpointConversations") + public interface AgentEndpointConversationsService { + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio/generated") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationItemGeneratedAudio(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio/generated") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationItemGeneratedAudioSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio/generated/content") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getAgentConversationItemGeneratedAudioContent(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/endpoint/protocols/voice/conversations/{conversation_id}/items/{item_id}/audio/generated/content") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getAgentConversationItemGeneratedAudioContentSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("conversation_id") String conversationId, + @PathParam("item_id") String itemId, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + } + + /** + * Get a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. This subordinate artifact is separate from the + * canonical heard-audio segment and exists only when playback was interrupted and the service rendered more audio + * than the listener heard, including when the response ends as cancelled. Returns `404` when the conversation or + * item was not persisted, or when no generated audio exists beyond the heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio along with {@link Response} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemGeneratedAudioWithResponseAsync(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.getAgentConversationItemGeneratedAudio(this.client.getEndpoint(), agentName, + conversationId, itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio. This subordinate artifact is separate from the + * canonical heard-audio segment and exists only when playback was interrupted and the service rendered more audio + * than the listener heard, including when the response ends as cancelled. Returns `404` when the conversation or + * item was not persisted, or when no generated audio exists beyond the heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     conversation_id: String (Required)
+     *     item_id: String (Required)
+     *     role: String(user/agent) (Optional)
+     *     format: String(wav) (Optional)
+     *     codec: String(pcm16/pcmu/pcma) (Optional)
+     *     sample_rate: Integer (Optional)
+     *     channels: Integer (Optional)
+     *     start_offset_ms: Long (Optional)
+     *     duration_ms: Long (Optional)
+     *     blob_uri: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio metadata is retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return a voice agent conversation item's generated audio metadata + * + * Returns metadata for a conversation item's generated audio along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemGeneratedAudioWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getAgentConversationItemGeneratedAudioSync(this.client.getEndpoint(), agentName, conversationId, + itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Stream a voice agent conversation item's generated audio + * + * Streams a conversation item's generated audio as a WAV (`audio/wav`) byte stream through the service. This + * subordinate artifact exists only when playback was interrupted and the service rendered more audio than the + * listener heard, including when the response ends as cancelled. This route serves Foundry-managed storage only. + * For bring-your-own-storage (BYOS) recordings the bytes are not proxied, so this route returns `409 Conflict`. + * Returns `404` when the conversation or item was not persisted, or when no generated audio exists beyond the + * heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response} on successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getAgentConversationItemGeneratedAudioContentWithResponseAsync(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "audio/wav"; + return FluxUtil.withContext( + context -> service.getAgentConversationItemGeneratedAudioContent(this.client.getEndpoint(), agentName, + conversationId, itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Stream a voice agent conversation item's generated audio + * + * Streams a conversation item's generated audio as a WAV (`audio/wav`) byte stream through the service. This + * subordinate artifact exists only when playback was interrupted and the service rendered more audio than the + * listener heard, including when the response ends as cancelled. This route serves Foundry-managed storage only. + * For bring-your-own-storage (BYOS) recordings the bytes are not proxied, so this route returns `409 Conflict`. + * Returns `404` when the conversation or item was not persisted, or when no generated audio exists beyond the + * heard segment. + *

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the agent. + * @param conversationId The id of the conversation that contains the item. + * @param itemId The id of the conversation item whose generated audio is streamed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response body along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getAgentConversationItemGeneratedAudioContentWithResponse(String agentName, + String conversationId, String itemId, RequestOptions requestOptions) { + final String accept = "audio/wav"; + return service.getAgentConversationItemGeneratedAudioContentSync(this.client.getEndpoint(), agentName, + conversationId, itemId, this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java index 41ad2bcebaea..8f5fc69de92d 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java @@ -150,6 +150,20 @@ public AgentsImpl getAgents() { return this.agents; } + /** + * The AgentEndpointConversationsImpl object to access its operations. + */ + private final AgentEndpointConversationsImpl agentEndpointConversations; + + /** + * Gets the AgentEndpointConversationsImpl object to access its operations. + * + * @return the AgentEndpointConversationsImpl object. + */ + public AgentEndpointConversationsImpl getAgentEndpointConversations() { + return this.agentEndpointConversations; + } + /** * The ToolboxesImpl object to access its operations. */ @@ -217,6 +231,7 @@ public AgentsClientImpl(HttpPipeline httpPipeline, SerializerAdapter serializerA this.betaVoiceAgentWebSockets = new BetaVoiceAgentWebSocketsImpl(this); this.betaAgentEndpointConversations = new BetaAgentEndpointConversationsImpl(this); this.agents = new AgentsImpl(this); + this.agentEndpointConversations = new AgentEndpointConversationsImpl(this); this.toolboxes = new ToolboxesImpl(this); } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java index 5ebf4a7431e9..488611bf3c0d 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 @@ -25,6 +25,7 @@ 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.PagedIterable; import com.azure.core.http.rest.PagedResponse; @@ -34,7 +35,10 @@ import com.azure.core.http.rest.RestProxy; import com.azure.core.util.BinaryData; import com.azure.core.util.Context; +import com.azure.core.util.CoreUtils; +import com.azure.core.util.DateTimeRfc1123; import com.azure.core.util.FluxUtil; +import java.time.OffsetDateTime; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -658,6 +662,252 @@ Response getSessionLogStreamSync(@HostParam("endpoint") String endpo @PathParam("session_id") String sessionId, @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + @Post("/agents/{agent_name}/telephony_bindings") + @ExpectedResponses({ 201 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> createTelephonyBinding(@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 body, RequestOptions requestOptions, Context context); + + @Post("/agents/{agent_name}/telephony_bindings") + @ExpectedResponses({ 201 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response createTelephonyBindingSync(@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 body, RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/telephony_bindings") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> listTelephonyBindings(@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}/telephony_bindings") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response listTelephonyBindingsSync(@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}/telephony_bindings/{binding_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> getTelephonyBinding(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("binding_id") String bindingId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/telephony_bindings/{binding_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 getTelephonyBindingSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("binding_id") String bindingId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Patch("/agents/{agent_name}/telephony_bindings/{binding_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> updateTelephonyBinding(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("binding_id") String bindingId, + @HeaderParam("Content-Type") String contentType, @HeaderParam("If-Match") String ifMatch, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + @BodyParam("application/merge-patch+json") BinaryData body, RequestOptions requestOptions, Context context); + + @Patch("/agents/{agent_name}/telephony_bindings/{binding_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 updateTelephonyBindingSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("binding_id") String bindingId, + @HeaderParam("Content-Type") String contentType, @HeaderParam("If-Match") String ifMatch, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + @BodyParam("application/merge-patch+json") BinaryData body, RequestOptions requestOptions, Context context); + + @Delete("/agents/{agent_name}/telephony_bindings/{binding_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> deleteTelephonyBinding(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("binding_id") String bindingId, + @HeaderParam("If-Match") String ifMatch, @QueryParam("api-version") String apiVersion, + RequestOptions requestOptions, Context context); + + @Delete("/agents/{agent_name}/telephony_bindings/{binding_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 deleteTelephonyBindingSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("binding_id") String bindingId, + @HeaderParam("If-Match") String ifMatch, @QueryParam("api-version") String apiVersion, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/telephony_calls") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> listTelephonyCalls(@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}/telephony_calls") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response listTelephonyCallsSync(@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}/telephony_calls/{call_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> getTelephonyCall(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("call_id") String callId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/telephony_calls/{call_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 getTelephonyCallSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("call_id") String callId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Post("/agents/{agent_name}/telephony_calls/{call_id}:transfer") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> transferTelephonyCall(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("call_id") String callId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType, + @HeaderParam("Accept") String accept, + @BodyParam("application/json") BinaryData transferTelephonyCallRequest, RequestOptions requestOptions, + Context context); + + @Post("/agents/{agent_name}/telephony_calls/{call_id}:transfer") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response transferTelephonyCallSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("call_id") String callId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType, + @HeaderParam("Accept") String accept, + @BodyParam("application/json") BinaryData transferTelephonyCallRequest, RequestOptions requestOptions, + Context context); + + @Post("/agents/{agent_name}/telephony_calls/{call_id}:end") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> endTelephonyCall(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("call_id") String callId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Post("/agents/{agent_name}/telephony_calls/{call_id}:end") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response endTelephonyCallSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @PathParam("call_id") String callId, + @QueryParam("api-version") String apiVersion, @HeaderParam("Accept") String accept, + RequestOptions requestOptions, Context context); + + @Get("/agents/{agent_name}/telephony_transfer_targets") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> getTelephonyTransferTargets(@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}/telephony_transfer_targets") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response getTelephonyTransferTargetsSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @QueryParam("api-version") String apiVersion, + @HeaderParam("Accept") String accept, RequestOptions requestOptions, Context context); + + @Put("/agents/{agent_name}/telephony_transfer_targets") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Mono> replaceTelephonyTransferTargets(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @HeaderParam("If-Match") String ifMatch, + @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType, + @HeaderParam("Accept") String accept, + @BodyParam("application/json") BinaryData replaceTelephonyTransferTargetsRequest, + RequestOptions requestOptions, Context context); + + @Put("/agents/{agent_name}/telephony_transfer_targets") + @ExpectedResponses({ 200 }) + @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) + @UnexpectedResponseExceptionType(value = ResourceNotFoundException.class, code = { 404 }) + @UnexpectedResponseExceptionType(value = ResourceModifiedException.class, code = { 409 }) + @UnexpectedResponseExceptionType(HttpResponseException.class) + Response replaceTelephonyTransferTargetsSync(@HostParam("endpoint") String endpoint, + @PathParam("agent_name") String agentName, @HeaderParam("If-Match") String ifMatch, + @QueryParam("api-version") String apiVersion, @HeaderParam("Content-Type") String contentType, + @HeaderParam("Accept") String accept, + @BodyParam("application/json") BinaryData replaceTelephonyTransferTargetsRequest, + RequestOptions requestOptions, Context context); + @Put("/agents/{agent_name}/endpoint/sessions/{agent_session_id}/files/content") @ExpectedResponses({ 201 }) @UnexpectedResponseExceptionType(value = ClientAuthenticationException.class, code = { 401 }) @@ -5931,6 +6181,1649 @@ public Response getSessionLogStreamWithResponse(String agentName, St this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); } + /** + * Create an agent telephony binding + * + * Creates a telephony binding for the voice agent named in the path. + *

Header Parameters

+ * + * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
repeatability-request-idStringNoRepeatability request ID header
repeatability-first-sentStringNoRepeatability first sent header as + * HTTP-date
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Request Body Schema

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

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param body The provider-specific binding 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 telephony binding owned by a voice agent along with {@link Response} on successful completion of + * {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> createTelephonyBindingWithResponseAsync(String agentName, BinaryData body, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + RequestOptions requestOptionsLocal = requestOptions == null ? new RequestOptions() : requestOptions; + requestOptionsLocal.addRequestCallback(requestLocal -> { + if (requestLocal.getHeaders().get(HttpHeaderName.fromString("repeatability-request-id")) == null) { + requestLocal.getHeaders() + .set(HttpHeaderName.fromString("repeatability-request-id"), CoreUtils.randomUuid().toString()); + } + }); + requestOptionsLocal.addRequestCallback(requestLocal -> { + if (requestLocal.getHeaders().get(HttpHeaderName.fromString("repeatability-first-sent")) == null) { + requestLocal.getHeaders() + .set(HttpHeaderName.fromString("repeatability-first-sent"), + DateTimeRfc1123.toRfc1123String(OffsetDateTime.now())); + } + }); + return FluxUtil.withContext(context -> service.createTelephonyBinding(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), contentType, accept, body, requestOptionsLocal, context)); + } + + /** + * Create an agent telephony binding + * + * Creates a telephony binding for the voice agent named in the path. + *

Header Parameters

+ * + * + * + * + * + *
Header Parameters
NameTypeRequiredDescription
repeatability-request-idStringNoRepeatability request ID header
repeatability-first-sentStringNoRepeatability first sent header as + * HTTP-date
+ * You can add these to a request with {@link RequestOptions#addHeader} + *

Request Body Schema

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

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param body The provider-specific binding 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 telephony binding owned by a voice agent along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response createTelephonyBindingWithResponse(String agentName, BinaryData body, + RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + RequestOptions requestOptionsLocal = requestOptions == null ? new RequestOptions() : requestOptions; + requestOptionsLocal.addRequestCallback(requestLocal -> { + if (requestLocal.getHeaders().get(HttpHeaderName.fromString("repeatability-request-id")) == null) { + requestLocal.getHeaders() + .set(HttpHeaderName.fromString("repeatability-request-id"), CoreUtils.randomUuid().toString()); + } + }); + requestOptionsLocal.addRequestCallback(requestLocal -> { + if (requestLocal.getHeaders().get(HttpHeaderName.fromString("repeatability-first-sent")) == null) { + requestLocal.getHeaders() + .set(HttpHeaderName.fromString("repeatability-first-sent"), + DateTimeRfc1123.toRfc1123String(OffsetDateTime.now())); + } + }); + return service.createTelephonyBindingSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), contentType, accept, body, requestOptionsLocal, Context.NONE); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose bindings are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listTelephonyBindingsSinglePageAsync(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listTelephonyBindings(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose bindings are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyBindingsAsync(String agentName, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listTelephonyBindingsSinglePageAsync(agentName, requestOptions)); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose bindings are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listTelephonyBindingsSinglePage(String agentName, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listTelephonyBindingsSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List agent telephony bindings + * + * Returns the telephony bindings owned by the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * BinaryData
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose bindings are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyBindings(String agentName, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listTelephonyBindingsSinglePage(agentName, requestOptions)); + } + + /** + * Get an agent telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @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 telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getTelephonyBindingWithResponseAsync(String agentName, String bindingId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getTelephonyBinding(this.client.getEndpoint(), agentName, + bindingId, this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get an agent telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path. + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @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 telephony binding + * + * Retrieves a telephony binding owned by the voice agent named in the path along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getTelephonyBindingWithResponse(String agentName, String bindingId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getTelephonyBindingSync(this.client.getEndpoint(), agentName, bindingId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Update an agent telephony binding + * + * Updates a telephony binding owned by the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/suspended) (Optional)
+     *     label: String (Optional)
+     *     connection: String (Optional)
+     *     phone_number: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param body The binding properties 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 telephony binding owned by a voice agent along with {@link Response} on successful completion of + * {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> updateTelephonyBindingWithResponseAsync(String agentName, String bindingId, + String ifMatch, BinaryData body, RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return FluxUtil.withContext( + context -> service.updateTelephonyBinding(this.client.getEndpoint(), agentName, bindingId, contentType, + ifMatch, this.client.getServiceVersion().getVersion(), accept, body, requestOptions, context)); + } + + /** + * Update an agent telephony binding + * + * Updates a telephony binding owned by the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     status: String(active/suspended) (Optional)
+     *     label: String (Optional)
+     *     connection: String (Optional)
+     *     phone_number: String (Optional)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

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

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when updating or deleting the + * binding.
+ * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param body The binding properties 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 telephony binding owned by a voice agent along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response updateTelephonyBindingWithResponse(String agentName, String bindingId, String ifMatch, + BinaryData body, RequestOptions requestOptions) { + final String contentType = "application/merge-patch+json"; + final String accept = "application/json"; + return service.updateTelephonyBindingSync(this.client.getEndpoint(), agentName, bindingId, contentType, ifMatch, + this.client.getServiceVersion().getVersion(), accept, body, requestOptions, Context.NONE); + } + + /** + * Delete an agent telephony binding + * + * Deletes a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @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> deleteTelephonyBindingWithResponseAsync(String agentName, String bindingId, + String ifMatch, RequestOptions requestOptions) { + return FluxUtil.withContext(context -> service.deleteTelephonyBinding(this.client.getEndpoint(), agentName, + bindingId, ifMatch, this.client.getServiceVersion().getVersion(), requestOptions, context)); + } + + /** + * Delete an agent telephony binding + * + * Deletes a telephony binding owned by the voice agent named in the path. + * + * @param agentName The name of the voice agent that owns the binding. + * @param bindingId The service-generated binding identifier. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @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 deleteTelephonyBindingWithResponse(String agentName, String bindingId, String ifMatch, + RequestOptions requestOptions) { + return service.deleteTelephonyBindingSync(this.client.getEndpoint(), agentName, bindingId, ifMatch, + this.client.getServiceVersion().getVersion(), requestOptions, Context.NONE); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose calls are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse} on successful completion + * of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private Mono> listTelephonyCallsSinglePageAsync(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil + .withContext(context -> service.listTelephonyCalls(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)) + .map(res -> new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null)); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose calls are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedFlux}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedFlux listTelephonyCallsAsync(String agentName, RequestOptions requestOptions) { + return new PagedFlux<>(() -> listTelephonyCallsSinglePageAsync(agentName, requestOptions)); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose calls are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items along with {@link PagedResponse}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + private PagedResponse listTelephonyCallsSinglePage(String agentName, RequestOptions requestOptions) { + final String accept = "application/json"; + Response res = service.listTelephonyCallsSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + return new PagedResponseBase<>(res.getRequest(), res.getStatusCode(), res.getHeaders(), + getValues(res.getValue(), "data"), null, null); + } + + /** + * List agent telephony calls + * + * Returns the durable inbound call history for the voice agent named in the path. + *

Query Parameters

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

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent whose calls are listed. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return the response data for a requested list of items as paginated response with {@link PagedIterable}. + */ + @ServiceMethod(returns = ReturnType.COLLECTION) + public PagedIterable listTelephonyCalls(String agentName, RequestOptions requestOptions) { + return new PagedIterable<>(() -> listTelephonyCallsSinglePage(agentName, requestOptions)); + } + + /** + * Get an agent telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the call record. + * @param callId The service-generated call identifier. + * @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 telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getTelephonyCallWithResponseAsync(String agentName, String callId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getTelephonyCall(this.client.getEndpoint(), agentName, callId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get an agent telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the call record. + * @param callId The service-generated call identifier. + * @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 telephony call + * + * Retrieves a durable inbound call record owned by the voice agent named in the path along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getTelephonyCallWithResponse(String agentName, String callId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getTelephonyCallSync(this.client.getEndpoint(), agentName, callId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Transfer an active agent telephony call + * + * Transfers an active inbound call to a configured target for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     target: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @param transferTelephonyCallRequest The transferTelephonyCallRequest 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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> transferTelephonyCallWithResponseAsync(String agentName, String callId, + BinaryData transferTelephonyCallRequest, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.transferTelephonyCall(this.client.getEndpoint(), agentName, + callId, this.client.getServiceVersion().getVersion(), contentType, accept, transferTelephonyCallRequest, + requestOptions, context)); + } + + /** + * Transfer an active agent telephony call + * + * Transfers an active inbound call to a configured target for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     target: String (Required)
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @param transferTelephonyCallRequest The transferTelephonyCallRequest 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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response transferTelephonyCallWithResponse(String agentName, String callId, + BinaryData transferTelephonyCallRequest, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.transferTelephonyCallSync(this.client.getEndpoint(), agentName, callId, + this.client.getServiceVersion().getVersion(), contentType, accept, transferTelephonyCallRequest, + requestOptions, Context.NONE); + } + + /** + * End an active agent telephony call + * + * Ends an active inbound call owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> endTelephonyCallWithResponseAsync(String agentName, String callId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.endTelephonyCall(this.client.getEndpoint(), agentName, callId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * End an active agent telephony call + * + * Ends an active inbound call owned by the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     id: String (Required)
+     *     provider: String(teams_phone_extension/twilio) (Required)
+     *     provider_call_id: String (Optional)
+     *     caller_number: String (Optional)
+     *     provider_number: String (Optional)
+     *     status: String(in_progress/success/failed) (Required)
+     *     phase: String(received/validated/admitted/answering/answered/media_connected/agent_session_ready/bridging/managing/completed/rejected/failed) (Required)
+     *     started_at: long (Required)
+     *     answered_at: Long (Optional)
+     *     media_connected_at: Long (Optional)
+     *     agent_session_ready_at: Long (Optional)
+     *     ended_at: Long (Optional)
+     *     duration_seconds: Long (Optional)
+     *     end_reason: String (Optional)
+     *     provider_status_code: Integer (Optional)
+     *     provider_sub_code: Integer (Optional)
+     *     provider_message: String (Optional)
+     *     timing (Required): {
+     *         received_at_ms: Long (Optional)
+     *         validated_at_ms: Long (Optional)
+     *         admitted_at_ms: Long (Optional)
+     *         answer_requested_at_ms: Long (Optional)
+     *         answered_at_ms: Long (Optional)
+     *         media_connected_at_ms: Long (Optional)
+     *         agent_session_ready_at_ms: Long (Optional)
+     *         first_caller_audio_at_ms: Long (Optional)
+     *         first_agent_audio_at_ms: Long (Optional)
+     *         ended_at_ms: Long (Optional)
+     *         duration_basis: String(answered/received) (Optional)
+     *         timestamp_source: String(provider/gateway/derived) (Required)
+     *     }
+     *     trace (Optional): {
+     *         status: String(pending/emitting/available/not_recorded/not_applicable/failed) (Required)
+     *         trace_id: String (Optional)
+     *         root_span_id: String (Optional)
+     *         conversation_id: String (Optional)
+     *         mode: String(live/post_call) (Optional)
+     *     }
+     *     events (Required): [
+     *          (Required){
+     *             sequence: long (Required)
+     *             name: String(telephony.webhook.received/telephony.webhook.validation/telephony.binding.resolve/telephony.provider.answer/telephony.media.connect/telephony.agent_session.connect/telephony.media.first_caller_audio/telephony.media.first_agent_audio/telephony.call.transfer/telephony.call.hangup/telephony.call.disconnect) (Required)
+     *             source: String(gateway/teams_phone_extension/twilio/voice_agent) (Required)
+     *             outcome: String(observed/started/succeeded/failed/rejected/cancelled) (Required)
+     *             observed_at_ms: long (Required)
+     *             occurred_at_ms: Long (Optional)
+     *             timestamp_source: String(provider/gateway/derived) (Required)
+     *             reason: String (Optional)
+     *             provider_event_id: String (Optional)
+     *             provider_sequence: Long (Optional)
+     *             provider_status_code: Integer (Optional)
+     *             provider_sub_code: Integer (Optional)
+     *         }
+     *     ]
+     *     events_truncated: boolean (Required)
+     * }
+     * }
+     * 
+ * + * @param agentName The name of the voice agent that owns the active call. + * @param callId The service-generated call identifier. + * @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 detailed diagnostics for a durable inbound call to a voice agent along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response endTelephonyCallWithResponse(String agentName, String callId, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.endTelephonyCallSync(this.client.getEndpoint(), agentName, callId, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Get agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path along with {@link Response} on + * successful completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> getTelephonyTransferTargetsWithResponseAsync(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.getTelephonyTransferTargets(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, context)); + } + + /** + * Get agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path. + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are retrieved. + * @param requestOptions The options to configure the HTTP request before HTTP client sends it. + * @throws HttpResponseException thrown if the request is rejected by server. + * @throws ClientAuthenticationException thrown if the request is rejected by server on status code 401. + * @throws ResourceNotFoundException thrown if the request is rejected by server on status code 404. + * @throws ResourceModifiedException thrown if the request is rejected by server on status code 409. + * @return agent telephony transfer targets + * + * Returns all transfer targets configured for the voice agent named in the path along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response getTelephonyTransferTargetsWithResponse(String agentName, + RequestOptions requestOptions) { + final String accept = "application/json"; + return service.getTelephonyTransferTargetsSync(this.client.getEndpoint(), agentName, + this.client.getServiceVersion().getVersion(), accept, requestOptions, Context.NONE); + } + + /** + * Replace agent telephony transfer targets + * + * Replaces all transfer targets configured for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are replaced. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param replaceTelephonyTransferTargetsRequest The replaceTelephonyTransferTargetsRequest 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 telephony transfer targets configured for one voice agent along with {@link Response} on successful + * completion of {@link Mono}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Mono> replaceTelephonyTransferTargetsWithResponseAsync(String agentName, String ifMatch, + BinaryData replaceTelephonyTransferTargetsRequest, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return FluxUtil.withContext(context -> service.replaceTelephonyTransferTargets(this.client.getEndpoint(), + agentName, ifMatch, this.client.getServiceVersion().getVersion(), contentType, accept, + replaceTelephonyTransferTargetsRequest, requestOptions, context)); + } + + /** + * Replace agent telephony transfer targets + * + * Replaces all transfer targets configured for the voice agent named in the path. + *

Request Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Body Schema

+ * + *
+     * {@code
+     * {
+     *     transfer_targets (Required): [
+     *          (Required){
+     *             name: String (Required)
+     *             description: String (Required)
+     *             destination: BinaryData (Required)
+     *         }
+     *     ]
+     * }
+     * }
+     * 
+ * + *

Response Headers

+ * + * + * + * + *
Response Headers
NameTypeDescription
ETagStringThe entity tag to send in the `If-Match` header when replacing the transfer + * targets.
+ * + * @param agentName The name of the voice agent whose transfer targets are replaced. + * @param ifMatch The entity tag returned by the latest read. The request fails if the resource changed since that + * read. + * @param replaceTelephonyTransferTargetsRequest The replaceTelephonyTransferTargetsRequest 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 telephony transfer targets configured for one voice agent along with {@link Response}. + */ + @ServiceMethod(returns = ReturnType.SINGLE) + public Response replaceTelephonyTransferTargetsWithResponse(String agentName, String ifMatch, + BinaryData replaceTelephonyTransferTargetsRequest, RequestOptions requestOptions) { + final String contentType = "application/json"; + final String accept = "application/json"; + return service.replaceTelephonyTransferTargetsSync(this.client.getEndpoint(), agentName, ifMatch, + this.client.getServiceVersion().getVersion(), contentType, accept, replaceTelephonyTransferTargetsRequest, + requestOptions, Context.NONE); + } + /** * Upload a session file * diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java index fcb74d1b0773..7094c8611ede 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java @@ -96,9 +96,18 @@ Response connectVoiceAgentSync(@HostParam("endpoint") String endpoint, * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. *

Query Parameters

* * @@ -108,6 +117,11 @@ Response connectVoiceAgentSync(@HostParam("endpoint") String endpoint, * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview". + * *
Query Parameters
transportStringNoSelects the connection transport. Omit or send `websocket` + * for the default, where signaling and audio are + * exchanged as JSON events over this WebSocket. Send `webrtc` to negotiate a WebRTC connection: the WebSocket + * then carries only SDP signaling (`rtc.call.sdp.create` / `rtc.call.sdp.created`) while media and the data + * channel are peer-to-peer. Allowed values: "websocket", "webrtc".
storeBooleanNoWhether to persist the conversation created by this WebSocket * session. If omitted, the service honors the * persisted voice agent definition's configured `store` value. If supplied, this value overrides the @@ -154,9 +168,18 @@ public Mono> connectVoiceAgentWithResponseAsync(String agentName, * `VoiceAgents=V1Preview` opt-in through either the `Foundry-Features` header or the `foundry_features` * query parameter. * - * If the target agent is disabled, the HTTP WebSocket handshake fails before the `101 Switching Protocols` - * upgrade. The service returns `409 Conflict` using the shared Foundry `ApiErrorResponse` shape with - * `error.code = agent_disabled`. This failure is terminal until the caller enables the agent. + * Handshake failures are evaluated in the following order, independent of the requested `transport`: + * + * 1. Agent enablement (any transport): if the target agent is disabled, the handshake fails before the + * `101 Switching Protocols` upgrade with `409 Conflict`, using the shared Foundry `ApiErrorResponse` shape + * with `error.code = agent_disabled`. This failure is terminal until the caller enables the agent, and it + * takes precedence over the WebRTC-specific checks below. + * 2. WebRTC availability (only when `transport=webrtc`, and only once the agent itself is enabled): the agent + * must have the WebRTC transport capability configured. If the agent is enabled but WebRTC is not available + * for it, the handshake fails with `404 Not Found`. This is distinct from the `409 agent_disabled` case + * above, which concerns the agent itself rather than its WebRTC capability. + * 3. WebRTC compatibility (only when `transport=webrtc`): WebRTC does not support bring-your-own-model (BYOM) + * or hosted-agent voice agents; those requests fail with `400 Bad Request`. *

Query Parameters

* * @@ -166,6 +189,11 @@ public Mono> connectVoiceAgentWithResponseAsync(String agentName, * WebSocket handshake. Set this to `VoiceAgents=V1Preview`. Either this query parameter or the header is * required. Allowed values: "WorkflowAgents=V1Preview", "ExternalAgents=V1Preview", "DraftAgents=V1Preview", * "VoiceAgents=V1Preview", "DigitalWorker=V1Preview". + * *
Query Parameters
transportStringNoSelects the connection transport. Omit or send `websocket` + * for the default, where signaling and audio are + * exchanged as JSON events over this WebSocket. Send `webrtc` to negotiate a WebRTC connection: the WebSocket + * then carries only SDP signaling (`rtc.call.sdp.create` / `rtc.call.sdp.created`) while media and the data + * channel are peer-to-peer. Allowed values: "websocket", "webrtc".
storeBooleanNoWhether to persist the conversation created by this WebSocket * session. If omitted, the service honors the * persisted voice agent definition's configured `store` value. If supplied, this value overrides the diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java index 38525dbb1215..540db1110e7d 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java @@ -16,6 +16,7 @@ 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.UpdateTelephonyBindingRequest; import com.azure.ai.agents.models.VersionSelectionRule; import com.azure.ai.agents.models.VersionSelector; @@ -260,4 +261,21 @@ public static void setUpdateAgentDetailsOptionsAccessor(UpdateAgentDetailsOption public static UpdateAgentDetailsOptionsAccessor getUpdateAgentDetailsOptionsAccessor() { return updateAgentDetailsOptionsAccessor; } + + private static UpdateTelephonyBindingRequestAccessor updateTelephonyBindingRequestAccessor; + + public interface UpdateTelephonyBindingRequestAccessor { + UpdateTelephonyBindingRequest prepareModelForJsonMergePatch( + UpdateTelephonyBindingRequest updateTelephonyBindingRequest, boolean jsonMergePatchEnabled); + + boolean isJsonMergePatch(UpdateTelephonyBindingRequest updateTelephonyBindingRequest); + } + + public static void setUpdateTelephonyBindingRequestAccessor(UpdateTelephonyBindingRequestAccessor accessor) { + updateTelephonyBindingRequestAccessor = accessor; + } + + public static UpdateTelephonyBindingRequestAccessor getUpdateTelephonyBindingRequestAccessor() { + return updateTelephonyBindingRequestAccessor; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ReplaceTelephonyTransferTargetsRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ReplaceTelephonyTransferTargetsRequest.java new file mode 100644 index 000000000000..a29024aefd72 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/ReplaceTelephonyTransferTargetsRequest.java @@ -0,0 +1,89 @@ +// 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.TelephonyTransferTarget; +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * The ReplaceTelephonyTransferTargetsRequest model. + */ +@Immutable +public final class ReplaceTelephonyTransferTargetsRequest + implements JsonSerializable { + /* + * The complete set of destinations to which the voice agent may transfer calls. An empty array clears all targets + * when replacing the configuration. + */ + @Generated + private final List transferTargets; + + /** + * Creates an instance of ReplaceTelephonyTransferTargetsRequest class. + * + * @param transferTargets the transferTargets value to set. + */ + @Generated + public ReplaceTelephonyTransferTargetsRequest(List transferTargets) { + this.transferTargets = transferTargets; + } + + /** + * Get the transferTargets property: The complete set of destinations to which the voice agent may transfer calls. + * An empty array clears all targets when replacing the configuration. + * + * @return the transferTargets value. + */ + @Generated + public List getTransferTargets() { + return this.transferTargets; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("transfer_targets", this.transferTargets, + (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of ReplaceTelephonyTransferTargetsRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of ReplaceTelephonyTransferTargetsRequest 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 ReplaceTelephonyTransferTargetsRequest. + */ + @Generated + public static ReplaceTelephonyTransferTargetsRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + List transferTargets = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("transfer_targets".equals(fieldName)) { + transferTargets = reader.readArray(reader1 -> TelephonyTransferTarget.fromJson(reader1)); + } else { + reader.skipChildren(); + } + } + return new ReplaceTelephonyTransferTargetsRequest(transferTargets); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/TransferTelephonyCallRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/TransferTelephonyCallRequest.java new file mode 100644 index 000000000000..dd27c00f5012 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/implementation/models/TransferTelephonyCallRequest.java @@ -0,0 +1,83 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.implementation.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * The TransferTelephonyCallRequest model. + */ +@Immutable +public final class TransferTelephonyCallRequest implements JsonSerializable { + /* + * The name of a transfer target configured for the voice agent. + */ + @Generated + private final String target; + + /** + * Creates an instance of TransferTelephonyCallRequest class. + * + * @param target the target value to set. + */ + @Generated + public TransferTelephonyCallRequest(String target) { + this.target = target; + } + + /** + * Get the target property: The name of a transfer target configured for the voice agent. + * + * @return the target value. + */ + @Generated + public String getTarget() { + return this.target; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("target", this.target); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TransferTelephonyCallRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TransferTelephonyCallRequest 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 TransferTelephonyCallRequest. + */ + @Generated + public static TransferTelephonyCallRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String target = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("target".equals(fieldName)) { + target = reader.getString(); + } else { + reader.skipChildren(); + } + } + return new TransferTelephonyCallRequest(target); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PSTNTelephonyTransferDestination.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PSTNTelephonyTransferDestination.java new file mode 100644 index 000000000000..94cf94f754ed --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/PSTNTelephonyTransferDestination.java @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A PSTN destination for a telephony transfer target. + */ +@Immutable +public final class PSTNTelephonyTransferDestination implements JsonSerializable { + /* + * The PSTN destination type. + */ + @Generated + private final String kind = "pstn"; + + /* + * The E.164 phone number to call. + */ + @Generated + private final String value; + + /** + * Creates an instance of PSTNTelephonyTransferDestination class. + * + * @param value the value value to set. + */ + @Generated + public PSTNTelephonyTransferDestination(String value) { + this.value = value; + } + + /** + * Get the kind property: The PSTN destination type. + * + * @return the kind value. + */ + @Generated + public String getKind() { + return this.kind; + } + + /** + * Get the value property: The E.164 phone number to call. + * + * @return the value value. + */ + @Generated + public String getValue() { + return this.value; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("kind", this.kind); + jsonWriter.writeStringField("value", this.value); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of PSTNTelephonyTransferDestination from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of PSTNTelephonyTransferDestination 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 PSTNTelephonyTransferDestination. + */ + @Generated + public static PSTNTelephonyTransferDestination fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String value = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("value".equals(fieldName)) { + value = reader.getString(); + } else { + reader.skipChildren(); + } + } + return new PSTNTelephonyTransferDestination(value); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SipTelephonyTransferDestination.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SipTelephonyTransferDestination.java new file mode 100644 index 000000000000..42576cf4c27b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/SipTelephonyTransferDestination.java @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A SIP destination for a telephony transfer target. + */ +@Immutable +public final class SipTelephonyTransferDestination implements JsonSerializable { + /* + * The SIP destination type. + */ + @Generated + private final String kind = "sip"; + + /* + * The SIP or SIPS URI to call. + */ + @Generated + private final String value; + + /** + * Creates an instance of SipTelephonyTransferDestination class. + * + * @param value the value value to set. + */ + @Generated + public SipTelephonyTransferDestination(String value) { + this.value = value; + } + + /** + * Get the kind property: The SIP destination type. + * + * @return the kind value. + */ + @Generated + public String getKind() { + return this.kind; + } + + /** + * Get the value property: The SIP or SIPS URI to call. + * + * @return the value value. + */ + @Generated + public String getValue() { + return this.value; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("kind", this.kind); + jsonWriter.writeStringField("value", this.value); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of SipTelephonyTransferDestination from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of SipTelephonyTransferDestination 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 SipTelephonyTransferDestination. + */ + @Generated + public static SipTelephonyTransferDestination fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String value = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("value".equals(fieldName)) { + value = reader.getString(); + } else { + reader.skipChildren(); + } + } + return new SipTelephonyTransferDestination(value); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsPhoneExtensionTelephonyBindingListItem.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsPhoneExtensionTelephonyBindingListItem.java new file mode 100644 index 000000000000..47fa7504af65 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsPhoneExtensionTelephonyBindingListItem.java @@ -0,0 +1,256 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A Microsoft Teams Phone Extension binding returned in a list, including its entity tag. + */ +@Immutable +public final class TeamsPhoneExtensionTelephonyBindingListItem + implements JsonSerializable { + /* + * The service-generated binding identifier. + */ + @Generated + private final String id; + + /* + * The Microsoft Teams Phone Extension provider. + */ + @Generated + private final String provider = "teams_phone_extension"; + + /* + * The Foundry connection name for the Teams Phone Extension provider. + */ + @Generated + private final String connection; + + /* + * The optional display phone number for the Teams resource account. + */ + @Generated + private String phoneNumber; + + /* + * The optional display label for the binding. + */ + @Generated + private String label; + + /* + * The Microsoft Teams resource-account object identifier as a GUID. + */ + @Generated + private final String resourceAccountObjectId; + + /* + * The lifecycle status. + */ + @Generated + private final TelephonyBindingStatus status; + + /* + * The service-generated webhook URL to configure with the telephony provider. + */ + @Generated + private final String incomingCallUrl; + + /* + * The entity tag to send in the `If-Match` header when updating or deleting this binding. + */ + @Generated + private String etag; + + /** + * Creates an instance of TeamsPhoneExtensionTelephonyBindingListItem class. + * + * @param id the id value to set. + * @param connection the connection value to set. + * @param resourceAccountObjectId the resourceAccountObjectId value to set. + * @param status the status value to set. + * @param incomingCallUrl the incomingCallUrl value to set. + */ + @Generated + private TeamsPhoneExtensionTelephonyBindingListItem(String id, String connection, String resourceAccountObjectId, + TelephonyBindingStatus status, String incomingCallUrl) { + this.id = id; + this.connection = connection; + this.resourceAccountObjectId = resourceAccountObjectId; + this.status = status; + this.incomingCallUrl = incomingCallUrl; + } + + /** + * Get the id property: The service-generated binding identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the provider property: The Microsoft Teams Phone Extension provider. + * + * @return the provider value. + */ + @Generated + public String getProvider() { + return this.provider; + } + + /** + * Get the connection property: The Foundry connection name for the Teams Phone Extension provider. + * + * @return the connection value. + */ + @Generated + public String getConnection() { + return this.connection; + } + + /** + * Get the phoneNumber property: The optional display phone number for the Teams resource account. + * + * @return the phoneNumber value. + */ + @Generated + public String getPhoneNumber() { + return this.phoneNumber; + } + + /** + * Get the label property: The optional display label for the binding. + * + * @return the label value. + */ + @Generated + public String getLabel() { + return this.label; + } + + /** + * Get the resourceAccountObjectId property: The Microsoft Teams resource-account object identifier as a GUID. + * + * @return the resourceAccountObjectId value. + */ + @Generated + public String getResourceAccountObjectId() { + return this.resourceAccountObjectId; + } + + /** + * Get the status property: The lifecycle status. + * + * @return the status value. + */ + @Generated + public TelephonyBindingStatus getStatus() { + return this.status; + } + + /** + * Get the incomingCallUrl property: The service-generated webhook URL to configure with the telephony provider. + * + * @return the incomingCallUrl value. + */ + @Generated + public String getIncomingCallUrl() { + return this.incomingCallUrl; + } + + /** + * Get the etag property: The entity tag to send in the `If-Match` header when updating or deleting this binding. + * + * @return the etag value. + */ + @Generated + public String getEtag() { + return this.etag; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("provider", this.provider); + jsonWriter.writeStringField("connection", this.connection); + jsonWriter.writeStringField("resource_account_object_id", this.resourceAccountObjectId); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("incoming_call_url", this.incomingCallUrl); + jsonWriter.writeStringField("phone_number", this.phoneNumber); + jsonWriter.writeStringField("label", this.label); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TeamsPhoneExtensionTelephonyBindingListItem from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TeamsPhoneExtensionTelephonyBindingListItem 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 TeamsPhoneExtensionTelephonyBindingListItem. + */ + @Generated + public static TeamsPhoneExtensionTelephonyBindingListItem fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + String connection = null; + String resourceAccountObjectId = null; + TelephonyBindingStatus status = null; + String incomingCallUrl = null; + String etag = null; + String phoneNumber = null; + String label = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("connection".equals(fieldName)) { + connection = reader.getString(); + } else if ("resource_account_object_id".equals(fieldName)) { + resourceAccountObjectId = reader.getString(); + } else if ("status".equals(fieldName)) { + status = TelephonyBindingStatus.fromString(reader.getString()); + } else if ("incoming_call_url".equals(fieldName)) { + incomingCallUrl = reader.getString(); + } else if ("etag".equals(fieldName)) { + etag = reader.getString(); + } else if ("phone_number".equals(fieldName)) { + phoneNumber = reader.getString(); + } else if ("label".equals(fieldName)) { + label = reader.getString(); + } else { + reader.skipChildren(); + } + } + TeamsPhoneExtensionTelephonyBindingListItem deserializedTeamsPhoneExtensionTelephonyBindingListItem + = new TeamsPhoneExtensionTelephonyBindingListItem(id, connection, resourceAccountObjectId, status, + incomingCallUrl); + deserializedTeamsPhoneExtensionTelephonyBindingListItem.etag = etag; + deserializedTeamsPhoneExtensionTelephonyBindingListItem.phoneNumber = phoneNumber; + deserializedTeamsPhoneExtensionTelephonyBindingListItem.label = label; + + return deserializedTeamsPhoneExtensionTelephonyBindingListItem; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsTelephonyTransferDestination.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsTelephonyTransferDestination.java new file mode 100644 index 000000000000..383ed5c83b82 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TeamsTelephonyTransferDestination.java @@ -0,0 +1,100 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A Microsoft Teams destination for a telephony transfer target. + */ +@Immutable +public final class TeamsTelephonyTransferDestination implements JsonSerializable { + /* + * The Microsoft Teams destination type. + */ + @Generated + private final String kind = "teams"; + + /* + * The Microsoft Teams user or resource-account identifier. + */ + @Generated + private final String value; + + /** + * Creates an instance of TeamsTelephonyTransferDestination class. + * + * @param value the value value to set. + */ + @Generated + public TeamsTelephonyTransferDestination(String value) { + this.value = value; + } + + /** + * Get the kind property: The Microsoft Teams destination type. + * + * @return the kind value. + */ + @Generated + public String getKind() { + return this.kind; + } + + /** + * Get the value property: The Microsoft Teams user or resource-account identifier. + * + * @return the value value. + */ + @Generated + public String getValue() { + return this.value; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("kind", this.kind); + jsonWriter.writeStringField("value", this.value); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TeamsTelephonyTransferDestination from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TeamsTelephonyTransferDestination 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 TeamsTelephonyTransferDestination. + */ + @Generated + public static TeamsTelephonyTransferDestination fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String value = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("value".equals(fieldName)) { + value = reader.getString(); + } else { + reader.skipChildren(); + } + } + return new TeamsTelephonyTransferDestination(value); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyBindingStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyBindingStatus.java new file mode 100644 index 000000000000..76cf80fd95c0 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyBindingStatus.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The lifecycle status of a telephony binding. + */ +public final class TelephonyBindingStatus extends ExpandableStringEnum { + /** + * The binding accepts new inbound calls. + */ + @Generated + public static final TelephonyBindingStatus ACTIVE = fromString("active"); + + /** + * The binding remains configured but rejects new inbound calls. + */ + @Generated + public static final TelephonyBindingStatus SUSPENDED = fromString("suspended"); + + /** + * Creates a new instance of TelephonyBindingStatus value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyBindingStatus() { + } + + /** + * Creates or finds a TelephonyBindingStatus from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyBindingStatus. + */ + @Generated + public static TelephonyBindingStatus fromString(String name) { + return fromString(name, TelephonyBindingStatus.class); + } + + /** + * Gets known TelephonyBindingStatus values. + * + * @return known TelephonyBindingStatus values. + */ + @Generated + public static Collection values() { + return values(TelephonyBindingStatus.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallDurationBasis.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallDurationBasis.java new file mode 100644 index 000000000000..3f8f6d91194e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallDurationBasis.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The timestamp used as the basis for call duration. + */ +public final class TelephonyCallDurationBasis extends ExpandableStringEnum { + /** + * Duration starts when the provider reports the call as answered. + */ + @Generated + public static final TelephonyCallDurationBasis ANSWERED = fromString("answered"); + + /** + * Duration starts when the inbound webhook is received because no answered timestamp is available. + */ + @Generated + public static final TelephonyCallDurationBasis RECEIVED = fromString("received"); + + /** + * Creates a new instance of TelephonyCallDurationBasis value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallDurationBasis() { + } + + /** + * Creates or finds a TelephonyCallDurationBasis from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallDurationBasis. + */ + @Generated + public static TelephonyCallDurationBasis fromString(String name) { + return fromString(name, TelephonyCallDurationBasis.class); + } + + /** + * Gets known TelephonyCallDurationBasis values. + * + * @return known TelephonyCallDurationBasis values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallDurationBasis.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEvent.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEvent.java new file mode 100644 index 000000000000..18965bfc5218 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEvent.java @@ -0,0 +1,322 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A bounded durable observation in the lifecycle of one telephony call. + */ +@Immutable +public final class TelephonyCallLifecycleEvent implements JsonSerializable { + /* + * The service-assigned order of the event within the call record. + */ + @Generated + private long sequence; + + /* + * The stable provider-neutral event name. + */ + @Generated + private final TelephonyCallLifecycleEventName name; + + /* + * The component that supplied the observation. + */ + @Generated + private final TelephonyCallLifecycleEventSource source; + + /* + * The outcome of the observed lifecycle operation. + */ + @Generated + private final TelephonyCallLifecycleEventOutcome outcome; + + /* + * When the service observed the event, as Unix time in milliseconds. + */ + @Generated + private final long observedAtMs; + + /* + * When the event occurred according to the provider, as Unix time in milliseconds. + */ + @Generated + private Long occurredAtMs; + + /* + * The source of the event timestamp. + */ + @Generated + private final TelephonyCallTimestampSource timestampSource; + + /* + * A stable service-generated reason associated with the event. + */ + @Generated + private String reason; + + /* + * The provider event identifier used for idempotency, when supplied. + */ + @Generated + private String providerEventId; + + /* + * The provider event sequence, when supplied. + */ + @Generated + private Long providerSequence; + + /* + * The provider status code associated with the event. + */ + @Generated + private Integer providerStatusCode; + + /* + * The provider subcode associated with the event. + */ + @Generated + private Integer providerSubCode; + + /** + * Creates an instance of TelephonyCallLifecycleEvent class. + * + * @param name the name value to set. + * @param source the source value to set. + * @param outcome the outcome value to set. + * @param observedAtMs the observedAtMs value to set. + * @param timestampSource the timestampSource value to set. + */ + @Generated + private TelephonyCallLifecycleEvent(TelephonyCallLifecycleEventName name, TelephonyCallLifecycleEventSource source, + TelephonyCallLifecycleEventOutcome outcome, long observedAtMs, TelephonyCallTimestampSource timestampSource) { + this.name = name; + this.source = source; + this.outcome = outcome; + this.observedAtMs = observedAtMs; + this.timestampSource = timestampSource; + } + + /** + * Get the sequence property: The service-assigned order of the event within the call record. + * + * @return the sequence value. + */ + @Generated + public long getSequence() { + return this.sequence; + } + + /** + * Get the name property: The stable provider-neutral event name. + * + * @return the name value. + */ + @Generated + public TelephonyCallLifecycleEventName getName() { + return this.name; + } + + /** + * Get the source property: The component that supplied the observation. + * + * @return the source value. + */ + @Generated + public TelephonyCallLifecycleEventSource getSource() { + return this.source; + } + + /** + * Get the outcome property: The outcome of the observed lifecycle operation. + * + * @return the outcome value. + */ + @Generated + public TelephonyCallLifecycleEventOutcome getOutcome() { + return this.outcome; + } + + /** + * Get the observedAtMs property: When the service observed the event, as Unix time in milliseconds. + * + * @return the observedAtMs value. + */ + @Generated + public long getObservedAtMs() { + return this.observedAtMs; + } + + /** + * Get the occurredAtMs property: When the event occurred according to the provider, as Unix time in milliseconds. + * + * @return the occurredAtMs value. + */ + @Generated + public Long getOccurredAtMs() { + return this.occurredAtMs; + } + + /** + * Get the timestampSource property: The source of the event timestamp. + * + * @return the timestampSource value. + */ + @Generated + public TelephonyCallTimestampSource getTimestampSource() { + return this.timestampSource; + } + + /** + * Get the reason property: A stable service-generated reason associated with the event. + * + * @return the reason value. + */ + @Generated + public String getReason() { + return this.reason; + } + + /** + * Get the providerEventId property: The provider event identifier used for idempotency, when supplied. + * + * @return the providerEventId value. + */ + @Generated + public String getProviderEventId() { + return this.providerEventId; + } + + /** + * Get the providerSequence property: The provider event sequence, when supplied. + * + * @return the providerSequence value. + */ + @Generated + public Long getProviderSequence() { + return this.providerSequence; + } + + /** + * Get the providerStatusCode property: The provider status code associated with the event. + * + * @return the providerStatusCode value. + */ + @Generated + public Integer getProviderStatusCode() { + return this.providerStatusCode; + } + + /** + * Get the providerSubCode property: The provider subcode associated with the event. + * + * @return the providerSubCode value. + */ + @Generated + public Integer getProviderSubCode() { + return this.providerSubCode; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name == null ? null : this.name.toString()); + jsonWriter.writeStringField("source", this.source == null ? null : this.source.toString()); + jsonWriter.writeStringField("outcome", this.outcome == null ? null : this.outcome.toString()); + jsonWriter.writeLongField("observed_at_ms", this.observedAtMs); + jsonWriter.writeStringField("timestamp_source", + this.timestampSource == null ? null : this.timestampSource.toString()); + jsonWriter.writeNumberField("occurred_at_ms", this.occurredAtMs); + jsonWriter.writeStringField("reason", this.reason); + jsonWriter.writeStringField("provider_event_id", this.providerEventId); + jsonWriter.writeNumberField("provider_sequence", this.providerSequence); + jsonWriter.writeNumberField("provider_status_code", this.providerStatusCode); + jsonWriter.writeNumberField("provider_sub_code", this.providerSubCode); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyCallLifecycleEvent from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyCallLifecycleEvent 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 TelephonyCallLifecycleEvent. + */ + @Generated + public static TelephonyCallLifecycleEvent fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + long sequence = 0L; + TelephonyCallLifecycleEventName name = null; + TelephonyCallLifecycleEventSource source = null; + TelephonyCallLifecycleEventOutcome outcome = null; + long observedAtMs = 0L; + TelephonyCallTimestampSource timestampSource = null; + Long occurredAtMs = null; + String reason = null; + String providerEventId = null; + Long providerSequence = null; + Integer providerStatusCode = null; + Integer providerSubCode = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("sequence".equals(fieldName)) { + sequence = reader.getLong(); + } else if ("name".equals(fieldName)) { + name = TelephonyCallLifecycleEventName.fromString(reader.getString()); + } else if ("source".equals(fieldName)) { + source = TelephonyCallLifecycleEventSource.fromString(reader.getString()); + } else if ("outcome".equals(fieldName)) { + outcome = TelephonyCallLifecycleEventOutcome.fromString(reader.getString()); + } else if ("observed_at_ms".equals(fieldName)) { + observedAtMs = reader.getLong(); + } else if ("timestamp_source".equals(fieldName)) { + timestampSource = TelephonyCallTimestampSource.fromString(reader.getString()); + } else if ("occurred_at_ms".equals(fieldName)) { + occurredAtMs = reader.getNullable(JsonReader::getLong); + } else if ("reason".equals(fieldName)) { + reason = reader.getString(); + } else if ("provider_event_id".equals(fieldName)) { + providerEventId = reader.getString(); + } else if ("provider_sequence".equals(fieldName)) { + providerSequence = reader.getNullable(JsonReader::getLong); + } else if ("provider_status_code".equals(fieldName)) { + providerStatusCode = reader.getNullable(JsonReader::getInt); + } else if ("provider_sub_code".equals(fieldName)) { + providerSubCode = reader.getNullable(JsonReader::getInt); + } else { + reader.skipChildren(); + } + } + TelephonyCallLifecycleEvent deserializedTelephonyCallLifecycleEvent + = new TelephonyCallLifecycleEvent(name, source, outcome, observedAtMs, timestampSource); + deserializedTelephonyCallLifecycleEvent.sequence = sequence; + deserializedTelephonyCallLifecycleEvent.occurredAtMs = occurredAtMs; + deserializedTelephonyCallLifecycleEvent.reason = reason; + deserializedTelephonyCallLifecycleEvent.providerEventId = providerEventId; + deserializedTelephonyCallLifecycleEvent.providerSequence = providerSequence; + deserializedTelephonyCallLifecycleEvent.providerStatusCode = providerStatusCode; + deserializedTelephonyCallLifecycleEvent.providerSubCode = providerSubCode; + + return deserializedTelephonyCallLifecycleEvent; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventName.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventName.java new file mode 100644 index 000000000000..5089c6329789 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventName.java @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * A provider-neutral lifecycle event name. Known values are stable; additional values may be added over time. + */ +public final class TelephonyCallLifecycleEventName extends ExpandableStringEnum { + /** + * The provider webhook was received. + */ + @Generated + public static final TelephonyCallLifecycleEventName WEBHOOK_RECEIVED = fromString("telephony.webhook.received"); + + /** + * The provider webhook was validated. + */ + @Generated + public static final TelephonyCallLifecycleEventName WEBHOOK_VALIDATION = fromString("telephony.webhook.validation"); + + /** + * The service attempted to resolve the agent binding. + */ + @Generated + public static final TelephonyCallLifecycleEventName BINDING_RESOLVE = fromString("telephony.binding.resolve"); + + /** + * The service requested or observed provider answer state. + */ + @Generated + public static final TelephonyCallLifecycleEventName PROVIDER_ANSWER = fromString("telephony.provider.answer"); + + /** + * The provider media channel changed connection state. + */ + @Generated + public static final TelephonyCallLifecycleEventName MEDIA_CONNECT = fromString("telephony.media.connect"); + + /** + * The voice-agent session changed connection state. + */ + @Generated + public static final TelephonyCallLifecycleEventName AGENT_SESSION_CONNECT + = fromString("telephony.agent_session.connect"); + + /** + * The first caller audio was observed. + */ + @Generated + public static final TelephonyCallLifecycleEventName FIRST_CALLER_AUDIO + = fromString("telephony.media.first_caller_audio"); + + /** + * The first agent audio was observed. + */ + @Generated + public static final TelephonyCallLifecycleEventName FIRST_AGENT_AUDIO + = fromString("telephony.media.first_agent_audio"); + + /** + * A call transfer changed state. + */ + @Generated + public static final TelephonyCallLifecycleEventName CALL_TRANSFER = fromString("telephony.call.transfer"); + + /** + * A call hang-up changed state. + */ + @Generated + public static final TelephonyCallLifecycleEventName CALL_HANGUP = fromString("telephony.call.hangup"); + + /** + * The call disconnected. + */ + @Generated + public static final TelephonyCallLifecycleEventName CALL_DISCONNECT = fromString("telephony.call.disconnect"); + + /** + * Creates a new instance of TelephonyCallLifecycleEventName value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallLifecycleEventName() { + } + + /** + * Creates or finds a TelephonyCallLifecycleEventName from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallLifecycleEventName. + */ + @Generated + public static TelephonyCallLifecycleEventName fromString(String name) { + return fromString(name, TelephonyCallLifecycleEventName.class); + } + + /** + * Gets known TelephonyCallLifecycleEventName values. + * + * @return known TelephonyCallLifecycleEventName values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallLifecycleEventName.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventOutcome.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventOutcome.java new file mode 100644 index 000000000000..59112e7cbdf2 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventOutcome.java @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The outcome of one telephony lifecycle observation. + */ +public final class TelephonyCallLifecycleEventOutcome extends ExpandableStringEnum { + /** + * The event was observed without a success or failure result. + */ + @Generated + public static final TelephonyCallLifecycleEventOutcome OBSERVED = fromString("observed"); + + /** + * The operation started. + */ + @Generated + public static final TelephonyCallLifecycleEventOutcome STARTED = fromString("started"); + + /** + * The operation succeeded. + */ + @Generated + public static final TelephonyCallLifecycleEventOutcome SUCCEEDED = fromString("succeeded"); + + /** + * The operation failed. + */ + @Generated + public static final TelephonyCallLifecycleEventOutcome FAILED = fromString("failed"); + + /** + * The operation or call was rejected. + */ + @Generated + public static final TelephonyCallLifecycleEventOutcome REJECTED = fromString("rejected"); + + /** + * The operation was cancelled. + */ + @Generated + public static final TelephonyCallLifecycleEventOutcome CANCELLED = fromString("cancelled"); + + /** + * Creates a new instance of TelephonyCallLifecycleEventOutcome value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallLifecycleEventOutcome() { + } + + /** + * Creates or finds a TelephonyCallLifecycleEventOutcome from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallLifecycleEventOutcome. + */ + @Generated + public static TelephonyCallLifecycleEventOutcome fromString(String name) { + return fromString(name, TelephonyCallLifecycleEventOutcome.class); + } + + /** + * Gets known TelephonyCallLifecycleEventOutcome values. + * + * @return known TelephonyCallLifecycleEventOutcome values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallLifecycleEventOutcome.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventSource.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventSource.java new file mode 100644 index 000000000000..4e9878efba3e --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventSource.java @@ -0,0 +1,69 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The component that supplied a telephony lifecycle observation. + */ +public final class TelephonyCallLifecycleEventSource extends ExpandableStringEnum { + /** + * The Foundry telephony gateway supplied the observation. + */ + @Generated + public static final TelephonyCallLifecycleEventSource GATEWAY = fromString("gateway"); + + /** + * Microsoft Teams Phone Extension supplied the observation. + */ + @Generated + public static final TelephonyCallLifecycleEventSource TEAMS_PHONE_EXTENSION = fromString("teams_phone_extension"); + + /** + * Twilio supplied the observation. + */ + @Generated + public static final TelephonyCallLifecycleEventSource TWILIO = fromString("twilio"); + + /** + * The voice-agent runtime supplied the observation. + */ + @Generated + public static final TelephonyCallLifecycleEventSource VOICE_AGENT = fromString("voice_agent"); + + /** + * Creates a new instance of TelephonyCallLifecycleEventSource value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallLifecycleEventSource() { + } + + /** + * Creates or finds a TelephonyCallLifecycleEventSource from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallLifecycleEventSource. + */ + @Generated + public static TelephonyCallLifecycleEventSource fromString(String name) { + return fromString(name, TelephonyCallLifecycleEventSource.class); + } + + /** + * Gets known TelephonyCallLifecycleEventSource values. + * + * @return known TelephonyCallLifecycleEventSource values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallLifecycleEventSource.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallPhase.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallPhase.java new file mode 100644 index 000000000000..9c5d39676180 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallPhase.java @@ -0,0 +1,117 @@ +// 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 provider-neutral phase reached by an inbound telephony call. + */ +public final class TelephonyCallPhase extends ExpandableStringEnum { + /** + * The provider webhook was received. + */ + @Generated + public static final TelephonyCallPhase RECEIVED = fromString("received"); + + /** + * The provider webhook was validated. + */ + @Generated + public static final TelephonyCallPhase VALIDATED = fromString("validated"); + + /** + * The call was admitted to a configured agent binding. + */ + @Generated + public static final TelephonyCallPhase ADMITTED = fromString("admitted"); + + /** + * The provider was asked to answer the call. + */ + @Generated + public static final TelephonyCallPhase ANSWERING = fromString("answering"); + + /** + * The provider reported that the call was answered. + */ + @Generated + public static final TelephonyCallPhase ANSWERED = fromString("answered"); + + /** + * The provider media channel was connected. + */ + @Generated + public static final TelephonyCallPhase MEDIA_CONNECTED = fromString("media_connected"); + + /** + * The voice-agent session was ready. + */ + @Generated + public static final TelephonyCallPhase AGENT_SESSION_READY = fromString("agent_session_ready"); + + /** + * Media was actively bridged between the caller and the voice agent. + */ + @Generated + public static final TelephonyCallPhase BRIDGING = fromString("bridging"); + + /** + * A mid-call management command was in progress. + */ + @Generated + public static final TelephonyCallPhase MANAGING = fromString("managing"); + + /** + * The call completed. + */ + @Generated + public static final TelephonyCallPhase COMPLETED = fromString("completed"); + + /** + * The call was rejected before admission or answer. + */ + @Generated + public static final TelephonyCallPhase REJECTED = fromString("rejected"); + + /** + * The call failed. + */ + @Generated + public static final TelephonyCallPhase FAILED = fromString("failed"); + + /** + * Creates a new instance of TelephonyCallPhase value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallPhase() { + } + + /** + * Creates or finds a TelephonyCallPhase from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallPhase. + */ + @Generated + public static TelephonyCallPhase fromString(String name) { + return fromString(name, TelephonyCallPhase.class); + } + + /** + * Gets known TelephonyCallPhase values. + * + * @return known TelephonyCallPhase values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallPhase.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallRecord.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallRecord.java new file mode 100644 index 000000000000..11ef9bec79a0 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallRecord.java @@ -0,0 +1,537 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.util.List; + +/** + * Detailed diagnostics for a durable inbound call to a voice agent. + */ +@Immutable +public final class TelephonyCallRecord implements JsonSerializable { + /* + * The service-generated call identifier. + */ + @Generated + private final String id; + + /* + * The telephony provider. + */ + @Generated + private final TelephonyProvider provider; + + /* + * The provider-assigned call identifier, when available. + */ + @Generated + private String providerCallId; + + /* + * The caller's phone number, when supplied by the provider. + */ + @Generated + private String callerNumber; + + /* + * The Teams Phone Extension or Twilio number that received the call. + */ + @Generated + private String providerNumber; + + /* + * The lifecycle status of the call. + */ + @Generated + private final TelephonyCallStatus status; + + /* + * The provider-neutral lifecycle phase reached by the call. + */ + @Generated + private final TelephonyCallPhase phase; + + /* + * The Unix timestamp (in seconds) for when the inbound webhook was received. + */ + @Generated + private final long startedAt; + + /* + * The Unix timestamp (in seconds) for when the provider reported the call as answered. + */ + @Generated + private Long answeredAt; + + /* + * The Unix timestamp (in seconds) for when the provider media channel connected. + */ + @Generated + private Long mediaConnectedAt; + + /* + * The Unix timestamp (in seconds) for when the voice-agent session became ready. + */ + @Generated + private Long agentSessionReadyAt; + + /* + * The Unix timestamp (in seconds) for when the call ended. + */ + @Generated + private Long endedAt; + + /* + * The call duration in seconds. + */ + @Generated + private Long durationSeconds; + + /* + * The service-generated reason that the call ended. + */ + @Generated + private String endReason; + + /* + * The provider status code associated with the terminal result. + */ + @Generated + private Integer providerStatusCode; + + /* + * The provider subcode associated with the terminal result. + */ + @Generated + private Integer providerSubCode; + + /* + * The provider message associated with the terminal result. + */ + @Generated + private String providerMessage; + + /* + * Detailed provider-neutral call timing. + */ + @Generated + private final TelephonyCallTiming timing; + + /* + * Correlation to the customer-facing Foundry trace. + */ + @Generated + private TelephonyCallTrace trace; + + /* + * The bounded lifecycle timeline. + */ + @Generated + private final List events; + + /* + * Whether older lifecycle events were omitted because the bounded event limit was reached. + */ + @Generated + private final boolean eventsTruncated; + + /** + * Creates an instance of TelephonyCallRecord class. + * + * @param id the id value to set. + * @param provider the provider value to set. + * @param status the status value to set. + * @param phase the phase value to set. + * @param startedAt the startedAt value to set. + * @param timing the timing value to set. + * @param events the events value to set. + * @param eventsTruncated the eventsTruncated value to set. + */ + @Generated + private TelephonyCallRecord(String id, TelephonyProvider provider, TelephonyCallStatus status, + TelephonyCallPhase phase, OffsetDateTime startedAt, TelephonyCallTiming timing, + List events, boolean eventsTruncated) { + this.id = id; + this.provider = provider; + this.status = status; + this.phase = phase; + if (startedAt == null) { + this.startedAt = 0L; + } else { + this.startedAt = startedAt.toEpochSecond(); + } + this.timing = timing; + this.events = events; + this.eventsTruncated = eventsTruncated; + } + + /** + * Get the id property: The service-generated call identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the provider property: The telephony provider. + * + * @return the provider value. + */ + @Generated + public TelephonyProvider getProvider() { + return this.provider; + } + + /** + * Get the providerCallId property: The provider-assigned call identifier, when available. + * + * @return the providerCallId value. + */ + @Generated + public String getProviderCallId() { + return this.providerCallId; + } + + /** + * Get the callerNumber property: The caller's phone number, when supplied by the provider. + * + * @return the callerNumber value. + */ + @Generated + public String getCallerNumber() { + return this.callerNumber; + } + + /** + * Get the providerNumber property: The Teams Phone Extension or Twilio number that received the call. + * + * @return the providerNumber value. + */ + @Generated + public String getProviderNumber() { + return this.providerNumber; + } + + /** + * Get the status property: The lifecycle status of the call. + * + * @return the status value. + */ + @Generated + public TelephonyCallStatus getStatus() { + return this.status; + } + + /** + * Get the phase property: The provider-neutral lifecycle phase reached by the call. + * + * @return the phase value. + */ + @Generated + public TelephonyCallPhase getPhase() { + return this.phase; + } + + /** + * Get the startedAt property: The Unix timestamp (in seconds) for when the inbound webhook was received. + * + * @return the startedAt value. + */ + @Generated + public OffsetDateTime getStartedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.startedAt), ZoneOffset.UTC); + } + + /** + * Get the answeredAt property: The Unix timestamp (in seconds) for when the provider reported the call as answered. + * + * @return the answeredAt value. + */ + @Generated + public OffsetDateTime getAnsweredAt() { + if (this.answeredAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.answeredAt), ZoneOffset.UTC); + } + + /** + * Get the mediaConnectedAt property: The Unix timestamp (in seconds) for when the provider media channel connected. + * + * @return the mediaConnectedAt value. + */ + @Generated + public OffsetDateTime getMediaConnectedAt() { + if (this.mediaConnectedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.mediaConnectedAt), ZoneOffset.UTC); + } + + /** + * Get the agentSessionReadyAt property: The Unix timestamp (in seconds) for when the voice-agent session became + * ready. + * + * @return the agentSessionReadyAt value. + */ + @Generated + public OffsetDateTime getAgentSessionReadyAt() { + if (this.agentSessionReadyAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.agentSessionReadyAt), ZoneOffset.UTC); + } + + /** + * Get the endedAt property: The Unix timestamp (in seconds) for when the call ended. + * + * @return the endedAt value. + */ + @Generated + public OffsetDateTime getEndedAt() { + if (this.endedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.endedAt), ZoneOffset.UTC); + } + + /** + * Get the durationSeconds property: The call duration in seconds. + * + * @return the durationSeconds value. + */ + @Generated + public Long getDurationSeconds() { + return this.durationSeconds; + } + + /** + * Get the endReason property: The service-generated reason that the call ended. + * + * @return the endReason value. + */ + @Generated + public String getEndReason() { + return this.endReason; + } + + /** + * Get the providerStatusCode property: The provider status code associated with the terminal result. + * + * @return the providerStatusCode value. + */ + @Generated + public Integer getProviderStatusCode() { + return this.providerStatusCode; + } + + /** + * Get the providerSubCode property: The provider subcode associated with the terminal result. + * + * @return the providerSubCode value. + */ + @Generated + public Integer getProviderSubCode() { + return this.providerSubCode; + } + + /** + * Get the providerMessage property: The provider message associated with the terminal result. + * + * @return the providerMessage value. + */ + @Generated + public String getProviderMessage() { + return this.providerMessage; + } + + /** + * Get the timing property: Detailed provider-neutral call timing. + * + * @return the timing value. + */ + @Generated + public TelephonyCallTiming getTiming() { + return this.timing; + } + + /** + * Get the trace property: Correlation to the customer-facing Foundry trace. + * + * @return the trace value. + */ + @Generated + public TelephonyCallTrace getTrace() { + return this.trace; + } + + /** + * Get the events property: The bounded lifecycle timeline. + * + * @return the events value. + */ + @Generated + public List getEvents() { + return this.events; + } + + /** + * Get the eventsTruncated property: Whether older lifecycle events were omitted because the bounded event limit was + * reached. + * + * @return the eventsTruncated value. + */ + @Generated + public boolean isEventsTruncated() { + return this.eventsTruncated; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("provider", this.provider == null ? null : this.provider.toString()); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("phase", this.phase == null ? null : this.phase.toString()); + jsonWriter.writeLongField("started_at", this.startedAt); + jsonWriter.writeJsonField("timing", this.timing); + jsonWriter.writeArrayField("events", this.events, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeBooleanField("events_truncated", this.eventsTruncated); + jsonWriter.writeStringField("provider_call_id", this.providerCallId); + jsonWriter.writeStringField("caller_number", this.callerNumber); + jsonWriter.writeStringField("provider_number", this.providerNumber); + jsonWriter.writeNumberField("answered_at", this.answeredAt); + jsonWriter.writeNumberField("media_connected_at", this.mediaConnectedAt); + jsonWriter.writeNumberField("agent_session_ready_at", this.agentSessionReadyAt); + jsonWriter.writeNumberField("ended_at", this.endedAt); + jsonWriter.writeNumberField("duration_seconds", this.durationSeconds); + jsonWriter.writeStringField("end_reason", this.endReason); + jsonWriter.writeNumberField("provider_status_code", this.providerStatusCode); + jsonWriter.writeNumberField("provider_sub_code", this.providerSubCode); + jsonWriter.writeStringField("provider_message", this.providerMessage); + jsonWriter.writeJsonField("trace", this.trace); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyCallRecord from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyCallRecord 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 TelephonyCallRecord. + */ + @Generated + public static TelephonyCallRecord fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + TelephonyProvider provider = null; + TelephonyCallStatus status = null; + TelephonyCallPhase phase = null; + OffsetDateTime startedAt = null; + TelephonyCallTiming timing = null; + List events = null; + boolean eventsTruncated = false; + String providerCallId = null; + String callerNumber = null; + String providerNumber = null; + Long answeredAt = null; + Long mediaConnectedAt = null; + Long agentSessionReadyAt = null; + Long endedAt = null; + Long durationSeconds = null; + String endReason = null; + Integer providerStatusCode = null; + Integer providerSubCode = null; + String providerMessage = null; + TelephonyCallTrace trace = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("provider".equals(fieldName)) { + provider = TelephonyProvider.fromString(reader.getString()); + } else if ("status".equals(fieldName)) { + status = TelephonyCallStatus.fromString(reader.getString()); + } else if ("phase".equals(fieldName)) { + phase = TelephonyCallPhase.fromString(reader.getString()); + } else if ("started_at".equals(fieldName)) { + startedAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else if ("timing".equals(fieldName)) { + timing = TelephonyCallTiming.fromJson(reader); + } else if ("events".equals(fieldName)) { + events = reader.readArray(reader1 -> TelephonyCallLifecycleEvent.fromJson(reader1)); + } else if ("events_truncated".equals(fieldName)) { + eventsTruncated = reader.getBoolean(); + } else if ("provider_call_id".equals(fieldName)) { + providerCallId = reader.getString(); + } else if ("caller_number".equals(fieldName)) { + callerNumber = reader.getString(); + } else if ("provider_number".equals(fieldName)) { + providerNumber = reader.getString(); + } else if ("answered_at".equals(fieldName)) { + answeredAt = reader.getNullable(JsonReader::getLong); + } else if ("media_connected_at".equals(fieldName)) { + mediaConnectedAt = reader.getNullable(JsonReader::getLong); + } else if ("agent_session_ready_at".equals(fieldName)) { + agentSessionReadyAt = reader.getNullable(JsonReader::getLong); + } else if ("ended_at".equals(fieldName)) { + endedAt = reader.getNullable(JsonReader::getLong); + } else if ("duration_seconds".equals(fieldName)) { + durationSeconds = reader.getNullable(JsonReader::getLong); + } else if ("end_reason".equals(fieldName)) { + endReason = reader.getString(); + } else if ("provider_status_code".equals(fieldName)) { + providerStatusCode = reader.getNullable(JsonReader::getInt); + } else if ("provider_sub_code".equals(fieldName)) { + providerSubCode = reader.getNullable(JsonReader::getInt); + } else if ("provider_message".equals(fieldName)) { + providerMessage = reader.getString(); + } else if ("trace".equals(fieldName)) { + trace = TelephonyCallTrace.fromJson(reader); + } else { + reader.skipChildren(); + } + } + TelephonyCallRecord deserializedTelephonyCallRecord + = new TelephonyCallRecord(id, provider, status, phase, startedAt, timing, events, eventsTruncated); + deserializedTelephonyCallRecord.providerCallId = providerCallId; + deserializedTelephonyCallRecord.callerNumber = callerNumber; + deserializedTelephonyCallRecord.providerNumber = providerNumber; + deserializedTelephonyCallRecord.answeredAt = answeredAt; + deserializedTelephonyCallRecord.mediaConnectedAt = mediaConnectedAt; + deserializedTelephonyCallRecord.agentSessionReadyAt = agentSessionReadyAt; + deserializedTelephonyCallRecord.endedAt = endedAt; + deserializedTelephonyCallRecord.durationSeconds = durationSeconds; + deserializedTelephonyCallRecord.endReason = endReason; + deserializedTelephonyCallRecord.providerStatusCode = providerStatusCode; + deserializedTelephonyCallRecord.providerSubCode = providerSubCode; + deserializedTelephonyCallRecord.providerMessage = providerMessage; + deserializedTelephonyCallRecord.trace = trace; + + return deserializedTelephonyCallRecord; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallStatus.java new file mode 100644 index 000000000000..aa72b6bd11ce --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallStatus.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 lifecycle status of an inbound telephony call. + */ +public final class TelephonyCallStatus extends ExpandableStringEnum { + /** + * The call has started and has not reached a terminal state. + */ + @Generated + public static final TelephonyCallStatus IN_PROGRESS = fromString("in_progress"); + + /** + * The call ended successfully. + */ + @Generated + public static final TelephonyCallStatus SUCCESS = fromString("success"); + + /** + * The call ended because of a provider or management failure. + */ + @Generated + public static final TelephonyCallStatus FAILED = fromString("failed"); + + /** + * Creates a new instance of TelephonyCallStatus value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallStatus() { + } + + /** + * Creates or finds a TelephonyCallStatus from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallStatus. + */ + @Generated + public static TelephonyCallStatus fromString(String name) { + return fromString(name, TelephonyCallStatus.class); + } + + /** + * Gets known TelephonyCallStatus values. + * + * @return known TelephonyCallStatus values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallStatus.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallSummary.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallSummary.java new file mode 100644 index 000000000000..7416e476641a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallSummary.java @@ -0,0 +1,447 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.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 summary of a durable inbound call to a voice agent. + */ +@Immutable +public final class TelephonyCallSummary implements JsonSerializable { + /* + * The service-generated call identifier. + */ + @Generated + private final String id; + + /* + * The telephony provider. + */ + @Generated + private final TelephonyProvider provider; + + /* + * The provider-assigned call identifier, when available. + */ + @Generated + private String providerCallId; + + /* + * The caller's phone number, when supplied by the provider. + */ + @Generated + private String callerNumber; + + /* + * The Teams Phone Extension or Twilio number that received the call. + */ + @Generated + private String providerNumber; + + /* + * The lifecycle status of the call. + */ + @Generated + private final TelephonyCallStatus status; + + /* + * The provider-neutral lifecycle phase reached by the call. + */ + @Generated + private final TelephonyCallPhase phase; + + /* + * The Unix timestamp (in seconds) for when the inbound webhook was received. + */ + @Generated + private final long startedAt; + + /* + * The Unix timestamp (in seconds) for when the provider reported the call as answered. + */ + @Generated + private Long answeredAt; + + /* + * The Unix timestamp (in seconds) for when the provider media channel connected. + */ + @Generated + private Long mediaConnectedAt; + + /* + * The Unix timestamp (in seconds) for when the voice-agent session became ready. + */ + @Generated + private Long agentSessionReadyAt; + + /* + * The Unix timestamp (in seconds) for when the call ended. + */ + @Generated + private Long endedAt; + + /* + * The call duration in seconds. + */ + @Generated + private Long durationSeconds; + + /* + * The service-generated reason that the call ended. + */ + @Generated + private String endReason; + + /* + * The provider status code associated with the terminal result. + */ + @Generated + private Integer providerStatusCode; + + /* + * The provider subcode associated with the terminal result. + */ + @Generated + private Integer providerSubCode; + + /* + * The provider message associated with the terminal result. + */ + @Generated + private String providerMessage; + + /** + * Creates an instance of TelephonyCallSummary class. + * + * @param id the id value to set. + * @param provider the provider value to set. + * @param status the status value to set. + * @param phase the phase value to set. + * @param startedAt the startedAt value to set. + */ + @Generated + private TelephonyCallSummary(String id, TelephonyProvider provider, TelephonyCallStatus status, + TelephonyCallPhase phase, OffsetDateTime startedAt) { + this.id = id; + this.provider = provider; + this.status = status; + this.phase = phase; + if (startedAt == null) { + this.startedAt = 0L; + } else { + this.startedAt = startedAt.toEpochSecond(); + } + } + + /** + * Get the id property: The service-generated call identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the provider property: The telephony provider. + * + * @return the provider value. + */ + @Generated + public TelephonyProvider getProvider() { + return this.provider; + } + + /** + * Get the providerCallId property: The provider-assigned call identifier, when available. + * + * @return the providerCallId value. + */ + @Generated + public String getProviderCallId() { + return this.providerCallId; + } + + /** + * Get the callerNumber property: The caller's phone number, when supplied by the provider. + * + * @return the callerNumber value. + */ + @Generated + public String getCallerNumber() { + return this.callerNumber; + } + + /** + * Get the providerNumber property: The Teams Phone Extension or Twilio number that received the call. + * + * @return the providerNumber value. + */ + @Generated + public String getProviderNumber() { + return this.providerNumber; + } + + /** + * Get the status property: The lifecycle status of the call. + * + * @return the status value. + */ + @Generated + public TelephonyCallStatus getStatus() { + return this.status; + } + + /** + * Get the phase property: The provider-neutral lifecycle phase reached by the call. + * + * @return the phase value. + */ + @Generated + public TelephonyCallPhase getPhase() { + return this.phase; + } + + /** + * Get the startedAt property: The Unix timestamp (in seconds) for when the inbound webhook was received. + * + * @return the startedAt value. + */ + @Generated + public OffsetDateTime getStartedAt() { + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.startedAt), ZoneOffset.UTC); + } + + /** + * Get the answeredAt property: The Unix timestamp (in seconds) for when the provider reported the call as answered. + * + * @return the answeredAt value. + */ + @Generated + public OffsetDateTime getAnsweredAt() { + if (this.answeredAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.answeredAt), ZoneOffset.UTC); + } + + /** + * Get the mediaConnectedAt property: The Unix timestamp (in seconds) for when the provider media channel connected. + * + * @return the mediaConnectedAt value. + */ + @Generated + public OffsetDateTime getMediaConnectedAt() { + if (this.mediaConnectedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.mediaConnectedAt), ZoneOffset.UTC); + } + + /** + * Get the agentSessionReadyAt property: The Unix timestamp (in seconds) for when the voice-agent session became + * ready. + * + * @return the agentSessionReadyAt value. + */ + @Generated + public OffsetDateTime getAgentSessionReadyAt() { + if (this.agentSessionReadyAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.agentSessionReadyAt), ZoneOffset.UTC); + } + + /** + * Get the endedAt property: The Unix timestamp (in seconds) for when the call ended. + * + * @return the endedAt value. + */ + @Generated + public OffsetDateTime getEndedAt() { + if (this.endedAt == null) { + return null; + } + return OffsetDateTime.ofInstant(Instant.ofEpochSecond(this.endedAt), ZoneOffset.UTC); + } + + /** + * Get the durationSeconds property: The call duration in seconds. + * + * @return the durationSeconds value. + */ + @Generated + public Long getDurationSeconds() { + return this.durationSeconds; + } + + /** + * Get the endReason property: The service-generated reason that the call ended. + * + * @return the endReason value. + */ + @Generated + public String getEndReason() { + return this.endReason; + } + + /** + * Get the providerStatusCode property: The provider status code associated with the terminal result. + * + * @return the providerStatusCode value. + */ + @Generated + public Integer getProviderStatusCode() { + return this.providerStatusCode; + } + + /** + * Get the providerSubCode property: The provider subcode associated with the terminal result. + * + * @return the providerSubCode value. + */ + @Generated + public Integer getProviderSubCode() { + return this.providerSubCode; + } + + /** + * Get the providerMessage property: The provider message associated with the terminal result. + * + * @return the providerMessage value. + */ + @Generated + public String getProviderMessage() { + return this.providerMessage; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("provider", this.provider == null ? null : this.provider.toString()); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("phase", this.phase == null ? null : this.phase.toString()); + jsonWriter.writeLongField("started_at", this.startedAt); + jsonWriter.writeStringField("provider_call_id", this.providerCallId); + jsonWriter.writeStringField("caller_number", this.callerNumber); + jsonWriter.writeStringField("provider_number", this.providerNumber); + jsonWriter.writeNumberField("answered_at", this.answeredAt); + jsonWriter.writeNumberField("media_connected_at", this.mediaConnectedAt); + jsonWriter.writeNumberField("agent_session_ready_at", this.agentSessionReadyAt); + jsonWriter.writeNumberField("ended_at", this.endedAt); + jsonWriter.writeNumberField("duration_seconds", this.durationSeconds); + jsonWriter.writeStringField("end_reason", this.endReason); + jsonWriter.writeNumberField("provider_status_code", this.providerStatusCode); + jsonWriter.writeNumberField("provider_sub_code", this.providerSubCode); + jsonWriter.writeStringField("provider_message", this.providerMessage); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyCallSummary from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyCallSummary 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 TelephonyCallSummary. + */ + @Generated + public static TelephonyCallSummary fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + TelephonyProvider provider = null; + TelephonyCallStatus status = null; + TelephonyCallPhase phase = null; + OffsetDateTime startedAt = null; + String providerCallId = null; + String callerNumber = null; + String providerNumber = null; + Long answeredAt = null; + Long mediaConnectedAt = null; + Long agentSessionReadyAt = null; + Long endedAt = null; + Long durationSeconds = null; + String endReason = null; + Integer providerStatusCode = null; + Integer providerSubCode = null; + String providerMessage = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("provider".equals(fieldName)) { + provider = TelephonyProvider.fromString(reader.getString()); + } else if ("status".equals(fieldName)) { + status = TelephonyCallStatus.fromString(reader.getString()); + } else if ("phase".equals(fieldName)) { + phase = TelephonyCallPhase.fromString(reader.getString()); + } else if ("started_at".equals(fieldName)) { + startedAt = OffsetDateTime.ofInstant(Instant.ofEpochSecond(reader.getLong()), ZoneOffset.UTC); + } else if ("provider_call_id".equals(fieldName)) { + providerCallId = reader.getString(); + } else if ("caller_number".equals(fieldName)) { + callerNumber = reader.getString(); + } else if ("provider_number".equals(fieldName)) { + providerNumber = reader.getString(); + } else if ("answered_at".equals(fieldName)) { + answeredAt = reader.getNullable(JsonReader::getLong); + } else if ("media_connected_at".equals(fieldName)) { + mediaConnectedAt = reader.getNullable(JsonReader::getLong); + } else if ("agent_session_ready_at".equals(fieldName)) { + agentSessionReadyAt = reader.getNullable(JsonReader::getLong); + } else if ("ended_at".equals(fieldName)) { + endedAt = reader.getNullable(JsonReader::getLong); + } else if ("duration_seconds".equals(fieldName)) { + durationSeconds = reader.getNullable(JsonReader::getLong); + } else if ("end_reason".equals(fieldName)) { + endReason = reader.getString(); + } else if ("provider_status_code".equals(fieldName)) { + providerStatusCode = reader.getNullable(JsonReader::getInt); + } else if ("provider_sub_code".equals(fieldName)) { + providerSubCode = reader.getNullable(JsonReader::getInt); + } else if ("provider_message".equals(fieldName)) { + providerMessage = reader.getString(); + } else { + reader.skipChildren(); + } + } + TelephonyCallSummary deserializedTelephonyCallSummary + = new TelephonyCallSummary(id, provider, status, phase, startedAt); + deserializedTelephonyCallSummary.providerCallId = providerCallId; + deserializedTelephonyCallSummary.callerNumber = callerNumber; + deserializedTelephonyCallSummary.providerNumber = providerNumber; + deserializedTelephonyCallSummary.answeredAt = answeredAt; + deserializedTelephonyCallSummary.mediaConnectedAt = mediaConnectedAt; + deserializedTelephonyCallSummary.agentSessionReadyAt = agentSessionReadyAt; + deserializedTelephonyCallSummary.endedAt = endedAt; + deserializedTelephonyCallSummary.durationSeconds = durationSeconds; + deserializedTelephonyCallSummary.endReason = endReason; + deserializedTelephonyCallSummary.providerStatusCode = providerStatusCode; + deserializedTelephonyCallSummary.providerSubCode = providerSubCode; + deserializedTelephonyCallSummary.providerMessage = providerMessage; + + return deserializedTelephonyCallSummary; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTimestampSource.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTimestampSource.java new file mode 100644 index 000000000000..fe2b53b101fe --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTimestampSource.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 source of a telephony lifecycle timestamp. + */ +public final class TelephonyCallTimestampSource extends ExpandableStringEnum { + /** + * The telephony provider supplied the timestamp. + */ + @Generated + public static final TelephonyCallTimestampSource PROVIDER = fromString("provider"); + + /** + * The Foundry telephony gateway observed the event. + */ + @Generated + public static final TelephonyCallTimestampSource GATEWAY = fromString("gateway"); + + /** + * The service derived the timestamp from another observation. + */ + @Generated + public static final TelephonyCallTimestampSource DERIVED = fromString("derived"); + + /** + * Creates a new instance of TelephonyCallTimestampSource value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallTimestampSource() { + } + + /** + * Creates or finds a TelephonyCallTimestampSource from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallTimestampSource. + */ + @Generated + public static TelephonyCallTimestampSource fromString(String name) { + return fromString(name, TelephonyCallTimestampSource.class); + } + + /** + * Gets known TelephonyCallTimestampSource values. + * + * @return known TelephonyCallTimestampSource values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallTimestampSource.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTiming.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTiming.java new file mode 100644 index 000000000000..03fcffa6e30a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTiming.java @@ -0,0 +1,322 @@ +// 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; + +/** + * Detailed provider-neutral timing for an inbound telephony call. Millisecond values are Unix timestamps. + */ +@Immutable +public final class TelephonyCallTiming implements JsonSerializable { + /* + * When the provider webhook was received, as Unix time in milliseconds. + */ + @Generated + private Long receivedAtMs; + + /* + * When webhook validation completed, as Unix time in milliseconds. + */ + @Generated + private Long validatedAtMs; + + /* + * When the call was admitted to an agent binding, as Unix time in milliseconds. + */ + @Generated + private Long admittedAtMs; + + /* + * When the service requested that the provider answer the call, as Unix time in milliseconds. + */ + @Generated + private Long answerRequestedAtMs; + + /* + * When the provider reported that the call was answered, as Unix time in milliseconds. + */ + @Generated + private Long answeredAtMs; + + /* + * When the provider media channel connected, as Unix time in milliseconds. + */ + @Generated + private Long mediaConnectedAtMs; + + /* + * When the voice-agent session became ready, as Unix time in milliseconds. + */ + @Generated + private Long agentSessionReadyAtMs; + + /* + * When caller audio was first observed, as Unix time in milliseconds. + */ + @Generated + private Long firstCallerAudioAtMs; + + /* + * When agent audio was first observed, as Unix time in milliseconds. + */ + @Generated + private Long firstAgentAudioAtMs; + + /* + * When the call reached a terminal state, as Unix time in milliseconds. + */ + @Generated + private Long endedAtMs; + + /* + * The timestamp used as the basis for duration. + */ + @Generated + private TelephonyCallDurationBasis durationBasis; + + /* + * The primary source of the timing milestones. Individual lifecycle events identify their own timestamp source + * separately. + */ + @Generated + private final TelephonyCallTimestampSource timestampSource; + + /** + * Creates an instance of TelephonyCallTiming class. + * + * @param timestampSource the timestampSource value to set. + */ + @Generated + private TelephonyCallTiming(TelephonyCallTimestampSource timestampSource) { + this.timestampSource = timestampSource; + } + + /** + * Get the receivedAtMs property: When the provider webhook was received, as Unix time in milliseconds. + * + * @return the receivedAtMs value. + */ + @Generated + public Long getReceivedAtMs() { + return this.receivedAtMs; + } + + /** + * Get the validatedAtMs property: When webhook validation completed, as Unix time in milliseconds. + * + * @return the validatedAtMs value. + */ + @Generated + public Long getValidatedAtMs() { + return this.validatedAtMs; + } + + /** + * Get the admittedAtMs property: When the call was admitted to an agent binding, as Unix time in milliseconds. + * + * @return the admittedAtMs value. + */ + @Generated + public Long getAdmittedAtMs() { + return this.admittedAtMs; + } + + /** + * Get the answerRequestedAtMs property: When the service requested that the provider answer the call, as Unix time + * in milliseconds. + * + * @return the answerRequestedAtMs value. + */ + @Generated + public Long getAnswerRequestedAtMs() { + return this.answerRequestedAtMs; + } + + /** + * Get the answeredAtMs property: When the provider reported that the call was answered, as Unix time in + * milliseconds. + * + * @return the answeredAtMs value. + */ + @Generated + public Long getAnsweredAtMs() { + return this.answeredAtMs; + } + + /** + * Get the mediaConnectedAtMs property: When the provider media channel connected, as Unix time in milliseconds. + * + * @return the mediaConnectedAtMs value. + */ + @Generated + public Long getMediaConnectedAtMs() { + return this.mediaConnectedAtMs; + } + + /** + * Get the agentSessionReadyAtMs property: When the voice-agent session became ready, as Unix time in milliseconds. + * + * @return the agentSessionReadyAtMs value. + */ + @Generated + public Long getAgentSessionReadyAtMs() { + return this.agentSessionReadyAtMs; + } + + /** + * Get the firstCallerAudioAtMs property: When caller audio was first observed, as Unix time in milliseconds. + * + * @return the firstCallerAudioAtMs value. + */ + @Generated + public Long getFirstCallerAudioAtMs() { + return this.firstCallerAudioAtMs; + } + + /** + * Get the firstAgentAudioAtMs property: When agent audio was first observed, as Unix time in milliseconds. + * + * @return the firstAgentAudioAtMs value. + */ + @Generated + public Long getFirstAgentAudioAtMs() { + return this.firstAgentAudioAtMs; + } + + /** + * Get the endedAtMs property: When the call reached a terminal state, as Unix time in milliseconds. + * + * @return the endedAtMs value. + */ + @Generated + public Long getEndedAtMs() { + return this.endedAtMs; + } + + /** + * Get the durationBasis property: The timestamp used as the basis for duration. + * + * @return the durationBasis value. + */ + @Generated + public TelephonyCallDurationBasis getDurationBasis() { + return this.durationBasis; + } + + /** + * Get the timestampSource property: The primary source of the timing milestones. Individual lifecycle events + * identify their own timestamp source separately. + * + * @return the timestampSource value. + */ + @Generated + public TelephonyCallTimestampSource getTimestampSource() { + return this.timestampSource; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("timestamp_source", + this.timestampSource == null ? null : this.timestampSource.toString()); + jsonWriter.writeNumberField("received_at_ms", this.receivedAtMs); + jsonWriter.writeNumberField("validated_at_ms", this.validatedAtMs); + jsonWriter.writeNumberField("admitted_at_ms", this.admittedAtMs); + jsonWriter.writeNumberField("answer_requested_at_ms", this.answerRequestedAtMs); + jsonWriter.writeNumberField("answered_at_ms", this.answeredAtMs); + jsonWriter.writeNumberField("media_connected_at_ms", this.mediaConnectedAtMs); + jsonWriter.writeNumberField("agent_session_ready_at_ms", this.agentSessionReadyAtMs); + jsonWriter.writeNumberField("first_caller_audio_at_ms", this.firstCallerAudioAtMs); + jsonWriter.writeNumberField("first_agent_audio_at_ms", this.firstAgentAudioAtMs); + jsonWriter.writeNumberField("ended_at_ms", this.endedAtMs); + jsonWriter.writeStringField("duration_basis", + this.durationBasis == null ? null : this.durationBasis.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyCallTiming from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyCallTiming 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 TelephonyCallTiming. + */ + @Generated + public static TelephonyCallTiming fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + TelephonyCallTimestampSource timestampSource = null; + Long receivedAtMs = null; + Long validatedAtMs = null; + Long admittedAtMs = null; + Long answerRequestedAtMs = null; + Long answeredAtMs = null; + Long mediaConnectedAtMs = null; + Long agentSessionReadyAtMs = null; + Long firstCallerAudioAtMs = null; + Long firstAgentAudioAtMs = null; + Long endedAtMs = null; + TelephonyCallDurationBasis durationBasis = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("timestamp_source".equals(fieldName)) { + timestampSource = TelephonyCallTimestampSource.fromString(reader.getString()); + } else if ("received_at_ms".equals(fieldName)) { + receivedAtMs = reader.getNullable(JsonReader::getLong); + } else if ("validated_at_ms".equals(fieldName)) { + validatedAtMs = reader.getNullable(JsonReader::getLong); + } else if ("admitted_at_ms".equals(fieldName)) { + admittedAtMs = reader.getNullable(JsonReader::getLong); + } else if ("answer_requested_at_ms".equals(fieldName)) { + answerRequestedAtMs = reader.getNullable(JsonReader::getLong); + } else if ("answered_at_ms".equals(fieldName)) { + answeredAtMs = reader.getNullable(JsonReader::getLong); + } else if ("media_connected_at_ms".equals(fieldName)) { + mediaConnectedAtMs = reader.getNullable(JsonReader::getLong); + } else if ("agent_session_ready_at_ms".equals(fieldName)) { + agentSessionReadyAtMs = reader.getNullable(JsonReader::getLong); + } else if ("first_caller_audio_at_ms".equals(fieldName)) { + firstCallerAudioAtMs = reader.getNullable(JsonReader::getLong); + } else if ("first_agent_audio_at_ms".equals(fieldName)) { + firstAgentAudioAtMs = reader.getNullable(JsonReader::getLong); + } else if ("ended_at_ms".equals(fieldName)) { + endedAtMs = reader.getNullable(JsonReader::getLong); + } else if ("duration_basis".equals(fieldName)) { + durationBasis = TelephonyCallDurationBasis.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + TelephonyCallTiming deserializedTelephonyCallTiming = new TelephonyCallTiming(timestampSource); + deserializedTelephonyCallTiming.receivedAtMs = receivedAtMs; + deserializedTelephonyCallTiming.validatedAtMs = validatedAtMs; + deserializedTelephonyCallTiming.admittedAtMs = admittedAtMs; + deserializedTelephonyCallTiming.answerRequestedAtMs = answerRequestedAtMs; + deserializedTelephonyCallTiming.answeredAtMs = answeredAtMs; + deserializedTelephonyCallTiming.mediaConnectedAtMs = mediaConnectedAtMs; + deserializedTelephonyCallTiming.agentSessionReadyAtMs = agentSessionReadyAtMs; + deserializedTelephonyCallTiming.firstCallerAudioAtMs = firstCallerAudioAtMs; + deserializedTelephonyCallTiming.firstAgentAudioAtMs = firstAgentAudioAtMs; + deserializedTelephonyCallTiming.endedAtMs = endedAtMs; + deserializedTelephonyCallTiming.durationBasis = durationBasis; + + return deserializedTelephonyCallTiming; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTrace.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTrace.java new file mode 100644 index 000000000000..bfe3db5bd331 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTrace.java @@ -0,0 +1,169 @@ +// 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; + +/** + * Correlation from a durable telephony call record to its customer-facing Foundry trace. + */ +@Immutable +public final class TelephonyCallTrace implements JsonSerializable { + /* + * The trace availability status. + */ + @Generated + private final TelephonyCallTraceStatus status; + + /* + * The W3C trace identifier, when a trace was recorded. + */ + @Generated + private String traceId; + + /* + * The root span identifier, when a trace was recorded. + */ + @Generated + private String rootSpanId; + + /* + * The voice-agent conversation identifier, when a conversation was created. + */ + @Generated + private String conversationId; + + /* + * Whether the trace was emitted live or after the call ended. + */ + @Generated + private TelephonyCallTraceMode mode; + + /** + * Creates an instance of TelephonyCallTrace class. + * + * @param status the status value to set. + */ + @Generated + private TelephonyCallTrace(TelephonyCallTraceStatus status) { + this.status = status; + } + + /** + * Get the status property: The trace availability status. + * + * @return the status value. + */ + @Generated + public TelephonyCallTraceStatus getStatus() { + return this.status; + } + + /** + * Get the traceId property: The W3C trace identifier, when a trace was recorded. + * + * @return the traceId value. + */ + @Generated + public String getTraceId() { + return this.traceId; + } + + /** + * Get the rootSpanId property: The root span identifier, when a trace was recorded. + * + * @return the rootSpanId value. + */ + @Generated + public String getRootSpanId() { + return this.rootSpanId; + } + + /** + * Get the conversationId property: The voice-agent conversation identifier, when a conversation was created. + * + * @return the conversationId value. + */ + @Generated + public String getConversationId() { + return this.conversationId; + } + + /** + * Get the mode property: Whether the trace was emitted live or after the call ended. + * + * @return the mode value. + */ + @Generated + public TelephonyCallTraceMode getMode() { + return this.mode; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("trace_id", this.traceId); + jsonWriter.writeStringField("root_span_id", this.rootSpanId); + jsonWriter.writeStringField("conversation_id", this.conversationId); + jsonWriter.writeStringField("mode", this.mode == null ? null : this.mode.toString()); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyCallTrace from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyCallTrace 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 TelephonyCallTrace. + */ + @Generated + public static TelephonyCallTrace fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + TelephonyCallTraceStatus status = null; + String traceId = null; + String rootSpanId = null; + String conversationId = null; + TelephonyCallTraceMode mode = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("status".equals(fieldName)) { + status = TelephonyCallTraceStatus.fromString(reader.getString()); + } else if ("trace_id".equals(fieldName)) { + traceId = reader.getString(); + } else if ("root_span_id".equals(fieldName)) { + rootSpanId = reader.getString(); + } else if ("conversation_id".equals(fieldName)) { + conversationId = reader.getString(); + } else if ("mode".equals(fieldName)) { + mode = TelephonyCallTraceMode.fromString(reader.getString()); + } else { + reader.skipChildren(); + } + } + TelephonyCallTrace deserializedTelephonyCallTrace = new TelephonyCallTrace(status); + deserializedTelephonyCallTrace.traceId = traceId; + deserializedTelephonyCallTrace.rootSpanId = rootSpanId; + deserializedTelephonyCallTrace.conversationId = conversationId; + deserializedTelephonyCallTrace.mode = mode; + + return deserializedTelephonyCallTrace; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceMode.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceMode.java new file mode 100644 index 000000000000..57b05116cb3a --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceMode.java @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The mode used to expose a telephony call as a customer-facing Foundry trace. + */ +public final class TelephonyCallTraceMode extends ExpandableStringEnum { + /** + * The trace was created while the voice-agent conversation was live. + */ + @Generated + public static final TelephonyCallTraceMode LIVE = fromString("live"); + + /** + * The trace summarizes a validated, customer-owned call that ended before a live voice-agent conversation was + * created. + */ + @Generated + public static final TelephonyCallTraceMode POST_CALL = fromString("post_call"); + + /** + * Creates a new instance of TelephonyCallTraceMode value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallTraceMode() { + } + + /** + * Creates or finds a TelephonyCallTraceMode from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallTraceMode. + */ + @Generated + public static TelephonyCallTraceMode fromString(String name) { + return fromString(name, TelephonyCallTraceMode.class); + } + + /** + * Gets known TelephonyCallTraceMode values. + * + * @return known TelephonyCallTraceMode values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallTraceMode.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceStatus.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceStatus.java new file mode 100644 index 000000000000..7dcea8a60647 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyCallTraceStatus.java @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The availability status of a customer-facing telephony call trace. + */ +public final class TelephonyCallTraceStatus extends ExpandableStringEnum { + /** + * Trace creation has not completed. + */ + @Generated + public static final TelephonyCallTraceStatus PENDING = fromString("pending"); + + /** + * Trace creation is in progress. + */ + @Generated + public static final TelephonyCallTraceStatus EMITTING = fromString("emitting"); + + /** + * The trace is available. + */ + @Generated + public static final TelephonyCallTraceStatus AVAILABLE = fromString("available"); + + /** + * Tracing was disabled or no trace listener recorded the call. + */ + @Generated + public static final TelephonyCallTraceStatus NOT_RECORDED = fromString("not_recorded"); + + /** + * The call was not eligible for a customer-facing trace. + */ + @Generated + public static final TelephonyCallTraceStatus NOT_APPLICABLE = fromString("not_applicable"); + + /** + * Trace creation failed. + */ + @Generated + public static final TelephonyCallTraceStatus FAILED = fromString("failed"); + + /** + * Creates a new instance of TelephonyCallTraceStatus value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyCallTraceStatus() { + } + + /** + * Creates or finds a TelephonyCallTraceStatus from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyCallTraceStatus. + */ + @Generated + public static TelephonyCallTraceStatus fromString(String name) { + return fromString(name, TelephonyCallTraceStatus.class); + } + + /** + * Gets known TelephonyCallTraceStatus values. + * + * @return known TelephonyCallTraceStatus values. + */ + @Generated + public static Collection values() { + return values(TelephonyCallTraceStatus.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyProvider.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyProvider.java new file mode 100644 index 000000000000..c812ace11f11 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyProvider.java @@ -0,0 +1,58 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * A telephony provider supported by an agent binding. Known values are stable; additional values may be added over + * time. + */ +public final class TelephonyProvider extends ExpandableStringEnum { + /** + * Microsoft Teams Phone Extension. + */ + @Generated + public static final TelephonyProvider TEAMS_PHONE_EXTENSION = fromString("teams_phone_extension"); + + /** + * Twilio Programmable Voice. + */ + @Generated + public static final TelephonyProvider TWILIO = fromString("twilio"); + + /** + * Creates a new instance of TelephonyProvider value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public TelephonyProvider() { + } + + /** + * Creates or finds a TelephonyProvider from its string representation. + * + * @param name a name to look for. + * @return the corresponding TelephonyProvider. + */ + @Generated + public static TelephonyProvider fromString(String name) { + return fromString(name, TelephonyProvider.class); + } + + /** + * Gets known TelephonyProvider values. + * + * @return known TelephonyProvider values. + */ + @Generated + public static Collection values() { + return values(TelephonyProvider.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTarget.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTarget.java new file mode 100644 index 000000000000..e8aa622a8d04 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTarget.java @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A named destination to which the voice agent may transfer a call. + */ +@Immutable +public final class TelephonyTransferTarget implements JsonSerializable { + /* + * The unique name exposed to the voice agent for this transfer target. + */ + @Generated + private final String name; + + /* + * A description that helps the voice agent decide when to use this target. + */ + @Generated + private final String description; + + /* + * The provider-specific transfer destination. + */ + @Generated + private final BinaryData destination; + + /** + * Creates an instance of TelephonyTransferTarget class. + * + * @param name the name value to set. + * @param description the description value to set. + * @param destination the destination value to set. + */ + @Generated + public TelephonyTransferTarget(String name, String description, BinaryData destination) { + this.name = name; + this.description = description; + this.destination = destination; + } + + /** + * Get the name property: The unique name exposed to the voice agent for this transfer target. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Get the description property: A description that helps the voice agent decide when to use this target. + * + * @return the description value. + */ + @Generated + public String getDescription() { + return this.description; + } + + /** + * Get the destination property: The provider-specific transfer destination. + * + * @return the destination value. + */ + @Generated + public BinaryData getDestination() { + return this.destination; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("description", this.description); + jsonWriter.writeFieldName("destination"); + this.destination.writeTo(jsonWriter); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyTransferTarget from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyTransferTarget 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 TelephonyTransferTarget. + */ + @Generated + public static TelephonyTransferTarget fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + String description = null; + BinaryData destination = 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 ("destination".equals(fieldName)) { + destination + = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + } else { + reader.skipChildren(); + } + } + return new TelephonyTransferTarget(name, description, destination); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTargets.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTargets.java new file mode 100644 index 000000000000..cd7dd0436425 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TelephonyTransferTargets.java @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.List; + +/** + * The telephony transfer targets configured for one voice agent. + */ +@Immutable +public final class TelephonyTransferTargets implements JsonSerializable { + /* + * The complete set of destinations to which the voice agent may transfer calls. An empty array clears all targets + * when replacing the configuration. + */ + @Generated + private final List transferTargets; + + /** + * Creates an instance of TelephonyTransferTargets class. + * + * @param transferTargets the transferTargets value to set. + */ + @Generated + private TelephonyTransferTargets(List transferTargets) { + this.transferTargets = transferTargets; + } + + /** + * Get the transferTargets property: The complete set of destinations to which the voice agent may transfer calls. + * An empty array clears all targets when replacing the configuration. + * + * @return the transferTargets value. + */ + @Generated + public List getTransferTargets() { + return this.transferTargets; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("transfer_targets", this.transferTargets, + (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TelephonyTransferTargets from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TelephonyTransferTargets 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 TelephonyTransferTargets. + */ + @Generated + public static TelephonyTransferTargets fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + List transferTargets = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("transfer_targets".equals(fieldName)) { + transferTargets = reader.readArray(reader1 -> TelephonyTransferTarget.fromJson(reader1)); + } else { + reader.skipChildren(); + } + } + return new TelephonyTransferTargets(transferTargets); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TwilioTelephonyBindingListItem.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TwilioTelephonyBindingListItem.java new file mode 100644 index 000000000000..23bca5f277ad --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/TwilioTelephonyBindingListItem.java @@ -0,0 +1,233 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; + +/** + * A Twilio binding returned in a list, including its entity tag. + */ +@Immutable +public final class TwilioTelephonyBindingListItem implements JsonSerializable { + /* + * The service-generated binding identifier. + */ + @Generated + private final String id; + + /* + * The Twilio provider. + */ + @Generated + private final String provider = "twilio"; + + /* + * The Foundry connection name for the Twilio provider. + */ + @Generated + private final String connection; + + /* + * The Twilio E.164 phone number. + */ + @Generated + private final String phoneNumber; + + /* + * The optional display label for the binding. + */ + @Generated + private String label; + + /* + * The lifecycle status. + */ + @Generated + private final TelephonyBindingStatus status; + + /* + * The service-generated webhook URL to configure with Twilio. + */ + @Generated + private final String incomingCallUrl; + + /* + * The entity tag to send in the `If-Match` header when updating or deleting this binding. + */ + @Generated + private String etag; + + /** + * Creates an instance of TwilioTelephonyBindingListItem class. + * + * @param id the id value to set. + * @param connection the connection value to set. + * @param phoneNumber the phoneNumber value to set. + * @param status the status value to set. + * @param incomingCallUrl the incomingCallUrl value to set. + */ + @Generated + private TwilioTelephonyBindingListItem(String id, String connection, String phoneNumber, + TelephonyBindingStatus status, String incomingCallUrl) { + this.id = id; + this.connection = connection; + this.phoneNumber = phoneNumber; + this.status = status; + this.incomingCallUrl = incomingCallUrl; + } + + /** + * Get the id property: The service-generated binding identifier. + * + * @return the id value. + */ + @Generated + public String getId() { + return this.id; + } + + /** + * Get the provider property: The Twilio provider. + * + * @return the provider value. + */ + @Generated + public String getProvider() { + return this.provider; + } + + /** + * Get the connection property: The Foundry connection name for the Twilio provider. + * + * @return the connection value. + */ + @Generated + public String getConnection() { + return this.connection; + } + + /** + * Get the phoneNumber property: The Twilio E.164 phone number. + * + * @return the phoneNumber value. + */ + @Generated + public String getPhoneNumber() { + return this.phoneNumber; + } + + /** + * Get the label property: The optional display label for the binding. + * + * @return the label value. + */ + @Generated + public String getLabel() { + return this.label; + } + + /** + * Get the status property: The lifecycle status. + * + * @return the status value. + */ + @Generated + public TelephonyBindingStatus getStatus() { + return this.status; + } + + /** + * Get the incomingCallUrl property: The service-generated webhook URL to configure with Twilio. + * + * @return the incomingCallUrl value. + */ + @Generated + public String getIncomingCallUrl() { + return this.incomingCallUrl; + } + + /** + * Get the etag property: The entity tag to send in the `If-Match` header when updating or deleting this binding. + * + * @return the etag value. + */ + @Generated + public String getEtag() { + return this.etag; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("id", this.id); + jsonWriter.writeStringField("provider", this.provider); + jsonWriter.writeStringField("connection", this.connection); + jsonWriter.writeStringField("phone_number", this.phoneNumber); + jsonWriter.writeStringField("status", this.status == null ? null : this.status.toString()); + jsonWriter.writeStringField("incoming_call_url", this.incomingCallUrl); + jsonWriter.writeStringField("label", this.label); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of TwilioTelephonyBindingListItem from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of TwilioTelephonyBindingListItem 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 TwilioTelephonyBindingListItem. + */ + @Generated + public static TwilioTelephonyBindingListItem fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String id = null; + String connection = null; + String phoneNumber = null; + TelephonyBindingStatus status = null; + String incomingCallUrl = null; + String etag = null; + String label = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("id".equals(fieldName)) { + id = reader.getString(); + } else if ("connection".equals(fieldName)) { + connection = reader.getString(); + } else if ("phone_number".equals(fieldName)) { + phoneNumber = reader.getString(); + } else if ("status".equals(fieldName)) { + status = TelephonyBindingStatus.fromString(reader.getString()); + } else if ("incoming_call_url".equals(fieldName)) { + incomingCallUrl = reader.getString(); + } else if ("etag".equals(fieldName)) { + etag = reader.getString(); + } else if ("label".equals(fieldName)) { + label = reader.getString(); + } else { + reader.skipChildren(); + } + } + TwilioTelephonyBindingListItem deserializedTwilioTelephonyBindingListItem + = new TwilioTelephonyBindingListItem(id, connection, phoneNumber, status, incomingCallUrl); + deserializedTwilioTelephonyBindingListItem.etag = etag; + deserializedTwilioTelephonyBindingListItem.label = label; + + return deserializedTwilioTelephonyBindingListItem; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/UpdateTelephonyBindingRequest.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/UpdateTelephonyBindingRequest.java new file mode 100644 index 000000000000..8211c105bbe0 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/UpdateTelephonyBindingRequest.java @@ -0,0 +1,272 @@ +// 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.JsonMergePatchHelper; +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.util.HashSet; +import java.util.Set; + +/** + * The request to update an existing telephony binding. Every property is optional and the binding's provider is + * immutable. + */ +@Fluent +public final class UpdateTelephonyBindingRequest implements JsonSerializable { + /* + * The new lifecycle status. + */ + @Generated + private TelephonyBindingStatus status; + + /* + * The replacement display label. Omit it to preserve the current value; use null to clear it. + */ + @Generated + private String label; + + /* + * The replacement Foundry connection name. This property is valid only for a Teams Phone Extension binding; a + * Twilio binding's connection is immutable. + */ + @Generated + private String connection; + + /* + * The replacement Teams Phone Extension display phone number. Omit it to preserve the current value; use null to + * clear it. This property is valid only for a Teams Phone Extension binding. + */ + @Generated + private String phoneNumber; + + /** + * 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 + .setUpdateTelephonyBindingRequestAccessor(new JsonMergePatchHelper.UpdateTelephonyBindingRequestAccessor() { + @Override + public UpdateTelephonyBindingRequest prepareModelForJsonMergePatch(UpdateTelephonyBindingRequest model, + boolean jsonMergePatchEnabled) { + model.serializeAsJsonMergePatch(jsonMergePatchEnabled); + return model; + } + + @Override + public boolean isJsonMergePatch(UpdateTelephonyBindingRequest model) { + return model.jsonMergePatch; + } + }); + } + + /** + * Creates an instance of UpdateTelephonyBindingRequest class. + */ + @Generated + public UpdateTelephonyBindingRequest() { + } + + /** + * Get the status property: The new lifecycle status. + * + * @return the status value. + */ + @Generated + public TelephonyBindingStatus getStatus() { + return this.status; + } + + /** + * Set the status property: The new lifecycle status. + * + * @param status the status value to set. + * @return the UpdateTelephonyBindingRequest object itself. + */ + @Generated + public UpdateTelephonyBindingRequest setStatus(TelephonyBindingStatus status) { + this.status = status; + this.updatedProperties.add("status"); + return this; + } + + /** + * Get the label property: The replacement display label. Omit it to preserve the current value; use null to clear + * it. + * + * @return the label value. + */ + @Generated + public String getLabel() { + return this.label; + } + + /** + * Set the label property: The replacement display label. Omit it to preserve the current value; use null to clear + * it. + * + * @param label the label value to set. + * @return the UpdateTelephonyBindingRequest object itself. + */ + @Generated + public UpdateTelephonyBindingRequest setLabel(String label) { + this.label = label; + this.updatedProperties.add("label"); + return this; + } + + /** + * Get the connection property: The replacement Foundry connection name. This property is valid only for a Teams + * Phone Extension binding; a Twilio binding's connection is immutable. + * + * @return the connection value. + */ + @Generated + public String getConnection() { + return this.connection; + } + + /** + * Set the connection property: The replacement Foundry connection name. This property is valid only for a Teams + * Phone Extension binding; a Twilio binding's connection is immutable. + * + * @param connection the connection value to set. + * @return the UpdateTelephonyBindingRequest object itself. + */ + @Generated + public UpdateTelephonyBindingRequest setConnection(String connection) { + this.connection = connection; + this.updatedProperties.add("connection"); + return this; + } + + /** + * Get the phoneNumber property: The replacement Teams Phone Extension display phone number. Omit it to preserve the + * current value; use null to clear it. This property is valid only for a Teams Phone Extension binding. + * + * @return the phoneNumber value. + */ + @Generated + public String getPhoneNumber() { + return this.phoneNumber; + } + + /** + * Set the phoneNumber property: The replacement Teams Phone Extension display phone number. Omit it to preserve the + * current value; use null to clear it. This property is valid only for a Teams Phone Extension binding. + * + * @param phoneNumber the phoneNumber value to set. + * @return the UpdateTelephonyBindingRequest object itself. + */ + @Generated + public UpdateTelephonyBindingRequest setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + this.updatedProperties.add("phoneNumber"); + 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()); + jsonWriter.writeStringField("label", this.label); + jsonWriter.writeStringField("connection", this.connection); + jsonWriter.writeStringField("phone_number", this.phoneNumber); + 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()); + } + } + if (updatedProperties.contains("label")) { + if (this.label == null) { + jsonWriter.writeNullField("label"); + } else { + jsonWriter.writeStringField("label", this.label); + } + } + if (updatedProperties.contains("connection")) { + if (this.connection == null) { + jsonWriter.writeNullField("connection"); + } else { + jsonWriter.writeStringField("connection", this.connection); + } + } + if (updatedProperties.contains("phoneNumber")) { + if (this.phoneNumber == null) { + jsonWriter.writeNullField("phone_number"); + } else { + jsonWriter.writeStringField("phone_number", this.phoneNumber); + } + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of UpdateTelephonyBindingRequest from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of UpdateTelephonyBindingRequest 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 UpdateTelephonyBindingRequest. + */ + @Generated + public static UpdateTelephonyBindingRequest fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + UpdateTelephonyBindingRequest deserializedUpdateTelephonyBindingRequest + = new UpdateTelephonyBindingRequest(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("status".equals(fieldName)) { + deserializedUpdateTelephonyBindingRequest.status + = TelephonyBindingStatus.fromString(reader.getString()); + } else if ("label".equals(fieldName)) { + deserializedUpdateTelephonyBindingRequest.label = reader.getString(); + } else if ("connection".equals(fieldName)) { + deserializedUpdateTelephonyBindingRequest.connection = reader.getString(); + } else if ("phone_number".equals(fieldName)) { + deserializedUpdateTelephonyBindingRequest.phoneNumber = reader.getString(); + } else { + reader.skipChildren(); + } + } + + return deserializedUpdateTelephonyBindingRequest; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java index 8182da3eedf1..68c67cd95d9e 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java @@ -28,20 +28,21 @@ public final class VoiceAgentDefinition extends AgentDefinition { private AgentKind kind = AgentKind.VOICE; /* - * How the model backing this agent is served. Together with `model`, this selects the model up front. `managed` - * uses a service-managed model; `self_deployed` uses the customer's own Foundry deployment. This is independent of - * the architecture (realtime or cascaded), which the service derives from the selected model. + * How the voice agent obtains its conversational backend. `managed` uses the service-managed model named by + * `model`; `self_deployed` uses the customer's Foundry deployment named by `model`; `hosted_agent` fronts the + * hosted text agent referenced by `target_agent`. This is independent of the architecture (realtime or cascaded), + * which the service derives from the selected backend. */ @Generated private final VoiceModelType modelType; /* - * The model to use for this agent, paired with `model_type`: the service-managed model name when `model_type` is - * `managed`, or the customer's Foundry deployment name when `model_type` is `self_deployed`. The model must support - * realtime or cascaded voice. The service derives the architecture from the selected model. + * The model to use for this agent. Required when `model_type` is `managed` (the service-managed model name) or + * `self_deployed` (the customer's Foundry deployment name). Omit this property when `model_type` is `hosted_agent`; + * `target_agent` identifies the conversational backend. The model must support realtime or cascaded voice. */ @Generated - private final String model; + private String model; /* * A system (or developer) message inserted into the model's context. Supports template substitution via @@ -136,18 +137,6 @@ public final class VoiceAgentDefinition extends AgentDefinition { @Generated private Boolean store; - /** - * Creates an instance of VoiceAgentDefinition class. - * - * @param modelType the modelType value to set. - * @param model the model value to set. - */ - @Generated - public VoiceAgentDefinition(VoiceModelType modelType, String model) { - this.modelType = modelType; - this.model = model; - } - /** * Get the kind property: The kind property. * @@ -160,10 +149,10 @@ public AgentKind getKind() { } /** - * Get the modelType property: How the model backing this agent is served. Together with `model`, this selects the - * model up front. `managed` uses a service-managed model; `self_deployed` uses the customer's own Foundry - * deployment. This is independent of the architecture (realtime or cascaded), which the service derives from the - * selected model. + * Get the modelType property: How the voice agent obtains its conversational backend. `managed` uses the + * service-managed model named by `model`; `self_deployed` uses the customer's Foundry deployment named by `model`; + * `hosted_agent` fronts the hosted text agent referenced by `target_agent`. This is independent of the architecture + * (realtime or cascaded), which the service derives from the selected backend. * * @return the modelType value. */ @@ -173,9 +162,10 @@ public VoiceModelType getModelType() { } /** - * Get the model property: The model to use for this agent, paired with `model_type`: the service-managed model name - * when `model_type` is `managed`, or the customer's Foundry deployment name when `model_type` is `self_deployed`. - * The model must support realtime or cascaded voice. The service derives the architecture from the selected model. + * Get the model property: The model to use for this agent. Required when `model_type` is `managed` (the + * service-managed model name) or `self_deployed` (the customer's Foundry deployment name). Omit this property when + * `model_type` is `hosted_agent`; `target_agent` identifies the conversational backend. The model must support + * realtime or cascaded voice. * * @return the model value. */ @@ -531,8 +521,9 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); jsonWriter.writeJsonField("rai_config", getRaiConfig()); jsonWriter.writeStringField("model_type", this.modelType == null ? null : this.modelType.toString()); - jsonWriter.writeStringField("model", this.model); jsonWriter.writeStringField("kind", this.kind == null ? null : this.kind.toString()); + jsonWriter.writeStringField("model", this.model); + jsonWriter.writeJsonField("target_agent", this.targetAgent); jsonWriter.writeStringField("instructions", this.instructions); jsonWriter.writeJsonField("greeting", this.greeting); jsonWriter.writeJsonField("audio", this.audio); @@ -554,6 +545,7 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeBooleanField("parallel_tool_calls", this.parallelToolCalls); jsonWriter.writeMapField("structured_inputs", this.structuredInputs, (writer, element) -> writer.writeJson(element)); + jsonWriter.writeJsonField("subagent_config", this.subagentConfig); jsonWriter.writeBooleanField("store", this.store); return jsonWriter.writeEndObject(); } @@ -572,8 +564,9 @@ public static VoiceAgentDefinition fromJson(JsonReader jsonReader) throws IOExce return jsonReader.readObject(reader -> { RaiConfig raiConfig = null; VoiceModelType modelType = null; - String model = null; AgentKind kind = AgentKind.VOICE; + String model = null; + VoiceAgentTargetAgent targetAgent = null; String instructions = null; VoiceAgentGreetingConfig greeting = null; VoiceAgentAudioConfig audio = null; @@ -586,6 +579,7 @@ public static VoiceAgentDefinition fromJson(JsonReader jsonReader) throws IOExce BinaryData toolChoice = null; Boolean parallelToolCalls = null; Map structuredInputs = null; + VoiceAgentSubAgentConfig subagentConfig = null; Boolean store = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); @@ -594,10 +588,12 @@ public static VoiceAgentDefinition fromJson(JsonReader jsonReader) throws IOExce raiConfig = RaiConfig.fromJson(reader); } else if ("model_type".equals(fieldName)) { modelType = VoiceModelType.fromString(reader.getString()); - } else if ("model".equals(fieldName)) { - model = reader.getString(); } else if ("kind".equals(fieldName)) { kind = AgentKind.fromString(reader.getString()); + } else if ("model".equals(fieldName)) { + model = reader.getString(); + } else if ("target_agent".equals(fieldName)) { + targetAgent = VoiceAgentTargetAgent.fromJson(reader); } else if ("instructions".equals(fieldName)) { instructions = reader.getString(); } else if ("greeting".equals(fieldName)) { @@ -625,15 +621,19 @@ public static VoiceAgentDefinition fromJson(JsonReader jsonReader) throws IOExce parallelToolCalls = reader.getNullable(JsonReader::getBoolean); } else if ("structured_inputs".equals(fieldName)) { structuredInputs = reader.readMap(reader1 -> StructuredInputDefinition.fromJson(reader1)); + } else if ("subagent_config".equals(fieldName)) { + subagentConfig = VoiceAgentSubAgentConfig.fromJson(reader); } else if ("store".equals(fieldName)) { store = reader.getNullable(JsonReader::getBoolean); } else { reader.skipChildren(); } } - VoiceAgentDefinition deserializedVoiceAgentDefinition = new VoiceAgentDefinition(modelType, model); + VoiceAgentDefinition deserializedVoiceAgentDefinition = new VoiceAgentDefinition(modelType); deserializedVoiceAgentDefinition.setRaiConfig(raiConfig); deserializedVoiceAgentDefinition.kind = kind; + deserializedVoiceAgentDefinition.model = model; + deserializedVoiceAgentDefinition.targetAgent = targetAgent; deserializedVoiceAgentDefinition.instructions = instructions; deserializedVoiceAgentDefinition.greeting = greeting; deserializedVoiceAgentDefinition.audio = audio; @@ -646,8 +646,105 @@ public static VoiceAgentDefinition fromJson(JsonReader jsonReader) throws IOExce deserializedVoiceAgentDefinition.toolChoice = toolChoice; deserializedVoiceAgentDefinition.parallelToolCalls = parallelToolCalls; deserializedVoiceAgentDefinition.structuredInputs = structuredInputs; + deserializedVoiceAgentDefinition.subagentConfig = subagentConfig; deserializedVoiceAgentDefinition.store = store; return deserializedVoiceAgentDefinition; }); } + + /* + * The hosted text agent that this voice agent fronts. Required when `model_type` is `hosted_agent` and not + * applicable otherwise. In this mode, `model`, `instructions`, `tools`, and `tool_choice` must be omitted, and + * `greeting.tool_choice` cannot be `required`, because the target agent owns the conversation logic. The target + * must be in the same project and support the `invocations_ws` protocol, Voice Live compatibility, and Bridge + * Protocol 1.0. + */ + @Generated + private VoiceAgentTargetAgent targetAgent; + + /* + * Optional configuration for sibling Foundry text agents that this voice agent may consult as background + * specialists. + */ + @Generated + private VoiceAgentSubAgentConfig subagentConfig; + + /** + * Creates an instance of VoiceAgentDefinition class. + * + * @param modelType the modelType value to set. + */ + @Generated + public VoiceAgentDefinition(VoiceModelType modelType) { + this.modelType = modelType; + } + + /** + * Set the model property: The model to use for this agent. Required when `model_type` is `managed` (the + * service-managed model name) or `self_deployed` (the customer's Foundry deployment name). Omit this property when + * `model_type` is `hosted_agent`; `target_agent` identifies the conversational backend. The model must support + * realtime or cascaded voice. + * + * @param model the model value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setModel(String model) { + this.model = model; + return this; + } + + /** + * Get the targetAgent property: The hosted text agent that this voice agent fronts. Required when `model_type` is + * `hosted_agent` and not applicable otherwise. In this mode, `model`, `instructions`, `tools`, and `tool_choice` + * must be omitted, and `greeting.tool_choice` cannot be `required`, because the target agent owns the conversation + * logic. The target must be in the same project and support the `invocations_ws` protocol, Voice Live + * compatibility, and Bridge Protocol 1.0. + * + * @return the targetAgent value. + */ + @Generated + public VoiceAgentTargetAgent getTargetAgent() { + return this.targetAgent; + } + + /** + * Set the targetAgent property: The hosted text agent that this voice agent fronts. Required when `model_type` is + * `hosted_agent` and not applicable otherwise. In this mode, `model`, `instructions`, `tools`, and `tool_choice` + * must be omitted, and `greeting.tool_choice` cannot be `required`, because the target agent owns the conversation + * logic. The target must be in the same project and support the `invocations_ws` protocol, Voice Live + * compatibility, and Bridge Protocol 1.0. + * + * @param targetAgent the targetAgent value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setTargetAgent(VoiceAgentTargetAgent targetAgent) { + this.targetAgent = targetAgent; + return this; + } + + /** + * Get the subagentConfig property: Optional configuration for sibling Foundry text agents that this voice agent may + * consult as background specialists. + * + * @return the subagentConfig value. + */ + @Generated + public VoiceAgentSubAgentConfig getSubagentConfig() { + return this.subagentConfig; + } + + /** + * Set the subagentConfig property: Optional configuration for sibling Foundry text agents that this voice agent may + * consult as background specialists. + * + * @param subagentConfig the subagentConfig value to set. + * @return the VoiceAgentDefinition object itself. + */ + @Generated + public VoiceAgentDefinition setSubagentConfig(VoiceAgentSubAgentConfig subagentConfig) { + this.subagentConfig = subagentConfig; + return this; + } } diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgent.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgent.java new file mode 100644 index 000000000000..706e628f42f5 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgent.java @@ -0,0 +1,221 @@ +// 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; + +/** + * A sibling Foundry text agent that a voice agent may consult as a background specialist. + */ +@Fluent +public final class VoiceAgentSubAgent implements JsonSerializable { + /* + * The name of the subagent. The subagent must be in the same project as the voice agent. + */ + @Generated + private final String agentName; + + /* + * The version of the subagent. When omitted, the active version is used. + */ + @Generated + private String agentVersion; + + /* + * A description of the subagent's capabilities, used by the voice agent to decide whether to forward a query. + */ + @Generated + private final String agentCapabilities; + + /* + * Policy for acknowledging forwarded requests and filling gaps while waiting for this subagent's response. + */ + @Generated + private VoiceAgentSubagentResponsePolicy responsePolicy; + + /* + * The wall-clock timeout, in seconds, for each invocation of this subagent. When omitted, the service timeout is + * used. + */ + @Generated + private Long invokeTimeoutSeconds; + + /** + * Creates an instance of VoiceAgentSubAgent class. + * + * @param agentName the agentName value to set. + * @param agentCapabilities the agentCapabilities value to set. + */ + @Generated + public VoiceAgentSubAgent(String agentName, String agentCapabilities) { + this.agentName = agentName; + this.agentCapabilities = agentCapabilities; + } + + /** + * Get the agentName property: The name of the subagent. The subagent must be in the same project as the voice + * agent. + * + * @return the agentName value. + */ + @Generated + public String getAgentName() { + return this.agentName; + } + + /** + * Get the agentVersion property: The version of the subagent. When omitted, the active version is used. + * + * @return the agentVersion value. + */ + @Generated + public String getAgentVersion() { + return this.agentVersion; + } + + /** + * Set the agentVersion property: The version of the subagent. When omitted, the active version is used. + * + * @param agentVersion the agentVersion value to set. + * @return the VoiceAgentSubAgent object itself. + */ + @Generated + public VoiceAgentSubAgent setAgentVersion(String agentVersion) { + this.agentVersion = agentVersion; + return this; + } + + /** + * Get the agentCapabilities property: A description of the subagent's capabilities, used by the voice agent to + * decide whether to forward a query. + * + * @return the agentCapabilities value. + */ + @Generated + public String getAgentCapabilities() { + return this.agentCapabilities; + } + + /** + * Get the responsePolicy property: Policy for acknowledging forwarded requests and filling gaps while waiting for + * this subagent's response. + * + * @return the responsePolicy value. + */ + @Generated + public VoiceAgentSubagentResponsePolicy getResponsePolicy() { + return this.responsePolicy; + } + + /** + * Set the responsePolicy property: Policy for acknowledging forwarded requests and filling gaps while waiting for + * this subagent's response. + * + * @param responsePolicy the responsePolicy value to set. + * @return the VoiceAgentSubAgent object itself. + */ + @Generated + public VoiceAgentSubAgent setResponsePolicy(VoiceAgentSubagentResponsePolicy responsePolicy) { + this.responsePolicy = responsePolicy; + return this; + } + + /** + * Get the invokeTimeoutSeconds property: The wall-clock timeout, in seconds, for each invocation of this subagent. + * When omitted, the service timeout is used. + * + * @return the invokeTimeoutSeconds value. + */ + @Generated + public Duration getInvokeTimeoutSeconds() { + if (this.invokeTimeoutSeconds == null) { + return null; + } + return Duration.ofSeconds(this.invokeTimeoutSeconds); + } + + /** + * Set the invokeTimeoutSeconds property: The wall-clock timeout, in seconds, for each invocation of this subagent. + * When omitted, the service timeout is used. + * + * @param invokeTimeoutSeconds the invokeTimeoutSeconds value to set. + * @return the VoiceAgentSubAgent object itself. + */ + @Generated + public VoiceAgentSubAgent setInvokeTimeoutSeconds(Duration invokeTimeoutSeconds) { + if (invokeTimeoutSeconds == null) { + this.invokeTimeoutSeconds = null; + } else { + this.invokeTimeoutSeconds = invokeTimeoutSeconds.getSeconds(); + } + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("agent_name", this.agentName); + jsonWriter.writeStringField("agent_capabilities", this.agentCapabilities); + jsonWriter.writeStringField("agent_version", this.agentVersion); + jsonWriter.writeJsonField("response_policy", this.responsePolicy); + jsonWriter.writeNumberField("invoke_timeout_seconds", this.invokeTimeoutSeconds); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentSubAgent from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentSubAgent 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 VoiceAgentSubAgent. + */ + @Generated + public static VoiceAgentSubAgent fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String agentName = null; + String agentCapabilities = null; + String agentVersion = null; + VoiceAgentSubagentResponsePolicy responsePolicy = null; + Long invokeTimeoutSeconds = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("agent_name".equals(fieldName)) { + agentName = reader.getString(); + } else if ("agent_capabilities".equals(fieldName)) { + agentCapabilities = reader.getString(); + } else if ("agent_version".equals(fieldName)) { + agentVersion = reader.getString(); + } else if ("response_policy".equals(fieldName)) { + responsePolicy = VoiceAgentSubagentResponsePolicy.fromJson(reader); + } else if ("invoke_timeout_seconds".equals(fieldName)) { + invokeTimeoutSeconds = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + VoiceAgentSubAgent deserializedVoiceAgentSubAgent = new VoiceAgentSubAgent(agentName, agentCapabilities); + deserializedVoiceAgentSubAgent.agentVersion = agentVersion; + deserializedVoiceAgentSubAgent.responsePolicy = responsePolicy; + deserializedVoiceAgentSubAgent.invokeTimeoutSeconds = invokeTimeoutSeconds; + + return deserializedVoiceAgentSubAgent; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgentConfig.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgentConfig.java new file mode 100644 index 000000000000..c5eaafc9d3e3 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgentConfig.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.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; + +/** + * Configuration for sibling Foundry text agents that a voice agent may consult. + */ +@Immutable +public final class VoiceAgentSubAgentConfig implements JsonSerializable { + /* + * The sibling Foundry text agents, in the same project, that this voice agent may consult. + */ + @Generated + private final List subagents; + + /** + * Creates an instance of VoiceAgentSubAgentConfig class. + * + * @param subagents the subagents value to set. + */ + @Generated + public VoiceAgentSubAgentConfig(List subagents) { + this.subagents = subagents; + } + + /** + * Get the subagents property: The sibling Foundry text agents, in the same project, that this voice agent may + * consult. + * + * @return the subagents value. + */ + @Generated + public List getSubagents() { + return this.subagents; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeArrayField("subagents", this.subagents, (writer, element) -> writer.writeJson(element)); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentSubAgentConfig from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentSubAgentConfig 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 VoiceAgentSubAgentConfig. + */ + @Generated + public static VoiceAgentSubAgentConfig fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + List subagents = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("subagents".equals(fieldName)) { + subagents = reader.readArray(reader1 -> VoiceAgentSubAgent.fromJson(reader1)); + } else { + reader.skipChildren(); + } + } + return new VoiceAgentSubAgentConfig(subagents); + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubagentResponsePolicy.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubagentResponsePolicy.java new file mode 100644 index 000000000000..a7cf53246ef8 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentSubagentResponsePolicy.java @@ -0,0 +1,308 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Policy for delivering responses while a voice agent waits for a subagent. + */ +@Fluent +public final class VoiceAgentSubagentResponsePolicy implements JsonSerializable { + /* + * Whether the voice agent provides an immediate acknowledgement before forwarding a request to a subagent. + */ + @Generated + private Boolean immediateAck; + + /* + * The number of seconds without subagent content or user input before the voice agent provides a gap-filling + * response. + */ + @Generated + private Long gapFillingInterval; + + /* + * Instructions used to generate the immediate acknowledgement. + */ + @Generated + private String ackInstructions; + + /* + * Instructions used to generate gap-filling speech while waiting for progress. + */ + @Generated + private String gapFillingInstructions; + + /* + * Whether progress updates are emitted incrementally instead of only when the subagent invocation completes. + * Defaults to `false`. + */ + @Generated + private Boolean enableDeltaProgress; + + /* + * Instructions used to summarize streamed subagent progress for speech. + */ + @Generated + private String progressInstructions; + + /* + * The minimum number of seconds between spoken progress updates. + */ + @Generated + private Long progressUpdateInterval; + + /** + * Creates an instance of VoiceAgentSubagentResponsePolicy class. + */ + @Generated + public VoiceAgentSubagentResponsePolicy() { + } + + /** + * Get the immediateAck property: Whether the voice agent provides an immediate acknowledgement before forwarding a + * request to a subagent. + * + * @return the immediateAck value. + */ + @Generated + public Boolean isImmediateAck() { + return this.immediateAck; + } + + /** + * Set the immediateAck property: Whether the voice agent provides an immediate acknowledgement before forwarding a + * request to a subagent. + * + * @param immediateAck the immediateAck value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setImmediateAck(Boolean immediateAck) { + this.immediateAck = immediateAck; + return this; + } + + /** + * Get the gapFillingInterval property: The number of seconds without subagent content or user input before the + * voice agent provides a gap-filling response. + * + * @return the gapFillingInterval value. + */ + @Generated + public Duration getGapFillingInterval() { + if (this.gapFillingInterval == null) { + return null; + } + return Duration.ofSeconds(this.gapFillingInterval); + } + + /** + * Set the gapFillingInterval property: The number of seconds without subagent content or user input before the + * voice agent provides a gap-filling response. + * + * @param gapFillingInterval the gapFillingInterval value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setGapFillingInterval(Duration gapFillingInterval) { + if (gapFillingInterval == null) { + this.gapFillingInterval = null; + } else { + this.gapFillingInterval = gapFillingInterval.getSeconds(); + } + return this; + } + + /** + * Get the ackInstructions property: Instructions used to generate the immediate acknowledgement. + * + * @return the ackInstructions value. + */ + @Generated + public String getAckInstructions() { + return this.ackInstructions; + } + + /** + * Set the ackInstructions property: Instructions used to generate the immediate acknowledgement. + * + * @param ackInstructions the ackInstructions value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setAckInstructions(String ackInstructions) { + this.ackInstructions = ackInstructions; + return this; + } + + /** + * Get the gapFillingInstructions property: Instructions used to generate gap-filling speech while waiting for + * progress. + * + * @return the gapFillingInstructions value. + */ + @Generated + public String getGapFillingInstructions() { + return this.gapFillingInstructions; + } + + /** + * Set the gapFillingInstructions property: Instructions used to generate gap-filling speech while waiting for + * progress. + * + * @param gapFillingInstructions the gapFillingInstructions value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setGapFillingInstructions(String gapFillingInstructions) { + this.gapFillingInstructions = gapFillingInstructions; + return this; + } + + /** + * Get the enableDeltaProgress property: Whether progress updates are emitted incrementally instead of only when the + * subagent invocation completes. Defaults to `false`. + * + * @return the enableDeltaProgress value. + */ + @Generated + public Boolean isEnableDeltaProgress() { + return this.enableDeltaProgress; + } + + /** + * Set the enableDeltaProgress property: Whether progress updates are emitted incrementally instead of only when the + * subagent invocation completes. Defaults to `false`. + * + * @param enableDeltaProgress the enableDeltaProgress value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setEnableDeltaProgress(Boolean enableDeltaProgress) { + this.enableDeltaProgress = enableDeltaProgress; + return this; + } + + /** + * Get the progressInstructions property: Instructions used to summarize streamed subagent progress for speech. + * + * @return the progressInstructions value. + */ + @Generated + public String getProgressInstructions() { + return this.progressInstructions; + } + + /** + * Set the progressInstructions property: Instructions used to summarize streamed subagent progress for speech. + * + * @param progressInstructions the progressInstructions value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setProgressInstructions(String progressInstructions) { + this.progressInstructions = progressInstructions; + return this; + } + + /** + * Get the progressUpdateInterval property: The minimum number of seconds between spoken progress updates. + * + * @return the progressUpdateInterval value. + */ + @Generated + public Duration getProgressUpdateInterval() { + if (this.progressUpdateInterval == null) { + return null; + } + return Duration.ofSeconds(this.progressUpdateInterval); + } + + /** + * Set the progressUpdateInterval property: The minimum number of seconds between spoken progress updates. + * + * @param progressUpdateInterval the progressUpdateInterval value to set. + * @return the VoiceAgentSubagentResponsePolicy object itself. + */ + @Generated + public VoiceAgentSubagentResponsePolicy setProgressUpdateInterval(Duration progressUpdateInterval) { + if (progressUpdateInterval == null) { + this.progressUpdateInterval = null; + } else { + this.progressUpdateInterval = progressUpdateInterval.getSeconds(); + } + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeBooleanField("immediate_ack", this.immediateAck); + jsonWriter.writeNumberField("gap_filling_interval", this.gapFillingInterval); + jsonWriter.writeStringField("ack_instructions", this.ackInstructions); + jsonWriter.writeStringField("gap_filling_instructions", this.gapFillingInstructions); + jsonWriter.writeBooleanField("enable_delta_progress", this.enableDeltaProgress); + jsonWriter.writeStringField("progress_instructions", this.progressInstructions); + jsonWriter.writeNumberField("progress_update_interval", this.progressUpdateInterval); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentSubagentResponsePolicy from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentSubagentResponsePolicy 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 VoiceAgentSubagentResponsePolicy. + */ + @Generated + public static VoiceAgentSubagentResponsePolicy fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + VoiceAgentSubagentResponsePolicy deserializedVoiceAgentSubagentResponsePolicy + = new VoiceAgentSubagentResponsePolicy(); + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("immediate_ack".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.immediateAck + = reader.getNullable(JsonReader::getBoolean); + } else if ("gap_filling_interval".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.gapFillingInterval + = reader.getNullable(JsonReader::getLong); + } else if ("ack_instructions".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.ackInstructions = reader.getString(); + } else if ("gap_filling_instructions".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.gapFillingInstructions = reader.getString(); + } else if ("enable_delta_progress".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.enableDeltaProgress + = reader.getNullable(JsonReader::getBoolean); + } else if ("progress_instructions".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.progressInstructions = reader.getString(); + } else if ("progress_update_interval".equals(fieldName)) { + deserializedVoiceAgentSubagentResponsePolicy.progressUpdateInterval + = reader.getNullable(JsonReader::getLong); + } else { + reader.skipChildren(); + } + } + + return deserializedVoiceAgentSubagentResponsePolicy; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTargetAgent.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTargetAgent.java new file mode 100644 index 000000000000..f5bfc56d6c4d --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTargetAgent.java @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Fluent; +import com.azure.core.annotation.Generated; +import com.azure.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.LinkedHashMap; +import java.util.Map; + +/** + * A closed reference to the hosted text agent that a `hosted_agent` voice agent fronts, containing only its name and + * optional version. The target is resolved within the same project. + */ +@Fluent +public final class VoiceAgentTargetAgent implements JsonSerializable { + /* + * The non-empty DNS-like name of the target hosted text agent in the same project. + */ + @Generated + private final String name; + + /* + * The target agent version. Omit this property to select the latest version when the voice session starts. When + * supplied, use a positive integer or `draft-{positive-unix-timestamp}` whose numeric component fits in a signed + * 64-bit integer. + */ + @Generated + private String version; + + /* + * A closed reference to the hosted text agent that a `hosted_agent` voice agent fronts, containing only its name + * and optional version. The target is resolved within the same project. + */ + @Generated + private Map additionalProperties; + + /** + * Creates an instance of VoiceAgentTargetAgent class. + * + * @param name the name value to set. + */ + @Generated + public VoiceAgentTargetAgent(String name) { + this.name = name; + } + + /** + * Get the name property: The non-empty DNS-like name of the target hosted text agent in the same project. + * + * @return the name value. + */ + @Generated + public String getName() { + return this.name; + } + + /** + * Get the version property: The target agent version. Omit this property to select the latest version when the + * voice session starts. When supplied, use a positive integer or `draft-{positive-unix-timestamp}` whose numeric + * component fits in a signed 64-bit integer. + * + * @return the version value. + */ + @Generated + public String getVersion() { + return this.version; + } + + /** + * Set the version property: The target agent version. Omit this property to select the latest version when the + * voice session starts. When supplied, use a positive integer or `draft-{positive-unix-timestamp}` whose numeric + * component fits in a signed 64-bit integer. + * + * @param version the version value to set. + * @return the VoiceAgentTargetAgent object itself. + */ + @Generated + public VoiceAgentTargetAgent setVersion(String version) { + this.version = version; + return this; + } + + /** + * Get the additionalProperties property: A closed reference to the hosted text agent that a `hosted_agent` voice + * agent fronts, containing only its name and optional version. The target is resolved within the same project. + * + * @return the additionalProperties value. + */ + @Generated + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + /** + * Set the additionalProperties property: A closed reference to the hosted text agent that a `hosted_agent` voice + * agent fronts, containing only its name and optional version. The target is resolved within the same project. + * + * @param additionalProperties the additionalProperties value to set. + * @return the VoiceAgentTargetAgent object itself. + */ + @Generated + public VoiceAgentTargetAgent setAdditionalProperties(Map additionalProperties) { + this.additionalProperties = additionalProperties; + return this; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("name", this.name); + jsonWriter.writeStringField("version", this.version); + if (additionalProperties != null) { + for (Map.Entry additionalProperty : additionalProperties.entrySet()) { + jsonWriter.writeFieldName(additionalProperty.getKey()); + if (additionalProperty.getValue() == null) { + jsonWriter.writeNull(); + } else { + additionalProperty.getValue().writeTo(jsonWriter); + } + } + } + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceAgentTargetAgent from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceAgentTargetAgent 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 VoiceAgentTargetAgent. + */ + @Generated + public static VoiceAgentTargetAgent fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String name = null; + String version = null; + Map additionalProperties = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("name".equals(fieldName)) { + name = reader.getString(); + } else if ("version".equals(fieldName)) { + version = reader.getString(); + } else { + if (additionalProperties == null) { + additionalProperties = new LinkedHashMap<>(); + } + + additionalProperties.put(fieldName, + reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped()))); + } + } + VoiceAgentTargetAgent deserializedVoiceAgentTargetAgent = new VoiceAgentTargetAgent(name); + deserializedVoiceAgentTargetAgent.version = version; + deserializedVoiceAgentTargetAgent.additionalProperties = additionalProperties; + + return deserializedVoiceAgentTargetAgent; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTransport.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTransport.java new file mode 100644 index 000000000000..ca50b6ce7161 --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceAgentTransport.java @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.util.ExpandableStringEnum; +import java.util.Collection; + +/** + * The transport used for a voice-agent connection. + */ +public final class VoiceAgentTransport extends ExpandableStringEnum { + /** + * Signaling and audio are exchanged as JSON events over the WebSocket. This is the default. + */ + @Generated + public static final VoiceAgentTransport WEBSOCKET = fromString("websocket"); + + /** + * WebRTC: the WebSocket carries only SDP signaling; media and the data channel are peer-to-peer. + */ + @Generated + public static final VoiceAgentTransport WEBRTC = fromString("webrtc"); + + /** + * Creates a new instance of VoiceAgentTransport value. + * + * @deprecated Use the {@link #fromString(String)} factory method. + */ + @Generated + @Deprecated + public VoiceAgentTransport() { + } + + /** + * Creates or finds a VoiceAgentTransport from its string representation. + * + * @param name a name to look for. + * @return the corresponding VoiceAgentTransport. + */ + @Generated + public static VoiceAgentTransport fromString(String name) { + return fromString(name, VoiceAgentTransport.class); + } + + /** + * Gets known VoiceAgentTransport values. + * + * @return known VoiceAgentTransport values. + */ + @Generated + public static Collection values() { + return values(VoiceAgentTransport.class); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceGeneratedItemAudioResponse.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceGeneratedItemAudioResponse.java new file mode 100644 index 000000000000..3bad080b8d7b --- /dev/null +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceGeneratedItemAudioResponse.java @@ -0,0 +1,291 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +// Code generated by Microsoft (R) TypeSpec Code Generator. + +package com.azure.ai.agents.models; + +import com.azure.core.annotation.Generated; +import com.azure.core.annotation.Immutable; +import com.azure.json.JsonReader; +import com.azure.json.JsonSerializable; +import com.azure.json.JsonToken; +import com.azure.json.JsonWriter; +import java.io.IOException; +import java.time.Duration; + +/** + * Metadata for a conversation item's generated audio. For bring-your-own-storage (BYOS), the response includes + * `blob_uri`, a direct customer-storage URI without a SAS token, that the customer accesses with their own + * credentials. For Foundry-managed storage, `blob_uri` is absent and the bytes are streamed through the item's + * `/audio/generated/content` route. + */ +@Immutable +public final class VoiceGeneratedItemAudioResponse implements JsonSerializable { + /* + * The id of the conversation the item belongs to. + */ + @Generated + private final String conversationId; + + /* + * The id of the item this audio belongs to. + */ + @Generated + private final String itemId; + + /* + * The role the audio belongs to. + */ + @Generated + private VoiceAudioRole role; + + /* + * The container format of the audio. + */ + @Generated + private VoiceAudioContainerFormat format; + + /* + * The audio codec. + */ + @Generated + private VoiceAudioCodec codec; + + /* + * The sample rate in Hz. + */ + @Generated + private Integer sampleRate; + + /* + * The number of audio channels. + */ + @Generated + private Integer channels; + + /* + * The offset from the session start at which this segment begins. + */ + @Generated + private Long startOffsetMs; + + /* + * The duration of the audio segment. + */ + @Generated + private Long durationMs; + + /* + * For bring-your-own-storage (BYOS) recordings only: the URI of the generated audio in the customer's own storage, + * without a SAS token. The customer downloads it using their own storage credentials. Absent for Foundry-managed + * storage, where the bytes are streamed via the item's `/audio/generated/content` route instead. + */ + @Generated + private String blobUri; + + /** + * Creates an instance of VoiceGeneratedItemAudioResponse class. + * + * @param conversationId the conversationId value to set. + * @param itemId the itemId value to set. + */ + @Generated + private VoiceGeneratedItemAudioResponse(String conversationId, String itemId) { + this.conversationId = conversationId; + this.itemId = itemId; + } + + /** + * Get the conversationId property: The id of the conversation the item belongs to. + * + * @return the conversationId value. + */ + @Generated + public String getConversationId() { + return this.conversationId; + } + + /** + * Get the itemId property: The id of the item this audio belongs to. + * + * @return the itemId value. + */ + @Generated + public String getItemId() { + return this.itemId; + } + + /** + * Get the role property: The role the audio belongs to. + * + * @return the role value. + */ + @Generated + public VoiceAudioRole getRole() { + return this.role; + } + + /** + * Get the format property: The container format of the audio. + * + * @return the format value. + */ + @Generated + public VoiceAudioContainerFormat getFormat() { + return this.format; + } + + /** + * Get the codec property: The audio codec. + * + * @return the codec value. + */ + @Generated + public VoiceAudioCodec getCodec() { + return this.codec; + } + + /** + * Get the sampleRate property: The sample rate in Hz. + * + * @return the sampleRate value. + */ + @Generated + public Integer getSampleRate() { + return this.sampleRate; + } + + /** + * Get the channels property: The number of audio channels. + * + * @return the channels value. + */ + @Generated + public Integer getChannels() { + return this.channels; + } + + /** + * Get the startOffsetMs property: The offset from the session start at which this segment begins. + * + * @return the startOffsetMs value. + */ + @Generated + public Duration getStartOffsetMs() { + if (this.startOffsetMs == null) { + return null; + } + return Duration.ofMillis(this.startOffsetMs); + } + + /** + * Get the durationMs property: The duration of the audio segment. + * + * @return the durationMs value. + */ + @Generated + public Duration getDurationMs() { + if (this.durationMs == null) { + return null; + } + return Duration.ofMillis(this.durationMs); + } + + /** + * Get the blobUri property: For bring-your-own-storage (BYOS) recordings only: the URI of the generated audio in + * the customer's own storage, without a SAS token. The customer downloads it using their own storage credentials. + * Absent for Foundry-managed storage, where the bytes are streamed via the item's `/audio/generated/content` route + * instead. + * + * @return the blobUri value. + */ + @Generated + public String getBlobUri() { + return this.blobUri; + } + + /** + * {@inheritDoc} + */ + @Generated + @Override + public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { + jsonWriter.writeStartObject(); + jsonWriter.writeStringField("conversation_id", this.conversationId); + jsonWriter.writeStringField("item_id", this.itemId); + jsonWriter.writeStringField("role", this.role == null ? null : this.role.toString()); + jsonWriter.writeStringField("format", this.format == null ? null : this.format.toString()); + jsonWriter.writeStringField("codec", this.codec == null ? null : this.codec.toString()); + jsonWriter.writeNumberField("sample_rate", this.sampleRate); + jsonWriter.writeNumberField("channels", this.channels); + jsonWriter.writeNumberField("start_offset_ms", this.startOffsetMs); + jsonWriter.writeNumberField("duration_ms", this.durationMs); + jsonWriter.writeStringField("blob_uri", this.blobUri); + return jsonWriter.writeEndObject(); + } + + /** + * Reads an instance of VoiceGeneratedItemAudioResponse from the JsonReader. + * + * @param jsonReader The JsonReader being read. + * @return An instance of VoiceGeneratedItemAudioResponse 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 VoiceGeneratedItemAudioResponse. + */ + @Generated + public static VoiceGeneratedItemAudioResponse fromJson(JsonReader jsonReader) throws IOException { + return jsonReader.readObject(reader -> { + String conversationId = null; + String itemId = null; + VoiceAudioRole role = null; + VoiceAudioContainerFormat format = null; + VoiceAudioCodec codec = null; + Integer sampleRate = null; + Integer channels = null; + Long startOffsetMs = null; + Long durationMs = null; + String blobUri = null; + while (reader.nextToken() != JsonToken.END_OBJECT) { + String fieldName = reader.getFieldName(); + reader.nextToken(); + + if ("conversation_id".equals(fieldName)) { + conversationId = reader.getString(); + } else if ("item_id".equals(fieldName)) { + itemId = reader.getString(); + } else if ("role".equals(fieldName)) { + role = VoiceAudioRole.fromString(reader.getString()); + } else if ("format".equals(fieldName)) { + format = VoiceAudioContainerFormat.fromString(reader.getString()); + } else if ("codec".equals(fieldName)) { + codec = VoiceAudioCodec.fromString(reader.getString()); + } else if ("sample_rate".equals(fieldName)) { + sampleRate = reader.getNullable(JsonReader::getInt); + } else if ("channels".equals(fieldName)) { + channels = reader.getNullable(JsonReader::getInt); + } else if ("start_offset_ms".equals(fieldName)) { + startOffsetMs = reader.getNullable(JsonReader::getLong); + } else if ("duration_ms".equals(fieldName)) { + durationMs = reader.getNullable(JsonReader::getLong); + } else if ("blob_uri".equals(fieldName)) { + blobUri = reader.getString(); + } else { + reader.skipChildren(); + } + } + VoiceGeneratedItemAudioResponse deserializedVoiceGeneratedItemAudioResponse + = new VoiceGeneratedItemAudioResponse(conversationId, itemId); + deserializedVoiceGeneratedItemAudioResponse.role = role; + deserializedVoiceGeneratedItemAudioResponse.format = format; + deserializedVoiceGeneratedItemAudioResponse.codec = codec; + deserializedVoiceGeneratedItemAudioResponse.sampleRate = sampleRate; + deserializedVoiceGeneratedItemAudioResponse.channels = channels; + deserializedVoiceGeneratedItemAudioResponse.startOffsetMs = startOffsetMs; + deserializedVoiceGeneratedItemAudioResponse.durationMs = durationMs; + deserializedVoiceGeneratedItemAudioResponse.blobUri = blobUri; + + return deserializedVoiceGeneratedItemAudioResponse; + }); + } +} diff --git a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java index 4a469e25bacf..ba3c527c3967 100644 --- a/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java +++ b/sdk/ai/azure-ai-agents/src/main/java/com/azure/ai/agents/models/VoiceModelType.java @@ -55,4 +55,10 @@ public static VoiceModelType fromString(String name) { public static Collection values() { return values(VoiceModelType.class); } + + /** + * The service fronts a hosted text agent referenced by `target_agent`; `model` is not applicable in this mode. + */ + @Generated + public static final VoiceModelType HOSTED_AGENT = fromString("hosted_agent"); } 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 ad16a6038d10..5dfeb2b9315a 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":"5e37d29056d2","crossLanguageDefinitions":{"com.azure.ai.agents.AgentsAsyncClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsAsyncClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsAsyncClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsAsyncClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsAsyncClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsAsyncClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsAsyncClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsAsyncClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsAsyncClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsAsyncClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsAsyncClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsAsyncClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsAsyncClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsAsyncClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsAsyncClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsAsyncClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsAsyncClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient":"Azure.AI.Projects.Agents","com.azure.ai.agents.AgentsClient.createAgent":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createAgentFromCode":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentFromCode","com.azure.ai.agents.AgentsClient.createAgentFromManifest":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersion":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentVersionFromCode":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromCodeWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromCode","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifest":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionFromManifestWithResponse":"Azure.AI.Projects.Agents.createAgentVersionFromManifest","com.azure.ai.agents.AgentsClient.createAgentVersionWithResponse":"Azure.AI.Projects.Agents.createAgentVersion","com.azure.ai.agents.AgentsClient.createAgentWithResponse":"Azure.AI.Projects.Agents.createAgent","com.azure.ai.agents.AgentsClient.createSession":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.createSessionWithResponse":"Azure.AI.Projects.Agents.createSession","com.azure.ai.agents.AgentsClient.deleteSession":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.deleteSessionFile":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.deleteSessionFile","com.azure.ai.agents.AgentsClient.deleteSessionWithResponse":"Azure.AI.Projects.Agents.deleteSession","com.azure.ai.agents.AgentsClient.disableAgent":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.disableAgentWithResponse":"Azure.AI.Projects.Agents.disableAgent","com.azure.ai.agents.AgentsClient.downloadAgentCode":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadAgentCodeWithResponse":"Azure.AI.Projects.Agents.downloadAgentCode","com.azure.ai.agents.AgentsClient.downloadSessionFile":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.downloadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.downloadSessionFile","com.azure.ai.agents.AgentsClient.enableAgent":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.enableAgentWithResponse":"Azure.AI.Projects.Agents.enableAgent","com.azure.ai.agents.AgentsClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.listAgentConversations":"Azure.AI.Projects.Conversations.listConversations","com.azure.ai.agents.AgentsClient.listAgentVersions":"Azure.AI.Projects.Agents.listAgentVersions","com.azure.ai.agents.AgentsClient.listAgents":"Azure.AI.Projects.Agents.listAgents","com.azure.ai.agents.AgentsClient.listSessionFiles":"Azure.AI.Projects.AgentSessionFiles.listSessionFiles","com.azure.ai.agents.AgentsClient.listSessions":"Azure.AI.Projects.Agents.listSessions","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.publishAgentToMicrosoft365WithResponse":"Azure.AI.Projects.Microsoft365Publishing.publishAgentToMicrosoft365","com.azure.ai.agents.AgentsClient.stopSession":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.stopSessionWithResponse":"Azure.AI.Projects.Agents.stopSession","com.azure.ai.agents.AgentsClient.updateAgent":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.updateAgentDetails":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentDetailsWithResponse":"Azure.AI.Projects.Agents.patchAgentObject","com.azure.ai.agents.AgentsClient.updateAgentFromCode":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromCodeWithResponse":"Azure.AI.Projects.Agents.updateAgentFromCode","com.azure.ai.agents.AgentsClient.updateAgentFromManifest":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentFromManifestWithResponse":"Azure.AI.Projects.Agents.updateAgentFromManifest","com.azure.ai.agents.AgentsClient.updateAgentWithResponse":"Azure.AI.Projects.Agents.updateAgent","com.azure.ai.agents.AgentsClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClientBuilder":"Azure.AI.Projects","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentsAsyncClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaAgentsClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaMemoryStoresAsyncClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.ToolboxesAsyncClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesAsyncClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesAsyncClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys":"Azure.AI.Projects.AgentDefinitionOptInKeys","com.azure.ai.agents.implementation.models.CreateAgentFromCodeContent":"Azure.AI.Projects.CreateAgentFromCodeContent","com.azure.ai.agents.implementation.models.CreateAgentFromManifestRequest":"Azure.AI.Projects.createAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentOptions":null,"com.azure.ai.agents.implementation.models.CreateAgentRequest":"Azure.AI.Projects.createAgent.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest":"Azure.AI.Projects.createAgentVersionFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionRequest":"Azure.AI.Projects.createAgentVersion.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryRequest":"Azure.AI.Projects.createMemory.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryStoreRequest":"Azure.AI.Projects.createMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.CreateSessionRequest":"Azure.AI.Projects.createSession.Request.anonymous","com.azure.ai.agents.implementation.models.CreateToolboxVersionRequest":"Azure.AI.Projects.createToolboxVersion.Request.anonymous","com.azure.ai.agents.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest":"Azure.AI.Projects.getMicrosoft365AppPackage.Request.anonymous","com.azure.ai.agents.implementation.models.ListMemoriesRequest":"Azure.AI.Projects.listMemories.Request.anonymous","com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request":"Azure.AI.Projects.publishAgentToMicrosoft365.Request.anonymous","com.azure.ai.agents.implementation.models.SearchMemoriesRequest":"Azure.AI.Projects.searchMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest":"Azure.AI.Projects.updateAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentRequest":"Azure.AI.Projects.updateAgent.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoriesRequest":"Azure.AI.Projects.updateMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryRequest":"Azure.AI.Projects.updateMemory.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryStoreRequest":"Azure.AI.Projects.updateMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateToolboxInput":"Azure.AI.Projects.UpdateToolboxRequest","com.azure.ai.agents.implementation.models.UpdateToolboxRequest":"Azure.AI.Projects.updateToolbox.Request.anonymous","com.azure.ai.agents.models.A2APreviewTool":"Azure.AI.Projects.A2APreviewTool","com.azure.ai.agents.models.A2APreviewToolboxTool":"Azure.AI.Projects.A2APreviewToolboxTool","com.azure.ai.agents.models.A2AProtocolConfiguration":"Azure.AI.Projects.A2AProtocolConfiguration","com.azure.ai.agents.models.A2AProtocolVersion":"Azure.AI.Projects.A2AProtocolVersion","com.azure.ai.agents.models.A2ATool":"Azure.AI.Projects.A2ATool","com.azure.ai.agents.models.A2AToolCall":"Azure.AI.Projects.A2AToolCall","com.azure.ai.agents.models.A2AToolCallOutput":"Azure.AI.Projects.A2AToolCallOutput","com.azure.ai.agents.models.A2AToolboxTool":"Azure.AI.Projects.A2AToolboxTool","com.azure.ai.agents.models.AISearchIndexResource":"Azure.AI.Projects.AISearchIndexResource","com.azure.ai.agents.models.ActivityProtocolAccessBoundary":"Azure.AI.Projects.ActivityProtocolAccessBoundary","com.azure.ai.agents.models.ActivityProtocolConfiguration":"Azure.AI.Projects.ActivityProtocolConfiguration","com.azure.ai.agents.models.AgentBlueprintReference":"Azure.AI.Projects.AgentBlueprintReference","com.azure.ai.agents.models.AgentBlueprintReferenceType":"Azure.AI.Projects.AgentBlueprintReferenceType","com.azure.ai.agents.models.AgentCard":"Azure.AI.Projects.AgentCard","com.azure.ai.agents.models.AgentCardSkill":"Azure.AI.Projects.AgentCardSkill","com.azure.ai.agents.models.AgentDefinition":"Azure.AI.Projects.AgentDefinition","com.azure.ai.agents.models.AgentDetails":"Azure.AI.Projects.AgentObject","com.azure.ai.agents.models.AgentDetailsVersions":"Azure.AI.Projects.AgentObject.versions.anonymous","com.azure.ai.agents.models.AgentEndpointAuthorizationScheme":"Azure.AI.Projects.AgentEndpointAuthorizationScheme","com.azure.ai.agents.models.AgentEndpointAuthorizationSchemeType":"Azure.AI.Projects.AgentEndpointAuthorizationSchemeType","com.azure.ai.agents.models.AgentEndpointConfig":"Azure.AI.Projects.AgentEndpointConfig","com.azure.ai.agents.models.AgentEndpointProtocol":"Azure.AI.Projects.AgentEndpointProtocol","com.azure.ai.agents.models.AgentIdentity":"Azure.AI.Projects.AgentIdentity","com.azure.ai.agents.models.AgentIdentityStatus":"Azure.AI.Projects.AgentIdentityStatus","com.azure.ai.agents.models.AgentKind":"Azure.AI.Projects.AgentKind","com.azure.ai.agents.models.AgentObjectType":"Azure.AI.Projects.AgentObjectType","com.azure.ai.agents.models.AgentOptimizationCandidate":"Azure.AI.Projects.AgentOptimizationCandidate","com.azure.ai.agents.models.AgentOptimizationDatasetCriterion":"Azure.AI.Projects.AgentOptimizationDatasetCriterion","com.azure.ai.agents.models.AgentOptimizationDatasetInput":"Azure.AI.Projects.AgentOptimizationDatasetInput","com.azure.ai.agents.models.AgentOptimizationDatasetInputType":"Azure.AI.Projects.AgentOptimizationDatasetInputType","com.azure.ai.agents.models.AgentOptimizationDatasetItem":"Azure.AI.Projects.AgentOptimizationDatasetItem","com.azure.ai.agents.models.AgentOptimizationEvaluatorRef":"Azure.AI.Projects.AgentOptimizationEvaluatorRef","com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput":"Azure.AI.Projects.AgentOptimizationInlineDatasetInput","com.azure.ai.agents.models.AgentOptimizationJob":"Azure.AI.Projects.AgentOptimizationJob","com.azure.ai.agents.models.AgentOptimizationJobInputs":"Azure.AI.Projects.AgentOptimizationJobInputs","com.azure.ai.agents.models.AgentOptimizationJobListItem":"Azure.AI.Projects.AgentOptimizationJobListItem","com.azure.ai.agents.models.AgentOptimizationJobProgress":"Azure.AI.Projects.AgentOptimizationJobProgress","com.azure.ai.agents.models.AgentOptimizationJobResult":"Azure.AI.Projects.AgentOptimizationJobResult","com.azure.ai.agents.models.AgentOptimizationOptions":"Azure.AI.Projects.AgentOptimizationOptions","com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput":"Azure.AI.Projects.AgentOptimizationReferenceDatasetInput","com.azure.ai.agents.models.AgentReference":"Azure.AI.Projects.AgentReference","com.azure.ai.agents.models.AgentSessionResource":"Azure.AI.Projects.AgentSessionResource","com.azure.ai.agents.models.AgentSessionStatus":"Azure.AI.Projects.AgentSessionStatus","com.azure.ai.agents.models.AgentState":"Azure.AI.Projects.AgentState","com.azure.ai.agents.models.AgentStateSource":"Azure.AI.Projects.AgentStateSource","com.azure.ai.agents.models.AgentVersionDetails":"Azure.AI.Projects.AgentVersionObject","com.azure.ai.agents.models.AgentVersionStatus":"Azure.AI.Projects.AgentVersionStatus","com.azure.ai.agents.models.ApiError":"OpenAI.Error","com.azure.ai.agents.models.ApplyPatchToolParameter":"OpenAI.ApplyPatchToolParam","com.azure.ai.agents.models.ApproximateLocation":"OpenAI.ApproximateLocation","com.azure.ai.agents.models.AutoCodeInterpreterToolParameter":"OpenAI.AutoCodeInterpreterToolParam","com.azure.ai.agents.models.AzureAISearchQueryType":"Azure.AI.Projects.AzureAISearchQueryType","com.azure.ai.agents.models.AzureAISearchTool":"Azure.AI.Projects.AzureAISearchTool","com.azure.ai.agents.models.AzureAISearchToolCall":"Azure.AI.Projects.AzureAISearchToolCall","com.azure.ai.agents.models.AzureAISearchToolCallOutput":"Azure.AI.Projects.AzureAISearchToolCallOutput","com.azure.ai.agents.models.AzureAISearchToolResource":"Azure.AI.Projects.AzureAISearchToolResource","com.azure.ai.agents.models.AzureAISearchToolboxTool":"Azure.AI.Projects.AzureAISearchToolboxTool","com.azure.ai.agents.models.AzureCreateResponseDetails":"Azure.AI.Projects.AzureCreateResponseDetails","com.azure.ai.agents.models.AzureCreateResponseOptions":"Azure.AI.Projects.AzureCreateResponseOptions","com.azure.ai.agents.models.AzureFunctionBinding":"Azure.AI.Projects.AzureFunctionBinding","com.azure.ai.agents.models.AzureFunctionDefinition":"Azure.AI.Projects.AzureFunctionDefinition","com.azure.ai.agents.models.AzureFunctionDefinitionDetails":"Azure.AI.Projects.AzureFunctionDefinition.function.anonymous","com.azure.ai.agents.models.AzureFunctionStorageQueue":"Azure.AI.Projects.AzureFunctionStorageQueue","com.azure.ai.agents.models.AzureFunctionTool":"Azure.AI.Projects.AzureFunctionTool","com.azure.ai.agents.models.AzureFunctionToolCall":"Azure.AI.Projects.AzureFunctionToolCall","com.azure.ai.agents.models.AzureFunctionToolCallOutput":"Azure.AI.Projects.AzureFunctionToolCallOutput","com.azure.ai.agents.models.AzureUserSecurityContext":"Azure.AI.Projects.AzureUserSecurityContext","com.azure.ai.agents.models.BingCustomSearchConfiguration":"Azure.AI.Projects.BingCustomSearchConfiguration","com.azure.ai.agents.models.BingCustomSearchPreviewTool":"Azure.AI.Projects.BingCustomSearchPreviewTool","com.azure.ai.agents.models.BingCustomSearchToolCall":"Azure.AI.Projects.BingCustomSearchToolCall","com.azure.ai.agents.models.BingCustomSearchToolCallOutput":"Azure.AI.Projects.BingCustomSearchToolCallOutput","com.azure.ai.agents.models.BingCustomSearchToolParameters":"Azure.AI.Projects.BingCustomSearchToolParameters","com.azure.ai.agents.models.BingGroundingSearchConfiguration":"Azure.AI.Projects.BingGroundingSearchConfiguration","com.azure.ai.agents.models.BingGroundingSearchToolParameters":"Azure.AI.Projects.BingGroundingSearchToolParameters","com.azure.ai.agents.models.BingGroundingTool":"Azure.AI.Projects.BingGroundingTool","com.azure.ai.agents.models.BingGroundingToolCall":"Azure.AI.Projects.BingGroundingToolCall","com.azure.ai.agents.models.BingGroundingToolCallOutput":"Azure.AI.Projects.BingGroundingToolCallOutput","com.azure.ai.agents.models.BotServiceAuthorizationScheme":"Azure.AI.Projects.BotServiceAuthorizationScheme","com.azure.ai.agents.models.BotServiceRbacAuthorizationScheme":"Azure.AI.Projects.BotServiceRbacAuthorizationScheme","com.azure.ai.agents.models.BotServiceTenantAuthorizationScheme":"Azure.AI.Projects.BotServiceTenantAuthorizationScheme","com.azure.ai.agents.models.BrowserAutomationPreviewTool":"Azure.AI.Projects.BrowserAutomationPreviewTool","com.azure.ai.agents.models.BrowserAutomationPreviewToolboxTool":"Azure.AI.Projects.BrowserAutomationPreviewToolboxTool","com.azure.ai.agents.models.BrowserAutomationToolCall":"Azure.AI.Projects.BrowserAutomationToolCall","com.azure.ai.agents.models.BrowserAutomationToolCallOutput":"Azure.AI.Projects.BrowserAutomationToolCallOutput","com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters":"Azure.AI.Projects.BrowserAutomationToolConnectionParameters","com.azure.ai.agents.models.BrowserAutomationToolParameters":"Azure.AI.Projects.BrowserAutomationToolParameters","com.azure.ai.agents.models.CallableToolAllowedCaller":"OpenAI.CallableToolAllowedCaller","com.azure.ai.agents.models.CaptureStructuredOutputsTool":"Azure.AI.Projects.CaptureStructuredOutputsTool","com.azure.ai.agents.models.ChatSummaryMemoryItem":"Azure.AI.Projects.ChatSummaryMemoryItem","com.azure.ai.agents.models.CodeConfiguration":"Azure.AI.Projects.CodeConfiguration","com.azure.ai.agents.models.CodeDependencyResolution":"Azure.AI.Projects.CodeDependencyResolution","com.azure.ai.agents.models.CodeFileDetails":null,"com.azure.ai.agents.models.CodeInterpreterTool":"OpenAI.CodeInterpreterTool","com.azure.ai.agents.models.CodeInterpreterToolboxTool":"Azure.AI.Projects.CodeInterpreterToolboxTool","com.azure.ai.agents.models.ComputerEnvironment":"ComputerEnvironmentExpandable","com.azure.ai.agents.models.ComputerTool":"OpenAI.ComputerTool","com.azure.ai.agents.models.ComputerUsePreviewTool":"OpenAI.ComputerUsePreviewTool","com.azure.ai.agents.models.ContainerAutoParameter":"OpenAI.ContainerAutoParam","com.azure.ai.agents.models.ContainerConfiguration":"Azure.AI.Projects.ContainerConfiguration","com.azure.ai.agents.models.ContainerMemoryLimit":"ContainerMemoryLimitExpandable","com.azure.ai.agents.models.ContainerNetworkPolicyAllowlistParameter":"OpenAI.ContainerNetworkPolicyAllowlistParam","com.azure.ai.agents.models.ContainerNetworkPolicyDisabledParameter":"OpenAI.ContainerNetworkPolicyDisabledParam","com.azure.ai.agents.models.ContainerNetworkPolicyDomainSecretParameter":"OpenAI.ContainerNetworkPolicyDomainSecretParam","com.azure.ai.agents.models.ContainerNetworkPolicyParamType":"OpenAI.ContainerNetworkPolicyParamType","com.azure.ai.agents.models.ContainerNetworkPolicyParameter":"OpenAI.ContainerNetworkPolicyParam","com.azure.ai.agents.models.ContainerSkill":"OpenAI.ContainerSkill","com.azure.ai.agents.models.ContainerSkillType":"OpenAI.ContainerSkillType","com.azure.ai.agents.models.CreateAgentVersionFromCodeContent":"Azure.AI.Projects.CreateAgentVersionFromCodeContent","com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata":"Azure.AI.Projects.CreateAgentVersionFromCodeMetadata","com.azure.ai.agents.models.CreateAgentVersionInput":"Azure.AI.Projects.CreateAgentVersionRequest","com.azure.ai.agents.models.CreateAgentVersionOptions":null,"com.azure.ai.agents.models.CustomGrammarFormatParameter":"OpenAI.CustomGrammarFormatParam","com.azure.ai.agents.models.CustomTextFormatParameter":"OpenAI.CustomTextFormatParam","com.azure.ai.agents.models.CustomToolParamFormat":"OpenAI.CustomToolParamFormat","com.azure.ai.agents.models.CustomToolParamFormatType":"OpenAI.CustomToolParamFormatType","com.azure.ai.agents.models.CustomToolParameter":"OpenAI.CustomToolParam","com.azure.ai.agents.models.DigitalWorkerType":"Azure.AI.Projects.DigitalWorkerType","com.azure.ai.agents.models.EntraAuthorizationScheme":"Azure.AI.Projects.EntraAuthorizationScheme","com.azure.ai.agents.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.agents.models.ExternalAgentDefinition":"Azure.AI.Projects.ExternalAgentDefinition","com.azure.ai.agents.models.FabricDataAgentToolCall":"Azure.AI.Projects.FabricDataAgentToolCall","com.azure.ai.agents.models.FabricDataAgentToolCallOutput":"Azure.AI.Projects.FabricDataAgentToolCallOutput","com.azure.ai.agents.models.FabricDataAgentToolParameters":"Azure.AI.Projects.FabricDataAgentToolParameters","com.azure.ai.agents.models.FabricIqPreviewTool":"Azure.AI.Projects.FabricIQPreviewTool","com.azure.ai.agents.models.FabricIqPreviewToolboxTool":"Azure.AI.Projects.FabricIQPreviewToolboxTool","com.azure.ai.agents.models.FileSearchTool":"OpenAI.FileSearchTool","com.azure.ai.agents.models.FileSearchToolboxTool":"Azure.AI.Projects.FileSearchToolboxTool","com.azure.ai.agents.models.FixedRatioVersionSelectionRule":"Azure.AI.Projects.FixedRatioVersionSelectionRule","com.azure.ai.agents.models.FunctionShellToolParamEnvironment":"OpenAI.FunctionShellToolParamEnvironment","com.azure.ai.agents.models.FunctionShellToolParamEnvironmentType":"OpenAI.FunctionShellToolParamEnvironmentType","com.azure.ai.agents.models.FunctionShellToolParameter":"OpenAI.FunctionShellToolParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentContainerReferenceParameter":"OpenAI.FunctionShellToolParamEnvironmentContainerReferenceParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentLocalEnvironmentParameter":"OpenAI.FunctionShellToolParamEnvironmentLocalEnvironmentParam","com.azure.ai.agents.models.FunctionTool":"OpenAI.FunctionTool","com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions":null,"com.azure.ai.agents.models.GrammarSyntax":"GrammarSyntaxExpandable","com.azure.ai.agents.models.HeaderTelemetryEndpointAuth":"Azure.AI.Projects.HeaderTelemetryEndpointAuth","com.azure.ai.agents.models.HostedAgentDefinition":"Azure.AI.Projects.HostedAgentDefinition","com.azure.ai.agents.models.HybridSearchOptions":"OpenAI.HybridSearchOptions","com.azure.ai.agents.models.ImageGenActionEnum":"ImageGenActionEnumExpandable","com.azure.ai.agents.models.ImageGenTool":"OpenAI.ImageGenTool","com.azure.ai.agents.models.ImageGenToolBackground":"ImageGenToolBackgroundExpandable","com.azure.ai.agents.models.ImageGenToolInputImageMask":"OpenAI.ImageGenToolInputImageMask","com.azure.ai.agents.models.ImageGenToolModel":"OpenAI.ImageGenTool.model.anonymous","com.azure.ai.agents.models.ImageGenToolModeration":"ImageGenToolModerationExpandable","com.azure.ai.agents.models.ImageGenToolOutputFormat":"ImageGenToolOutputFormatExpandable","com.azure.ai.agents.models.ImageGenToolQuality":"ImageGenToolQualityExpandable","com.azure.ai.agents.models.ImageGenToolSize":"ImageGenToolSizeExpandable","com.azure.ai.agents.models.IncludeEnum":"OpenAI.IncludeEnum","com.azure.ai.agents.models.InlineSkillParameter":"OpenAI.InlineSkillParam","com.azure.ai.agents.models.InlineSkillSourceParameter":"OpenAI.InlineSkillSourceParam","com.azure.ai.agents.models.InputFidelity":"InputFidelityExpandable","com.azure.ai.agents.models.InvocationsProtocolConfiguration":"Azure.AI.Projects.InvocationsProtocolConfiguration","com.azure.ai.agents.models.InvocationsWsProtocolConfiguration":"Azure.AI.Projects.InvocationsWsProtocolConfiguration","com.azure.ai.agents.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.agents.models.ListMemoriesOptions":null,"com.azure.ai.agents.models.LocalShellToolParameter":"OpenAI.LocalShellToolParam","com.azure.ai.agents.models.LocalSkillParameter":"OpenAI.LocalSkillParam","com.azure.ai.agents.models.ManagedAgentIdentityBlueprintReference":"Azure.AI.Projects.ManagedAgentIdentityBlueprintReference","com.azure.ai.agents.models.McpListToolsTool":"OpenAI.MCPListToolsTool","com.azure.ai.agents.models.McpListToolsToolAnnotations":"OpenAI.MCPListToolsToolAnnotations","com.azure.ai.agents.models.McpListToolsToolInputSchema":"OpenAI.MCPListToolsToolInputSchema","com.azure.ai.agents.models.McpProtocolConfiguration":"Azure.AI.Projects.McpProtocolConfiguration","com.azure.ai.agents.models.McpTool":"OpenAI.MCPTool","com.azure.ai.agents.models.McpToolConnectorId":"McpToolConnectorIdExpandable","com.azure.ai.agents.models.McpToolFilter":"OpenAI.MCPToolFilter","com.azure.ai.agents.models.McpToolRequireApproval":"OpenAI.MCPToolRequireApproval","com.azure.ai.agents.models.McpToolboxTool":"Azure.AI.Projects.MCPToolboxTool","com.azure.ai.agents.models.MemoryCommandToolCall":"Azure.AI.Projects.MemoryCommandToolCall","com.azure.ai.agents.models.MemoryCommandToolCallOutput":"Azure.AI.Projects.MemoryCommandToolCallOutput","com.azure.ai.agents.models.MemoryItem":"Azure.AI.Projects.MemoryItem","com.azure.ai.agents.models.MemoryItemKind":"Azure.AI.Projects.MemoryItemKind","com.azure.ai.agents.models.MemoryOperation":"Azure.AI.Projects.MemoryOperation","com.azure.ai.agents.models.MemoryOperationKind":"Azure.AI.Projects.MemoryOperationKind","com.azure.ai.agents.models.MemorySearchItem":"Azure.AI.Projects.MemorySearchItem","com.azure.ai.agents.models.MemorySearchOptions":"Azure.AI.Projects.MemorySearchOptions","com.azure.ai.agents.models.MemorySearchPreviewTool":"Azure.AI.Projects.MemorySearchPreviewTool","com.azure.ai.agents.models.MemorySearchToolCall":"Azure.AI.Projects.MemorySearchToolCall","com.azure.ai.agents.models.MemoryStoreDefaultDefinition":"Azure.AI.Projects.MemoryStoreDefaultDefinition","com.azure.ai.agents.models.MemoryStoreDefaultOptions":"Azure.AI.Projects.MemoryStoreDefaultOptions","com.azure.ai.agents.models.MemoryStoreDefinition":"Azure.AI.Projects.MemoryStoreDefinition","com.azure.ai.agents.models.MemoryStoreDetails":"Azure.AI.Projects.MemoryStoreObject","com.azure.ai.agents.models.MemoryStoreKind":"Azure.AI.Projects.MemoryStoreKind","com.azure.ai.agents.models.MemoryStoreObjectType":"Azure.AI.Projects.MemoryStoreObjectType","com.azure.ai.agents.models.MemoryStoreOperationUsage":"Azure.AI.Projects.MemoryStoreOperationUsage","com.azure.ai.agents.models.MemoryStoreSearchResponse":"Azure.AI.Projects.MemoryStoreSearchResponse","com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult":"Azure.AI.Projects.MemoryStoreUpdateCompletedResult","com.azure.ai.agents.models.MemoryStoreUpdateResponse":"Azure.AI.Projects.MemoryStoreUpdateResponse","com.azure.ai.agents.models.MemoryStoreUpdateStatus":"Azure.AI.Projects.MemoryStoreUpdateStatus","com.azure.ai.agents.models.Microsoft365PermissionScopes":"Azure.AI.Projects.Microsoft365PermissionScopes","com.azure.ai.agents.models.Microsoft365PublishDefaults":"Azure.AI.Projects.Microsoft365PublishDefaults","com.azure.ai.agents.models.Microsoft365PublishResponse":"Azure.AI.Projects.Microsoft365PublishResponse","com.azure.ai.agents.models.Microsoft365PublishScope":"Azure.AI.Projects.Microsoft365PublishScope","com.azure.ai.agents.models.MicrosoftFabricPreviewTool":"Azure.AI.Projects.MicrosoftFabricPreviewTool","com.azure.ai.agents.models.ModelRouterAttempt":"Azure.AI.Projects.ModelRouterAttempt","com.azure.ai.agents.models.ModelRouterAttemptError":"Azure.AI.Projects.ModelRouterAttemptError","com.azure.ai.agents.models.ModelRouterAttemptResult":"Azure.AI.Projects.ModelRouterAttemptResult","com.azure.ai.agents.models.ModelRouterDetails":"Azure.AI.Projects.ModelRouterDetails","com.azure.ai.agents.models.ModelRouterMode":"Azure.AI.Projects.ModelRouterMode","com.azure.ai.agents.models.ModelSelectionDetails":"Azure.AI.Projects.ModelSelectionDetails","com.azure.ai.agents.models.NamespaceTool":"OpenAI.NamespaceToolParam","com.azure.ai.agents.models.OpenApiAnonymousAuthDetails":"Azure.AI.Projects.OpenApiAnonymousAuthDetails","com.azure.ai.agents.models.OpenApiAuthDetails":"Azure.AI.Projects.OpenApiAuthDetails","com.azure.ai.agents.models.OpenApiAuthType":"Azure.AI.Projects.OpenApiAuthType","com.azure.ai.agents.models.OpenApiFunctionDefinition":"Azure.AI.Projects.OpenApiFunctionDefinition","com.azure.ai.agents.models.OpenApiFunctionDefinitionFunction":"Azure.AI.Projects.OpenApiFunctionDefinition.function.anonymous","com.azure.ai.agents.models.OpenApiManagedAuthDetails":"Azure.AI.Projects.OpenApiManagedAuthDetails","com.azure.ai.agents.models.OpenApiManagedSecurityScheme":"Azure.AI.Projects.OpenApiManagedSecurityScheme","com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails":"Azure.AI.Projects.OpenApiProjectConnectionAuthDetails","com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme":"Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme","com.azure.ai.agents.models.OpenApiTool":"Azure.AI.Projects.OpenApiTool","com.azure.ai.agents.models.OpenApiToolCall":"Azure.AI.Projects.OpenApiToolCall","com.azure.ai.agents.models.OpenApiToolCallOutput":"Azure.AI.Projects.OpenApiToolCallOutput","com.azure.ai.agents.models.OpenApiToolboxTool":"Azure.AI.Projects.OpenApiToolboxTool","com.azure.ai.agents.models.OptimizedAgentIdentifier":"Azure.AI.Projects.OptimizedAgentIdentifier","com.azure.ai.agents.models.OtlpTelemetryEndpoint":"Azure.AI.Projects.OtlpTelemetryEndpoint","com.azure.ai.agents.models.PageOrder":"Azure.AI.Projects.PageOrder","com.azure.ai.agents.models.ProceduralMemoryItem":"Azure.AI.Projects.ProceduralMemoryItem","com.azure.ai.agents.models.ProgrammaticToolCallingParameter":"OpenAI.ProgrammaticToolCallingParam","com.azure.ai.agents.models.PromotionInfo":"Azure.AI.Projects.PromotionInfo","com.azure.ai.agents.models.PromptAgentDefinition":"Azure.AI.Projects.PromptAgentDefinition","com.azure.ai.agents.models.PromptAgentDefinitionReasoningContext":"Azure.AI.Projects.PromptAgentDefinition.reasoning.context.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningGenerateSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.generate_summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionTextOptions":"Azure.AI.Projects.PromptAgentDefinitionTextOptions","com.azure.ai.agents.models.ProtocolConfiguration":"Azure.AI.Projects.ProtocolConfiguration","com.azure.ai.agents.models.ProtocolVersionRecord":"Azure.AI.Projects.ProtocolVersionRecord","com.azure.ai.agents.models.PublishAgentToMicrosoft365Options":null,"com.azure.ai.agents.models.PublishApprovalStatus":"Azure.AI.Projects.PublishApprovalStatus","com.azure.ai.agents.models.RaiConfig":"Azure.AI.Projects.RaiConfig","com.azure.ai.agents.models.RankerVersionType":"RankerVersionTypeExpandable","com.azure.ai.agents.models.RankingOptions":"OpenAI.RankingOptions","com.azure.ai.agents.models.RealtimeAudioFormats":"OpenAI.RealtimeAudioFormats","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcm":"OpenAI.RealtimeAudioFormatsAudioPcm","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmRate":null,"com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcma":"OpenAI.RealtimeAudioFormatsAudioPcma","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmu":"OpenAI.RealtimeAudioFormatsAudioPcmu","com.azure.ai.agents.models.RealtimeAudioFormatsType":"OpenAI.RealtimeAudioFormatsType","com.azure.ai.agents.models.RealtimeConversationItem":"OpenAI.RealtimeConversationItem","com.azure.ai.agents.models.RealtimeConversationItemFunctionCall":"OpenAI.RealtimeConversationItemFunctionCall","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutput":"OpenAI.RealtimeConversationItemFunctionCallOutput","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutputStatus":"OpenAI.RealtimeConversationItemFunctionCallOutput.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallStatus":"OpenAI.RealtimeConversationItemFunctionCall.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject":null,"com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject1":null,"com.azure.ai.agents.models.RealtimeConversationItemType":"OpenAI.RealtimeConversationItemType","com.azure.ai.agents.models.RealtimeFunctionToolParameters":"OpenAI.RealtimeFunctionToolParameters","com.azure.ai.agents.models.RealtimeMCPApprovalRequest":"OpenAI.RealtimeMCPApprovalRequest","com.azure.ai.agents.models.RealtimeMCPApprovalResponse":"OpenAI.RealtimeMCPApprovalResponse","com.azure.ai.agents.models.RealtimeMCPError":"OpenAI.RealtimeMCPError","com.azure.ai.agents.models.RealtimeMCPHttpError":"OpenAI.RealtimeMCPHTTPError","com.azure.ai.agents.models.RealtimeMCPListTools":"OpenAI.RealtimeMCPListTools","com.azure.ai.agents.models.RealtimeMCPProtocolError":"OpenAI.RealtimeMCPProtocolError","com.azure.ai.agents.models.RealtimeMCPToolCall":"OpenAI.RealtimeMCPToolCall","com.azure.ai.agents.models.RealtimeMCPToolExecutionError":"OpenAI.RealtimeMCPToolExecutionError","com.azure.ai.agents.models.RealtimeMcpErrorType":"OpenAI.RealtimeMcpErrorType","com.azure.ai.agents.models.RealtimeResponseStatusDetails":"OpenAI.RealtimeResponseStatusDetails","com.azure.ai.agents.models.RealtimeResponseStatusDetailsError":"OpenAI.RealtimeResponseStatusDetailsError","com.azure.ai.agents.models.RealtimeResponseStatusDetailsReason":"OpenAI.RealtimeResponseStatusDetails.reason.anonymous","com.azure.ai.agents.models.RealtimeResponseStatusDetailsType":"OpenAI.RealtimeResponseStatusDetails.type.anonymous","com.azure.ai.agents.models.RealtimeResponseUsage":"OpenAI.RealtimeResponseUsage","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetails":"OpenAI.RealtimeResponseUsageInputTokenDetails","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails":"OpenAI.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails","com.azure.ai.agents.models.RealtimeResponseUsageOutputTokenDetails":"OpenAI.RealtimeResponseUsageOutputTokenDetails","com.azure.ai.agents.models.Reasoning":"OpenAI.Reasoning","com.azure.ai.agents.models.ReasoningEffort":"OpenAI.ReasoningEffort","com.azure.ai.agents.models.ReasoningModeEnum":"OpenAI.ReasoningModeEnum","com.azure.ai.agents.models.ReminderPreviewToolboxTool":"Azure.AI.Projects.ReminderPreviewToolboxTool","com.azure.ai.agents.models.ResponseFormatJsonSchemaInner":"OpenAI.ResponseFormatJsonSchemaSchema","com.azure.ai.agents.models.ResponseUsageInputTokensDetails":"OpenAI.ResponseUsageInputTokensDetails","com.azure.ai.agents.models.ResponseUsageOutputTokensDetails":"OpenAI.ResponseUsageOutputTokensDetails","com.azure.ai.agents.models.ResponsesProtocolConfiguration":"Azure.AI.Projects.ResponsesProtocolConfiguration","com.azure.ai.agents.models.RoutingTraceEntry":"Azure.AI.Projects.RoutingTraceEntry","com.azure.ai.agents.models.SearchContentType":"OpenAI.SearchContentType","com.azure.ai.agents.models.SearchContextSize":"SearchContextSizeExpandable","com.azure.ai.agents.models.SessionConfiguration":"Azure.AI.Projects.SessionConfiguration","com.azure.ai.agents.models.SessionDirectoryEntry":"Azure.AI.Projects.SessionDirectoryEntry","com.azure.ai.agents.models.SessionFileWriteResult":"Azure.AI.Projects.SessionFileWriteResponse","com.azure.ai.agents.models.SessionLogEvent":"Azure.AI.Projects.SessionLogEvent","com.azure.ai.agents.models.SessionLogEventType":"Azure.AI.Projects.SessionLogEventType","com.azure.ai.agents.models.SharepointGroundingToolCall":"Azure.AI.Projects.SharepointGroundingToolCall","com.azure.ai.agents.models.SharepointGroundingToolCallOutput":"Azure.AI.Projects.SharepointGroundingToolCallOutput","com.azure.ai.agents.models.SharepointGroundingToolParameters":"Azure.AI.Projects.SharepointGroundingToolParameters","com.azure.ai.agents.models.SharepointPreviewTool":"Azure.AI.Projects.SharepointPreviewTool","com.azure.ai.agents.models.ShellToolboxTool":"Azure.AI.Projects.ShellToolboxTool","com.azure.ai.agents.models.SkillReferenceParameter":"OpenAI.SkillReferenceParam","com.azure.ai.agents.models.StructuredInputDefinition":"Azure.AI.Projects.StructuredInputDefinition","com.azure.ai.agents.models.StructuredOutputDefinition":"Azure.AI.Projects.StructuredOutputDefinition","com.azure.ai.agents.models.TelemetryConfig":"Azure.AI.Projects.TelemetryConfig","com.azure.ai.agents.models.TelemetryDataKind":"Azure.AI.Projects.TelemetryDataKind","com.azure.ai.agents.models.TelemetryEndpoint":"Azure.AI.Projects.TelemetryEndpoint","com.azure.ai.agents.models.TelemetryEndpointAuth":"Azure.AI.Projects.TelemetryEndpointAuth","com.azure.ai.agents.models.TelemetryEndpointAuthType":"Azure.AI.Projects.TelemetryEndpointAuthType","com.azure.ai.agents.models.TelemetryEndpointKind":"Azure.AI.Projects.TelemetryEndpointKind","com.azure.ai.agents.models.TelemetryTransportProtocol":"Azure.AI.Projects.TelemetryTransportProtocol","com.azure.ai.agents.models.TextResponseFormatConfiguration":"OpenAI.TextResponseFormatConfiguration","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatJsonObject":"OpenAI.TextResponseFormatConfigurationResponseFormatJsonObject","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatText":"OpenAI.TextResponseFormatConfigurationResponseFormatText","com.azure.ai.agents.models.TextResponseFormatConfigurationType":"OpenAI.TextResponseFormatConfigurationType","com.azure.ai.agents.models.TextResponseFormatJsonSchema":"OpenAI.TextResponseFormatJsonSchema","com.azure.ai.agents.models.Tool":"OpenAI.Tool","com.azure.ai.agents.models.ToolCallStatus":"Azure.AI.Projects.ToolCallStatus","com.azure.ai.agents.models.ToolChoiceFunction":"OpenAI.ToolChoiceFunction","com.azure.ai.agents.models.ToolChoiceMCP":"OpenAI.ToolChoiceMCP","com.azure.ai.agents.models.ToolChoiceParam":"OpenAI.ToolChoiceParam","com.azure.ai.agents.models.ToolChoiceParamType":"OpenAI.ToolChoiceParamType","com.azure.ai.agents.models.ToolConfig":"Azure.AI.Projects.ToolConfig","com.azure.ai.agents.models.ToolProjectConnection":"Azure.AI.Projects.ToolProjectConnection","com.azure.ai.agents.models.ToolSearchExecutionType":"OpenAI.ToolSearchExecutionType","com.azure.ai.agents.models.ToolSearchTool":"OpenAI.ToolSearchToolParam","com.azure.ai.agents.models.ToolSearchToolboxTool":"Azure.AI.Projects.ToolSearchToolboxTool","com.azure.ai.agents.models.ToolType":"OpenAI.ToolType","com.azure.ai.agents.models.ToolboxDetails":"Azure.AI.Projects.ToolboxObject","com.azure.ai.agents.models.ToolboxPolicies":"Azure.AI.Projects.ToolboxPolicies","com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool":"Azure.AI.Projects.ToolboxSearchPreviewToolboxTool","com.azure.ai.agents.models.ToolboxShellContainerAutoEnvironment":"Azure.AI.Projects.ToolboxShellContainerAutoEnvironment","com.azure.ai.agents.models.ToolboxShellContainerReferenceEnvironment":"Azure.AI.Projects.ToolboxShellContainerReferenceEnvironment","com.azure.ai.agents.models.ToolboxShellEnvironment":"Azure.AI.Projects.ToolboxShellEnvironment","com.azure.ai.agents.models.ToolboxShellNetworkPolicy":"Azure.AI.Projects.ToolboxShellNetworkPolicy","com.azure.ai.agents.models.ToolboxShellNetworkPolicyDisabled":"Azure.AI.Projects.ToolboxShellNetworkPolicyDisabled","com.azure.ai.agents.models.ToolboxSkill":"Azure.AI.Projects.ToolboxSkill","com.azure.ai.agents.models.ToolboxSkillReference":"Azure.AI.Projects.ToolboxSkillReference","com.azure.ai.agents.models.ToolboxTool":"Azure.AI.Projects.ToolboxTool","com.azure.ai.agents.models.ToolboxToolType":"Azure.AI.Projects.ToolboxToolType","com.azure.ai.agents.models.ToolboxVersionDetails":"Azure.AI.Projects.ToolboxVersionObject","com.azure.ai.agents.models.UpdateAgentDetailsOptions":"Azure.AI.Projects.patchAgentObject.Request.anonymous","com.azure.ai.agents.models.UserProfileMemoryItem":"Azure.AI.Projects.UserProfileMemoryItem","com.azure.ai.agents.models.VersionIndicator":"Azure.AI.Projects.VersionIndicator","com.azure.ai.agents.models.VersionIndicatorType":"Azure.AI.Projects.VersionIndicatorType","com.azure.ai.agents.models.VersionRefIndicator":"Azure.AI.Projects.VersionRefIndicator","com.azure.ai.agents.models.VersionSelectionRule":"Azure.AI.Projects.VersionSelectionRule","com.azure.ai.agents.models.VersionSelector":"Azure.AI.Projects.VersionSelector","com.azure.ai.agents.models.VersionSelectorType":"Azure.AI.Projects.VersionSelectorType","com.azure.ai.agents.models.VoiceAgentAudioConfig":"Azure.AI.Projects.VoiceAgentAudioConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfig":"Azure.AI.Projects.VoiceAgentAudioInputConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfigTranscriptionDelay":"Azure.AI.Projects.VoiceAgentAudioInputConfig.transcription.delay.anonymous","com.azure.ai.agents.models.VoiceAgentAudioOutputConfig":"Azure.AI.Projects.VoiceAgentAudioOutputConfig","com.azure.ai.agents.models.VoiceAgentAudioTimestampType":"Azure.AI.Projects.VoiceAgentAudioTimestampType","com.azure.ai.agents.models.VoiceAgentAvatarConfig":"Azure.AI.Projects.VoiceAgentAvatarConfig","com.azure.ai.agents.models.VoiceAgentAvatarOutputProtocol":"Azure.AI.Projects.VoiceAgentAvatarOutputProtocol","com.azure.ai.agents.models.VoiceAgentAvatarScene":"Azure.AI.Projects.VoiceAgentAvatarScene","com.azure.ai.agents.models.VoiceAgentAvatarType":"Azure.AI.Projects.VoiceAgentAvatarType","com.azure.ai.agents.models.VoiceAgentAvatarVideoBackground":"Azure.AI.Projects.VoiceAgentAvatarVideoBackground","com.azure.ai.agents.models.VoiceAgentAvatarVideoCrop":"Azure.AI.Projects.VoiceAgentAvatarVideoCrop","com.azure.ai.agents.models.VoiceAgentAvatarVideoParams":"Azure.AI.Projects.VoiceAgentAvatarVideoParams","com.azure.ai.agents.models.VoiceAgentAvatarVideoResolution":"Azure.AI.Projects.VoiceAgentAvatarVideoResolution","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadEnTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadEnTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadMultilingualTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadMultilingualTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentDefinition":"Azure.AI.Projects.VoiceAgentDefinition","com.azure.ai.agents.models.VoiceAgentEchoCancellation":"Azure.AI.Projects.VoiceAgentEchoCancellation","com.azure.ai.agents.models.VoiceAgentEchoCancellationReferenceSource":"Azure.AI.Projects.VoiceAgentEchoCancellationReferenceSource","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetection":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetection","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetectionModel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetectionModel","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceThresholdLevel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceThresholdLevel","com.azure.ai.agents.models.VoiceAgentFunctionTool":"Azure.AI.Projects.VoiceAgentFunctionTool","com.azure.ai.agents.models.VoiceAgentGreetingConfig":"Azure.AI.Projects.VoiceAgentGreetingConfig","com.azure.ai.agents.models.VoiceAgentInputTranscription":"Azure.AI.Projects.VoiceAgentInputTranscription","com.azure.ai.agents.models.VoiceAgentInputTranscriptionModel":"Azure.AI.Projects.VoiceAgentInputTranscriptionModel","com.azure.ai.agents.models.VoiceAgentInterimResponseConfig":"Azure.AI.Projects.VoiceAgentInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentInterimResponseTrigger":"Azure.AI.Projects.VoiceAgentInterimResponseTrigger","com.azure.ai.agents.models.VoiceAgentLlmGeneratedGreetingConfig":"Azure.AI.Projects.VoiceAgentLlmGeneratedGreetingConfig","com.azure.ai.agents.models.VoiceAgentLlmInterimResponseConfig":"Azure.AI.Projects.VoiceAgentLlmInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentMcpTool":"Azure.AI.Projects.VoiceAgentMcpTool","com.azure.ai.agents.models.VoiceAgentNoiseReduction":"Azure.AI.Projects.VoiceAgentNoiseReduction","com.azure.ai.agents.models.VoiceAgentNoiseReductionType":"Azure.AI.Projects.VoiceAgentNoiseReductionType","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetectionEagerness":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection.eagerness.anonymous","com.azure.ai.agents.models.VoiceAgentServerVadTurnDetection":"Azure.AI.Projects.VoiceAgentServerVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSessionIncludeOption":"Azure.AI.Projects.VoiceAgentSessionIncludeOption","com.azure.ai.agents.models.VoiceAgentStaticInterimResponseConfig":"Azure.AI.Projects.VoiceAgentStaticInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentSystemTool":"Azure.AI.Projects.VoiceAgentSystemTool","com.azure.ai.agents.models.VoiceAgentSystemToolName":"Azure.AI.Projects.VoiceAgentSystemToolName","com.azure.ai.agents.models.VoiceAgentTemplateGreetingConfig":"Azure.AI.Projects.VoiceAgentTemplateGreetingConfig","com.azure.ai.agents.models.VoiceAgentTool":"Azure.AI.Projects.VoiceAgentTool","com.azure.ai.agents.models.VoiceAgentToolResponseScheduling":"Azure.AI.Projects.VoiceAgentToolResponseScheduling","com.azure.ai.agents.models.VoiceAgentToolboxTool":"Azure.AI.Projects.VoiceAgentToolboxTool","com.azure.ai.agents.models.VoiceAgentTurnDetectionConfig":"Azure.AI.Projects.VoiceAgentTurnDetectionConfig","com.azure.ai.agents.models.VoiceAgentTurnDetectionType":"Azure.AI.Projects.VoiceAgentTurnDetectionType","com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol":"Azure.AI.Projects.VoiceAgentWebSocketSubprotocol","com.azure.ai.agents.models.VoiceAudioCodec":"Azure.AI.Projects.VoiceAudioCodec","com.azure.ai.agents.models.VoiceAudioContainerFormat":"Azure.AI.Projects.VoiceAudioContainerFormat","com.azure.ai.agents.models.VoiceAudioRole":"Azure.AI.Projects.VoiceAudioRole","com.azure.ai.agents.models.VoiceConversation":"Azure.AI.Projects.VoiceConversation","com.azure.ai.agents.models.VoiceConversationStatus":"Azure.AI.Projects.VoiceConversationStatus","com.azure.ai.agents.models.VoiceItemAudioResponse":"Azure.AI.Projects.VoiceItemAudioResponse","com.azure.ai.agents.models.VoiceModelType":"Azure.AI.Projects.VoiceModelType","com.azure.ai.agents.models.VoiceOutputModality":"Azure.AI.Projects.VoiceOutputModality","com.azure.ai.agents.models.VoiceRecordingChannelLayout":"Azure.AI.Projects.VoiceRecordingChannelLayout","com.azure.ai.agents.models.VoiceRecordingResponse":"Azure.AI.Projects.VoiceRecordingResponse","com.azure.ai.agents.models.VoiceResponse":"Azure.AI.Projects.VoiceResponse","com.azure.ai.agents.models.VoiceResponseAudio":"Azure.AI.Projects.VoiceResponseAudio","com.azure.ai.agents.models.VoiceResponseAudioOutput":"Azure.AI.Projects.VoiceResponseAudioOutput","com.azure.ai.agents.models.VoiceResponseBase":"Azure.AI.Projects.VoiceResponseBase","com.azure.ai.agents.models.VoiceResponseBaseObject":null,"com.azure.ai.agents.models.VoiceResponseBaseOutputModality":"Azure.AI.Projects.VoiceResponseBase.output_modality.anonymous","com.azure.ai.agents.models.VoiceResponseBaseStatus":"Azure.AI.Projects.VoiceResponseBase.status.anonymous","com.azure.ai.agents.models.VoiceType":"Azure.AI.Projects.VoiceType","com.azure.ai.agents.models.WebIqPreviewTool":"Azure.AI.Projects.WebIQPreviewTool","com.azure.ai.agents.models.WebIqPreviewToolboxTool":"Azure.AI.Projects.WebIQPreviewToolboxTool","com.azure.ai.agents.models.WebSearchApproximateLocation":"OpenAI.WebSearchApproximateLocation","com.azure.ai.agents.models.WebSearchConfiguration":"Azure.AI.Projects.WebSearchConfiguration","com.azure.ai.agents.models.WebSearchPreviewTool":"OpenAI.WebSearchPreviewTool","com.azure.ai.agents.models.WebSearchTool":"OpenAI.WebSearchTool","com.azure.ai.agents.models.WebSearchToolFilters":"OpenAI.WebSearchToolFilters","com.azure.ai.agents.models.WebSearchToolSearchContextSize":"WebSearchToolSearchContextSizeExpandable","com.azure.ai.agents.models.WebSearchToolboxTool":"Azure.AI.Projects.WebSearchToolboxTool","com.azure.ai.agents.models.WorkIqPreviewTool":"Azure.AI.Projects.WorkIQPreviewTool","com.azure.ai.agents.models.WorkIqPreviewToolboxTool":"Azure.AI.Projects.WorkIQPreviewToolboxTool","com.azure.ai.agents.models.WorkflowAgentDefinition":"Azure.AI.Projects.WorkflowAgentDefinition"},"generatedFiles":["src/main/java/com/azure/ai/agents/AgentsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentsClient.java","src/main/java/com/azure/ai/agents/AgentsClientBuilder.java","src/main/java/com/azure/ai/agents/AgentsServiceVersion.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java","src/main/java/com/azure/ai/agents/BetaAgentsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentsClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresAsyncClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java","src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java","src/main/java/com/azure/ai/agents/ToolboxesClient.java","src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaMemoryStoresImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java","src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/agents/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/PollingUtils.java","src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java","src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromCodeContent.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateSessionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateToolboxVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java","src/main/java/com/azure/ai/agents/implementation/models/ListMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java","src/main/java/com/azure/ai/agents/implementation/models/SearchMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxInput.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxRequest.java","src/main/java/com/azure/ai/agents/implementation/models/package-info.java","src/main/java/com/azure/ai/agents/implementation/package-info.java","src/main/java/com/azure/ai/agents/models/A2APreviewTool.java","src/main/java/com/azure/ai/agents/models/A2APreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/A2AProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/A2AProtocolVersion.java","src/main/java/com/azure/ai/agents/models/A2ATool.java","src/main/java/com/azure/ai/agents/models/A2AToolCall.java","src/main/java/com/azure/ai/agents/models/A2AToolCallOutput.java","src/main/java/com/azure/ai/agents/models/A2AToolboxTool.java","src/main/java/com/azure/ai/agents/models/AISearchIndexResource.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReference.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReferenceType.java","src/main/java/com/azure/ai/agents/models/AgentCard.java","src/main/java/com/azure/ai/agents/models/AgentCardSkill.java","src/main/java/com/azure/ai/agents/models/AgentDefinition.java","src/main/java/com/azure/ai/agents/models/AgentDetails.java","src/main/java/com/azure/ai/agents/models/AgentDetailsVersions.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationSchemeType.java","src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java","src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java","src/main/java/com/azure/ai/agents/models/AgentIdentity.java","src/main/java/com/azure/ai/agents/models/AgentIdentityStatus.java","src/main/java/com/azure/ai/agents/models/AgentKind.java","src/main/java/com/azure/ai/agents/models/AgentObjectType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationCandidate.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetCriterion.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInputType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationInlineDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJob.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobListItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobResult.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationOptions.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationReferenceDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentReference.java","src/main/java/com/azure/ai/agents/models/AgentSessionResource.java","src/main/java/com/azure/ai/agents/models/AgentSessionStatus.java","src/main/java/com/azure/ai/agents/models/AgentState.java","src/main/java/com/azure/ai/agents/models/AgentStateSource.java","src/main/java/com/azure/ai/agents/models/AgentVersionDetails.java","src/main/java/com/azure/ai/agents/models/AgentVersionStatus.java","src/main/java/com/azure/ai/agents/models/ApiError.java","src/main/java/com/azure/ai/agents/models/ApplyPatchToolParameter.java","src/main/java/com/azure/ai/agents/models/ApproximateLocation.java","src/main/java/com/azure/ai/agents/models/AutoCodeInterpreterToolParameter.java","src/main/java/com/azure/ai/agents/models/AzureAISearchQueryType.java","src/main/java/com/azure/ai/agents/models/AzureAISearchTool.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCall.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolResource.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java","src/main/java/com/azure/ai/agents/models/AzureFunctionBinding.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinitionDetails.java","src/main/java/com/azure/ai/agents/models/AzureFunctionStorageQueue.java","src/main/java/com/azure/ai/agents/models/AzureFunctionTool.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCall.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureUserSecurityContext.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCall.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingTool.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BotServiceAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceRbacAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceTenantAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCall.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolConnectionParameters.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolParameters.java","src/main/java/com/azure/ai/agents/models/CallableToolAllowedCaller.java","src/main/java/com/azure/ai/agents/models/CaptureStructuredOutputsTool.java","src/main/java/com/azure/ai/agents/models/ChatSummaryMemoryItem.java","src/main/java/com/azure/ai/agents/models/CodeConfiguration.java","src/main/java/com/azure/ai/agents/models/CodeDependencyResolution.java","src/main/java/com/azure/ai/agents/models/CodeFileDetails.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterTool.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterToolboxTool.java","src/main/java/com/azure/ai/agents/models/ComputerEnvironment.java","src/main/java/com/azure/ai/agents/models/ComputerTool.java","src/main/java/com/azure/ai/agents/models/ComputerUsePreviewTool.java","src/main/java/com/azure/ai/agents/models/ContainerAutoParameter.java","src/main/java/com/azure/ai/agents/models/ContainerConfiguration.java","src/main/java/com/azure/ai/agents/models/ContainerMemoryLimit.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyAllowlistParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDisabledParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDomainSecretParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParamType.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParameter.java","src/main/java/com/azure/ai/agents/models/ContainerSkill.java","src/main/java/com/azure/ai/agents/models/ContainerSkillType.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeContent.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeMetadata.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java","src/main/java/com/azure/ai/agents/models/CustomGrammarFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomTextFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormat.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormatType.java","src/main/java/com/azure/ai/agents/models/CustomToolParameter.java","src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java","src/main/java/com/azure/ai/agents/models/EntraAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/EvaluationLevel.java","src/main/java/com/azure/ai/agents/models/ExternalAgentDefinition.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCall.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCallOutput.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolParameters.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/FileSearchTool.java","src/main/java/com/azure/ai/agents/models/FileSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/FixedRatioVersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironment.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironmentType.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentContainerReferenceParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentLocalEnvironmentParameter.java","src/main/java/com/azure/ai/agents/models/FunctionTool.java","src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java","src/main/java/com/azure/ai/agents/models/GrammarSyntax.java","src/main/java/com/azure/ai/agents/models/HeaderTelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java","src/main/java/com/azure/ai/agents/models/HybridSearchOptions.java","src/main/java/com/azure/ai/agents/models/ImageGenActionEnum.java","src/main/java/com/azure/ai/agents/models/ImageGenTool.java","src/main/java/com/azure/ai/agents/models/ImageGenToolBackground.java","src/main/java/com/azure/ai/agents/models/ImageGenToolInputImageMask.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModel.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModeration.java","src/main/java/com/azure/ai/agents/models/ImageGenToolOutputFormat.java","src/main/java/com/azure/ai/agents/models/ImageGenToolQuality.java","src/main/java/com/azure/ai/agents/models/ImageGenToolSize.java","src/main/java/com/azure/ai/agents/models/IncludeEnum.java","src/main/java/com/azure/ai/agents/models/InlineSkillParameter.java","src/main/java/com/azure/ai/agents/models/InlineSkillSourceParameter.java","src/main/java/com/azure/ai/agents/models/InputFidelity.java","src/main/java/com/azure/ai/agents/models/InvocationsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/InvocationsWsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/JobStatus.java","src/main/java/com/azure/ai/agents/models/ListMemoriesOptions.java","src/main/java/com/azure/ai/agents/models/LocalShellToolParameter.java","src/main/java/com/azure/ai/agents/models/LocalSkillParameter.java","src/main/java/com/azure/ai/agents/models/ManagedAgentIdentityBlueprintReference.java","src/main/java/com/azure/ai/agents/models/McpListToolsTool.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java","src/main/java/com/azure/ai/agents/models/McpProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/McpTool.java","src/main/java/com/azure/ai/agents/models/McpToolConnectorId.java","src/main/java/com/azure/ai/agents/models/McpToolFilter.java","src/main/java/com/azure/ai/agents/models/McpToolRequireApproval.java","src/main/java/com/azure/ai/agents/models/McpToolboxTool.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCallOutput.java","src/main/java/com/azure/ai/agents/models/MemoryItem.java","src/main/java/com/azure/ai/agents/models/MemoryItemKind.java","src/main/java/com/azure/ai/agents/models/MemoryOperation.java","src/main/java/com/azure/ai/agents/models/MemoryOperationKind.java","src/main/java/com/azure/ai/agents/models/MemorySearchItem.java","src/main/java/com/azure/ai/agents/models/MemorySearchOptions.java","src/main/java/com/azure/ai/agents/models/MemorySearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/MemorySearchToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultOptions.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDetails.java","src/main/java/com/azure/ai/agents/models/MemoryStoreKind.java","src/main/java/com/azure/ai/agents/models/MemoryStoreObjectType.java","src/main/java/com/azure/ai/agents/models/MemoryStoreOperationUsage.java","src/main/java/com/azure/ai/agents/models/MemoryStoreSearchResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateCompletedResult.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateStatus.java","src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java","src/main/java/com/azure/ai/agents/models/MicrosoftFabricPreviewTool.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java","src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java","src/main/java/com/azure/ai/agents/models/ModelRouterMode.java","src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java","src/main/java/com/azure/ai/agents/models/NamespaceTool.java","src/main/java/com/azure/ai/agents/models/OpenApiAnonymousAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthType.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinitionFunction.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiTool.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCall.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCallOutput.java","src/main/java/com/azure/ai/agents/models/OpenApiToolboxTool.java","src/main/java/com/azure/ai/agents/models/OptimizedAgentIdentifier.java","src/main/java/com/azure/ai/agents/models/OtlpTelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/PageOrder.java","src/main/java/com/azure/ai/agents/models/ProceduralMemoryItem.java","src/main/java/com/azure/ai/agents/models/ProgrammaticToolCallingParameter.java","src/main/java/com/azure/ai/agents/models/PromotionInfo.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionTextOptions.java","src/main/java/com/azure/ai/agents/models/ProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/ProtocolVersionRecord.java","src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java","src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java","src/main/java/com/azure/ai/agents/models/RaiConfig.java","src/main/java/com/azure/ai/agents/models/RankerVersionType.java","src/main/java/com/azure/ai/agents/models/RankingOptions.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java","src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPHttpError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java","src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java","src/main/java/com/azure/ai/agents/models/Reasoning.java","src/main/java/com/azure/ai/agents/models/ReasoningEffort.java","src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java","src/main/java/com/azure/ai/agents/models/ReminderPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ResponseFormatJsonSchemaInner.java","src/main/java/com/azure/ai/agents/models/ResponseUsageInputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponseUsageOutputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponsesProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java","src/main/java/com/azure/ai/agents/models/SearchContentType.java","src/main/java/com/azure/ai/agents/models/SearchContextSize.java","src/main/java/com/azure/ai/agents/models/SessionConfiguration.java","src/main/java/com/azure/ai/agents/models/SessionDirectoryEntry.java","src/main/java/com/azure/ai/agents/models/SessionFileWriteResult.java","src/main/java/com/azure/ai/agents/models/SessionLogEvent.java","src/main/java/com/azure/ai/agents/models/SessionLogEventType.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolParameters.java","src/main/java/com/azure/ai/agents/models/SharepointPreviewTool.java","src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java","src/main/java/com/azure/ai/agents/models/SkillReferenceParameter.java","src/main/java/com/azure/ai/agents/models/StructuredInputDefinition.java","src/main/java/com/azure/ai/agents/models/StructuredOutputDefinition.java","src/main/java/com/azure/ai/agents/models/TelemetryConfig.java","src/main/java/com/azure/ai/agents/models/TelemetryDataKind.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointAuthType.java","src/main/java/com/azure/ai/agents/models/TelemetryEndpointKind.java","src/main/java/com/azure/ai/agents/models/TelemetryTransportProtocol.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfiguration.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatJsonObject.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatText.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationType.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatJsonSchema.java","src/main/java/com/azure/ai/agents/models/Tool.java","src/main/java/com/azure/ai/agents/models/ToolCallStatus.java","src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java","src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java","src/main/java/com/azure/ai/agents/models/ToolConfig.java","src/main/java/com/azure/ai/agents/models/ToolProjectConnection.java","src/main/java/com/azure/ai/agents/models/ToolSearchExecutionType.java","src/main/java/com/azure/ai/agents/models/ToolSearchTool.java","src/main/java/com/azure/ai/agents/models/ToolSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxDetails.java","src/main/java/com/azure/ai/agents/models/ToolboxPolicies.java","src/main/java/com/azure/ai/agents/models/ToolboxSearchPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java","src/main/java/com/azure/ai/agents/models/ToolboxSkill.java","src/main/java/com/azure/ai/agents/models/ToolboxSkillReference.java","src/main/java/com/azure/ai/agents/models/ToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxVersionDetails.java","src/main/java/com/azure/ai/agents/models/UpdateAgentDetailsOptions.java","src/main/java/com/azure/ai/agents/models/UserProfileMemoryItem.java","src/main/java/com/azure/ai/agents/models/VersionIndicator.java","src/main/java/com/azure/ai/agents/models/VersionIndicatorType.java","src/main/java/com/azure/ai/agents/models/VersionRefIndicator.java","src/main/java/com/azure/ai/agents/models/VersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/VersionSelector.java","src/main/java/com/azure/ai/agents/models/VersionSelectorType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java","src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java","src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java","src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java","src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java","src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java","src/main/java/com/azure/ai/agents/models/VoiceConversation.java","src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java","src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java","src/main/java/com/azure/ai/agents/models/VoiceModelType.java","src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java","src/main/java/com/azure/ai/agents/models/VoiceType.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java","src/main/java/com/azure/ai/agents/models/WebSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebSearchTool.java","src/main/java/com/azure/ai/agents/models/WebSearchToolFilters.java","src/main/java/com/azure/ai/agents/models/WebSearchToolSearchContextSize.java","src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkflowAgentDefinition.java","src/main/java/com/azure/ai/agents/models/package-info.java","src/main/java/com/azure/ai/agents/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file +{"flavor":"azure","apiVersions":{"Azure.AI.Projects":"v1"},"crossLanguagePackageId":"Azure.AI.Projects","crossLanguageVersion":"7737a56f4bcd","crossLanguageDefinitions":{"com.azure.ai.agents.AgentEndpointConversationsAsyncClient":"Azure.AI.Projects.AgentEndpointConversations","com.azure.ai.agents.AgentEndpointConversationsAsyncClient.getAgentConversationItemGeneratedAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudio","com.azure.ai.agents.AgentEndpointConversationsAsyncClient.getAgentConversationItemGeneratedAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudioContent","com.azure.ai.agents.AgentEndpointConversationsAsyncClient.getAgentConversationItemGeneratedAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudioContent","com.azure.ai.agents.AgentEndpointConversationsAsyncClient.getAgentConversationItemGeneratedAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudio","com.azure.ai.agents.AgentEndpointConversationsClient":"Azure.AI.Projects.AgentEndpointConversations","com.azure.ai.agents.AgentEndpointConversationsClient.getAgentConversationItemGeneratedAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudio","com.azure.ai.agents.AgentEndpointConversationsClient.getAgentConversationItemGeneratedAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudioContent","com.azure.ai.agents.AgentEndpointConversationsClient.getAgentConversationItemGeneratedAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudioContent","com.azure.ai.agents.AgentEndpointConversationsClient.getAgentConversationItemGeneratedAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemGeneratedAudio","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.createTelephonyBinding":"Azure.AI.Projects.AgentTelephony.createTelephonyBinding","com.azure.ai.agents.AgentsAsyncClient.createTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.createTelephonyBinding","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.deleteTelephonyBinding":"Azure.AI.Projects.AgentTelephony.deleteTelephonyBinding","com.azure.ai.agents.AgentsAsyncClient.deleteTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.deleteTelephonyBinding","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.endTelephonyCall":"Azure.AI.Projects.AgentTelephony.endTelephonyCall","com.azure.ai.agents.AgentsAsyncClient.endTelephonyCallWithResponse":"Azure.AI.Projects.AgentTelephony.endTelephonyCall","com.azure.ai.agents.AgentsAsyncClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsAsyncClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsAsyncClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsAsyncClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsAsyncClient.getTelephonyBinding":"Azure.AI.Projects.AgentTelephony.getTelephonyBinding","com.azure.ai.agents.AgentsAsyncClient.getTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.getTelephonyBinding","com.azure.ai.agents.AgentsAsyncClient.getTelephonyCall":"Azure.AI.Projects.AgentTelephony.getTelephonyCall","com.azure.ai.agents.AgentsAsyncClient.getTelephonyCallWithResponse":"Azure.AI.Projects.AgentTelephony.getTelephonyCall","com.azure.ai.agents.AgentsAsyncClient.getTelephonyTransferTargets":"Azure.AI.Projects.AgentTelephony.getTelephonyTransferTargets","com.azure.ai.agents.AgentsAsyncClient.getTelephonyTransferTargetsWithResponse":"Azure.AI.Projects.AgentTelephony.getTelephonyTransferTargets","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.listTelephonyBindings":"Azure.AI.Projects.AgentTelephony.listTelephonyBindings","com.azure.ai.agents.AgentsAsyncClient.listTelephonyCalls":"Azure.AI.Projects.AgentTelephony.listTelephonyCalls","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.replaceTelephonyTransferTargets":"Azure.AI.Projects.AgentTelephony.replaceTelephonyTransferTargets","com.azure.ai.agents.AgentsAsyncClient.replaceTelephonyTransferTargetsWithResponse":"Azure.AI.Projects.AgentTelephony.replaceTelephonyTransferTargets","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.transferTelephonyCall":"Azure.AI.Projects.AgentTelephony.transferTelephonyCall","com.azure.ai.agents.AgentsAsyncClient.transferTelephonyCallWithResponse":"Azure.AI.Projects.AgentTelephony.transferTelephonyCall","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.updateTelephonyBinding":"Azure.AI.Projects.AgentTelephony.updateTelephonyBinding","com.azure.ai.agents.AgentsAsyncClient.updateTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.updateTelephonyBinding","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.createTelephonyBinding":"Azure.AI.Projects.AgentTelephony.createTelephonyBinding","com.azure.ai.agents.AgentsClient.createTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.createTelephonyBinding","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.deleteTelephonyBinding":"Azure.AI.Projects.AgentTelephony.deleteTelephonyBinding","com.azure.ai.agents.AgentsClient.deleteTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.deleteTelephonyBinding","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.endTelephonyCall":"Azure.AI.Projects.AgentTelephony.endTelephonyCall","com.azure.ai.agents.AgentsClient.endTelephonyCallWithResponse":"Azure.AI.Projects.AgentTelephony.endTelephonyCall","com.azure.ai.agents.AgentsClient.generateAgent":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.generateAgentWithResponse":"Azure.AI.Projects.Agents.generateAgent","com.azure.ai.agents.AgentsClient.getAgent":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getAgentVersionDetails":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentVersionDetailsWithResponse":"Azure.AI.Projects.Agents.getAgentVersion","com.azure.ai.agents.AgentsClient.getAgentWithResponse":"Azure.AI.Projects.Agents.getAgent","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackage":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365AppPackageWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365AppPackage","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaults":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getMicrosoft365PublishDefaultsWithResponse":"Azure.AI.Projects.Microsoft365Publishing.getMicrosoft365PublishDefaults","com.azure.ai.agents.AgentsClient.getSession":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getSessionWithResponse":"Azure.AI.Projects.Agents.getSession","com.azure.ai.agents.AgentsClient.getTelephonyBinding":"Azure.AI.Projects.AgentTelephony.getTelephonyBinding","com.azure.ai.agents.AgentsClient.getTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.getTelephonyBinding","com.azure.ai.agents.AgentsClient.getTelephonyCall":"Azure.AI.Projects.AgentTelephony.getTelephonyCall","com.azure.ai.agents.AgentsClient.getTelephonyCallWithResponse":"Azure.AI.Projects.AgentTelephony.getTelephonyCall","com.azure.ai.agents.AgentsClient.getTelephonyTransferTargets":"Azure.AI.Projects.AgentTelephony.getTelephonyTransferTargets","com.azure.ai.agents.AgentsClient.getTelephonyTransferTargetsWithResponse":"Azure.AI.Projects.AgentTelephony.getTelephonyTransferTargets","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.listTelephonyBindings":"Azure.AI.Projects.AgentTelephony.listTelephonyBindings","com.azure.ai.agents.AgentsClient.listTelephonyCalls":"Azure.AI.Projects.AgentTelephony.listTelephonyCalls","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.replaceTelephonyTransferTargets":"Azure.AI.Projects.AgentTelephony.replaceTelephonyTransferTargets","com.azure.ai.agents.AgentsClient.replaceTelephonyTransferTargetsWithResponse":"Azure.AI.Projects.AgentTelephony.replaceTelephonyTransferTargets","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.transferTelephonyCall":"Azure.AI.Projects.AgentTelephony.transferTelephonyCall","com.azure.ai.agents.AgentsClient.transferTelephonyCallWithResponse":"Azure.AI.Projects.AgentTelephony.transferTelephonyCall","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.updateTelephonyBinding":"Azure.AI.Projects.AgentTelephony.updateTelephonyBinding","com.azure.ai.agents.AgentsClient.updateTelephonyBindingWithResponse":"Azure.AI.Projects.AgentTelephony.updateTelephonyBinding","com.azure.ai.agents.AgentsClient.uploadSessionFile":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClient.uploadSessionFileWithResponse":"Azure.AI.Projects.AgentSessionFiles.uploadSessionFile","com.azure.ai.agents.AgentsClientBuilder":"Azure.AI.Projects","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsAsyncClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient":"Azure.AI.Projects.Beta.AgentEndpointConversations","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.deleteAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.deleteAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversation":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItem":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudio":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContent":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioContentWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudioContent","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemAudioWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItemAudio","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationItemWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationItem","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationResponseWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversationResponse","com.azure.ai.agents.BetaAgentEndpointConversationsClient.getAgentConversationWithResponse":"Azure.AI.Projects.AgentEndpointConversations.getAgentConversation","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponseItems":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponseItems","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversationResponses":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversationResponses","com.azure.ai.agents.BetaAgentEndpointConversationsClient.listAgentConversations":"Azure.AI.Projects.AgentEndpointConversations.listAgentConversations","com.azure.ai.agents.BetaAgentsAsyncClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsAsyncClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaAgentsClient":"Azure.AI.Projects.Beta.Agents","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.beginCreateOptimizationJobWithModel":"Azure.AI.Projects.AgentOptimizationJobs.create","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.cancelOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.cancel","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.deleteOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.delete","com.azure.ai.agents.BetaAgentsClient.getOptimizationJob":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.getOptimizationJobWithResponse":"Azure.AI.Projects.AgentOptimizationJobs.get","com.azure.ai.agents.BetaAgentsClient.listOptimizationJobs":"Azure.AI.Projects.AgentOptimizationJobs.list","com.azure.ai.agents.BetaMemoryStoresAsyncClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresAsyncClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresAsyncClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient":"Azure.AI.Projects.Beta.MemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemories":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.beginInternalUpdateMemoriesWithModel":"Azure.AI.Projects.MemoryStores.updateMemories","com.azure.ai.agents.BetaMemoryStoresClient.createMemory":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStore":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.createMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.createMemoryWithResponse":"Azure.AI.Projects.MemoryStores.createMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemory":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStore":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.getMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.getMemoryWithResponse":"Azure.AI.Projects.MemoryStores.getMemory","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResult":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.getUpdateResultWithResponse":"Azure.AI.Projects.MemoryStores.getUpdateResult","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemories":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.internalSearchMemoriesWithResponse":"Azure.AI.Projects.MemoryStores.searchMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemories":"Azure.AI.Projects.MemoryStores.listMemories","com.azure.ai.agents.BetaMemoryStoresClient.listMemoryStores":"Azure.AI.Projects.MemoryStores.listMemoryStores","com.azure.ai.agents.BetaMemoryStoresClient.updateMemory":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStore":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryStoreWithResponse":"Azure.AI.Projects.MemoryStores.updateMemoryStore","com.azure.ai.agents.BetaMemoryStoresClient.updateMemoryWithResponse":"Azure.AI.Projects.MemoryStores.updateMemory","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketAsyncClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient":"Azure.AI.Projects.Beta.VoiceAgentWebSocket","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgent":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.BetaVoiceAgentWebSocketClient.connectVoiceAgentWithResponse":"Azure.AI.Projects.VoiceAgentWebSocket.connectVoiceAgent","com.azure.ai.agents.ToolboxesAsyncClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesAsyncClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesAsyncClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesAsyncClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesAsyncClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient":"Azure.AI.Projects.Toolboxes","com.azure.ai.agents.ToolboxesClient.createToolboxVersion":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.createToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.createToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolbox":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersion":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolboxVersion","com.azure.ai.agents.ToolboxesClient.deleteToolboxWithResponse":"Azure.AI.Projects.Toolboxes.deleteToolbox","com.azure.ai.agents.ToolboxesClient.getToolbox":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.getToolboxVersion":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxVersionWithResponse":"Azure.AI.Projects.Toolboxes.getToolboxVersion","com.azure.ai.agents.ToolboxesClient.getToolboxWithResponse":"Azure.AI.Projects.Toolboxes.getToolbox","com.azure.ai.agents.ToolboxesClient.listToolboxVersions":"Azure.AI.Projects.Toolboxes.listToolboxVersions","com.azure.ai.agents.ToolboxesClient.listToolboxes":"Azure.AI.Projects.Toolboxes.listToolboxes","com.azure.ai.agents.ToolboxesClient.updateToolbox":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.ToolboxesClient.updateToolboxWithResponse":"Azure.AI.Projects.Toolboxes.updateToolbox","com.azure.ai.agents.implementation.models.AgentDefinitionOptInKeys":"Azure.AI.Projects.AgentDefinitionOptInKeys","com.azure.ai.agents.implementation.models.CreateAgentFromCodeContent":"Azure.AI.Projects.CreateAgentFromCodeContent","com.azure.ai.agents.implementation.models.CreateAgentFromManifestRequest":"Azure.AI.Projects.createAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentOptions":null,"com.azure.ai.agents.implementation.models.CreateAgentRequest":"Azure.AI.Projects.createAgent.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionFromManifestRequest":"Azure.AI.Projects.createAgentVersionFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.CreateAgentVersionRequest":"Azure.AI.Projects.createAgentVersion.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryRequest":"Azure.AI.Projects.createMemory.Request.anonymous","com.azure.ai.agents.implementation.models.CreateMemoryStoreRequest":"Azure.AI.Projects.createMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.CreateSessionRequest":"Azure.AI.Projects.createSession.Request.anonymous","com.azure.ai.agents.implementation.models.CreateToolboxVersionRequest":"Azure.AI.Projects.createToolboxVersion.Request.anonymous","com.azure.ai.agents.implementation.models.FoundryFeaturesOptInKeys":"Azure.AI.Projects.FoundryFeaturesOptInKeys","com.azure.ai.agents.implementation.models.GetMicrosoft365AppPackageRequest":"Azure.AI.Projects.getMicrosoft365AppPackage.Request.anonymous","com.azure.ai.agents.implementation.models.ListMemoriesRequest":"Azure.AI.Projects.listMemories.Request.anonymous","com.azure.ai.agents.implementation.models.PublishAgentToMicrosoft365Request":"Azure.AI.Projects.publishAgentToMicrosoft365.Request.anonymous","com.azure.ai.agents.implementation.models.ReplaceTelephonyTransferTargetsRequest":"Azure.AI.Projects.replaceTelephonyTransferTargets.Request.anonymous","com.azure.ai.agents.implementation.models.SearchMemoriesRequest":"Azure.AI.Projects.searchMemories.Request.anonymous","com.azure.ai.agents.implementation.models.TransferTelephonyCallRequest":"Azure.AI.Projects.transferTelephonyCall.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentFromManifestRequest":"Azure.AI.Projects.updateAgentFromManifest.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateAgentRequest":"Azure.AI.Projects.updateAgent.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoriesRequest":"Azure.AI.Projects.updateMemories.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryRequest":"Azure.AI.Projects.updateMemory.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateMemoryStoreRequest":"Azure.AI.Projects.updateMemoryStore.Request.anonymous","com.azure.ai.agents.implementation.models.UpdateToolboxInput":"Azure.AI.Projects.UpdateToolboxRequest","com.azure.ai.agents.implementation.models.UpdateToolboxRequest":"Azure.AI.Projects.updateToolbox.Request.anonymous","com.azure.ai.agents.models.A2APreviewTool":"Azure.AI.Projects.A2APreviewTool","com.azure.ai.agents.models.A2APreviewToolboxTool":"Azure.AI.Projects.A2APreviewToolboxTool","com.azure.ai.agents.models.A2AProtocolConfiguration":"Azure.AI.Projects.A2AProtocolConfiguration","com.azure.ai.agents.models.A2AProtocolVersion":"Azure.AI.Projects.A2AProtocolVersion","com.azure.ai.agents.models.A2ATool":"Azure.AI.Projects.A2ATool","com.azure.ai.agents.models.A2AToolCall":"Azure.AI.Projects.A2AToolCall","com.azure.ai.agents.models.A2AToolCallOutput":"Azure.AI.Projects.A2AToolCallOutput","com.azure.ai.agents.models.A2AToolboxTool":"Azure.AI.Projects.A2AToolboxTool","com.azure.ai.agents.models.AISearchIndexResource":"Azure.AI.Projects.AISearchIndexResource","com.azure.ai.agents.models.ActivityProtocolAccessBoundary":"Azure.AI.Projects.ActivityProtocolAccessBoundary","com.azure.ai.agents.models.ActivityProtocolConfiguration":"Azure.AI.Projects.ActivityProtocolConfiguration","com.azure.ai.agents.models.AgentBlueprintReference":"Azure.AI.Projects.AgentBlueprintReference","com.azure.ai.agents.models.AgentBlueprintReferenceType":"Azure.AI.Projects.AgentBlueprintReferenceType","com.azure.ai.agents.models.AgentCard":"Azure.AI.Projects.AgentCard","com.azure.ai.agents.models.AgentCardSkill":"Azure.AI.Projects.AgentCardSkill","com.azure.ai.agents.models.AgentDefinition":"Azure.AI.Projects.AgentDefinition","com.azure.ai.agents.models.AgentDetails":"Azure.AI.Projects.AgentObject","com.azure.ai.agents.models.AgentDetailsVersions":"Azure.AI.Projects.AgentObject.versions.anonymous","com.azure.ai.agents.models.AgentEndpointAuthorizationScheme":"Azure.AI.Projects.AgentEndpointAuthorizationScheme","com.azure.ai.agents.models.AgentEndpointAuthorizationSchemeType":"Azure.AI.Projects.AgentEndpointAuthorizationSchemeType","com.azure.ai.agents.models.AgentEndpointConfig":"Azure.AI.Projects.AgentEndpointConfig","com.azure.ai.agents.models.AgentEndpointProtocol":"Azure.AI.Projects.AgentEndpointProtocol","com.azure.ai.agents.models.AgentIdentity":"Azure.AI.Projects.AgentIdentity","com.azure.ai.agents.models.AgentIdentityStatus":"Azure.AI.Projects.AgentIdentityStatus","com.azure.ai.agents.models.AgentKind":"Azure.AI.Projects.AgentKind","com.azure.ai.agents.models.AgentObjectType":"Azure.AI.Projects.AgentObjectType","com.azure.ai.agents.models.AgentOptimizationCandidate":"Azure.AI.Projects.AgentOptimizationCandidate","com.azure.ai.agents.models.AgentOptimizationDatasetCriterion":"Azure.AI.Projects.AgentOptimizationDatasetCriterion","com.azure.ai.agents.models.AgentOptimizationDatasetInput":"Azure.AI.Projects.AgentOptimizationDatasetInput","com.azure.ai.agents.models.AgentOptimizationDatasetInputType":"Azure.AI.Projects.AgentOptimizationDatasetInputType","com.azure.ai.agents.models.AgentOptimizationDatasetItem":"Azure.AI.Projects.AgentOptimizationDatasetItem","com.azure.ai.agents.models.AgentOptimizationEvaluatorRef":"Azure.AI.Projects.AgentOptimizationEvaluatorRef","com.azure.ai.agents.models.AgentOptimizationInlineDatasetInput":"Azure.AI.Projects.AgentOptimizationInlineDatasetInput","com.azure.ai.agents.models.AgentOptimizationJob":"Azure.AI.Projects.AgentOptimizationJob","com.azure.ai.agents.models.AgentOptimizationJobInputs":"Azure.AI.Projects.AgentOptimizationJobInputs","com.azure.ai.agents.models.AgentOptimizationJobListItem":"Azure.AI.Projects.AgentOptimizationJobListItem","com.azure.ai.agents.models.AgentOptimizationJobProgress":"Azure.AI.Projects.AgentOptimizationJobProgress","com.azure.ai.agents.models.AgentOptimizationJobResult":"Azure.AI.Projects.AgentOptimizationJobResult","com.azure.ai.agents.models.AgentOptimizationOptions":"Azure.AI.Projects.AgentOptimizationOptions","com.azure.ai.agents.models.AgentOptimizationReferenceDatasetInput":"Azure.AI.Projects.AgentOptimizationReferenceDatasetInput","com.azure.ai.agents.models.AgentReference":"Azure.AI.Projects.AgentReference","com.azure.ai.agents.models.AgentSessionResource":"Azure.AI.Projects.AgentSessionResource","com.azure.ai.agents.models.AgentSessionStatus":"Azure.AI.Projects.AgentSessionStatus","com.azure.ai.agents.models.AgentState":"Azure.AI.Projects.AgentState","com.azure.ai.agents.models.AgentStateSource":"Azure.AI.Projects.AgentStateSource","com.azure.ai.agents.models.AgentVersionDetails":"Azure.AI.Projects.AgentVersionObject","com.azure.ai.agents.models.AgentVersionStatus":"Azure.AI.Projects.AgentVersionStatus","com.azure.ai.agents.models.ApiError":"OpenAI.Error","com.azure.ai.agents.models.ApplyPatchToolParameter":"OpenAI.ApplyPatchToolParam","com.azure.ai.agents.models.ApproximateLocation":"OpenAI.ApproximateLocation","com.azure.ai.agents.models.AutoCodeInterpreterToolParameter":"OpenAI.AutoCodeInterpreterToolParam","com.azure.ai.agents.models.AzureAISearchQueryType":"Azure.AI.Projects.AzureAISearchQueryType","com.azure.ai.agents.models.AzureAISearchTool":"Azure.AI.Projects.AzureAISearchTool","com.azure.ai.agents.models.AzureAISearchToolCall":"Azure.AI.Projects.AzureAISearchToolCall","com.azure.ai.agents.models.AzureAISearchToolCallOutput":"Azure.AI.Projects.AzureAISearchToolCallOutput","com.azure.ai.agents.models.AzureAISearchToolResource":"Azure.AI.Projects.AzureAISearchToolResource","com.azure.ai.agents.models.AzureAISearchToolboxTool":"Azure.AI.Projects.AzureAISearchToolboxTool","com.azure.ai.agents.models.AzureCreateResponseDetails":"Azure.AI.Projects.AzureCreateResponseDetails","com.azure.ai.agents.models.AzureCreateResponseOptions":"Azure.AI.Projects.AzureCreateResponseOptions","com.azure.ai.agents.models.AzureFunctionBinding":"Azure.AI.Projects.AzureFunctionBinding","com.azure.ai.agents.models.AzureFunctionDefinition":"Azure.AI.Projects.AzureFunctionDefinition","com.azure.ai.agents.models.AzureFunctionDefinitionDetails":"Azure.AI.Projects.AzureFunctionDefinition.function.anonymous","com.azure.ai.agents.models.AzureFunctionStorageQueue":"Azure.AI.Projects.AzureFunctionStorageQueue","com.azure.ai.agents.models.AzureFunctionTool":"Azure.AI.Projects.AzureFunctionTool","com.azure.ai.agents.models.AzureFunctionToolCall":"Azure.AI.Projects.AzureFunctionToolCall","com.azure.ai.agents.models.AzureFunctionToolCallOutput":"Azure.AI.Projects.AzureFunctionToolCallOutput","com.azure.ai.agents.models.AzureUserSecurityContext":"Azure.AI.Projects.AzureUserSecurityContext","com.azure.ai.agents.models.BingCustomSearchConfiguration":"Azure.AI.Projects.BingCustomSearchConfiguration","com.azure.ai.agents.models.BingCustomSearchPreviewTool":"Azure.AI.Projects.BingCustomSearchPreviewTool","com.azure.ai.agents.models.BingCustomSearchToolCall":"Azure.AI.Projects.BingCustomSearchToolCall","com.azure.ai.agents.models.BingCustomSearchToolCallOutput":"Azure.AI.Projects.BingCustomSearchToolCallOutput","com.azure.ai.agents.models.BingCustomSearchToolParameters":"Azure.AI.Projects.BingCustomSearchToolParameters","com.azure.ai.agents.models.BingGroundingSearchConfiguration":"Azure.AI.Projects.BingGroundingSearchConfiguration","com.azure.ai.agents.models.BingGroundingSearchToolParameters":"Azure.AI.Projects.BingGroundingSearchToolParameters","com.azure.ai.agents.models.BingGroundingTool":"Azure.AI.Projects.BingGroundingTool","com.azure.ai.agents.models.BingGroundingToolCall":"Azure.AI.Projects.BingGroundingToolCall","com.azure.ai.agents.models.BingGroundingToolCallOutput":"Azure.AI.Projects.BingGroundingToolCallOutput","com.azure.ai.agents.models.BotServiceAuthorizationScheme":"Azure.AI.Projects.BotServiceAuthorizationScheme","com.azure.ai.agents.models.BotServiceRbacAuthorizationScheme":"Azure.AI.Projects.BotServiceRbacAuthorizationScheme","com.azure.ai.agents.models.BotServiceTenantAuthorizationScheme":"Azure.AI.Projects.BotServiceTenantAuthorizationScheme","com.azure.ai.agents.models.BrowserAutomationPreviewTool":"Azure.AI.Projects.BrowserAutomationPreviewTool","com.azure.ai.agents.models.BrowserAutomationPreviewToolboxTool":"Azure.AI.Projects.BrowserAutomationPreviewToolboxTool","com.azure.ai.agents.models.BrowserAutomationToolCall":"Azure.AI.Projects.BrowserAutomationToolCall","com.azure.ai.agents.models.BrowserAutomationToolCallOutput":"Azure.AI.Projects.BrowserAutomationToolCallOutput","com.azure.ai.agents.models.BrowserAutomationToolConnectionParameters":"Azure.AI.Projects.BrowserAutomationToolConnectionParameters","com.azure.ai.agents.models.BrowserAutomationToolParameters":"Azure.AI.Projects.BrowserAutomationToolParameters","com.azure.ai.agents.models.CallableToolAllowedCaller":"OpenAI.CallableToolAllowedCaller","com.azure.ai.agents.models.CaptureStructuredOutputsTool":"Azure.AI.Projects.CaptureStructuredOutputsTool","com.azure.ai.agents.models.ChatSummaryMemoryItem":"Azure.AI.Projects.ChatSummaryMemoryItem","com.azure.ai.agents.models.CodeConfiguration":"Azure.AI.Projects.CodeConfiguration","com.azure.ai.agents.models.CodeDependencyResolution":"Azure.AI.Projects.CodeDependencyResolution","com.azure.ai.agents.models.CodeFileDetails":null,"com.azure.ai.agents.models.CodeInterpreterTool":"OpenAI.CodeInterpreterTool","com.azure.ai.agents.models.CodeInterpreterToolboxTool":"Azure.AI.Projects.CodeInterpreterToolboxTool","com.azure.ai.agents.models.ComputerEnvironment":"ComputerEnvironmentExpandable","com.azure.ai.agents.models.ComputerTool":"OpenAI.ComputerTool","com.azure.ai.agents.models.ComputerUsePreviewTool":"OpenAI.ComputerUsePreviewTool","com.azure.ai.agents.models.ContainerAutoParameter":"OpenAI.ContainerAutoParam","com.azure.ai.agents.models.ContainerConfiguration":"Azure.AI.Projects.ContainerConfiguration","com.azure.ai.agents.models.ContainerMemoryLimit":"ContainerMemoryLimitExpandable","com.azure.ai.agents.models.ContainerNetworkPolicyAllowlistParameter":"OpenAI.ContainerNetworkPolicyAllowlistParam","com.azure.ai.agents.models.ContainerNetworkPolicyDisabledParameter":"OpenAI.ContainerNetworkPolicyDisabledParam","com.azure.ai.agents.models.ContainerNetworkPolicyDomainSecretParameter":"OpenAI.ContainerNetworkPolicyDomainSecretParam","com.azure.ai.agents.models.ContainerNetworkPolicyParamType":"OpenAI.ContainerNetworkPolicyParamType","com.azure.ai.agents.models.ContainerNetworkPolicyParameter":"OpenAI.ContainerNetworkPolicyParam","com.azure.ai.agents.models.ContainerSkill":"OpenAI.ContainerSkill","com.azure.ai.agents.models.ContainerSkillType":"OpenAI.ContainerSkillType","com.azure.ai.agents.models.CreateAgentVersionFromCodeContent":"Azure.AI.Projects.CreateAgentVersionFromCodeContent","com.azure.ai.agents.models.CreateAgentVersionFromCodeMetadata":"Azure.AI.Projects.CreateAgentVersionFromCodeMetadata","com.azure.ai.agents.models.CreateAgentVersionInput":"Azure.AI.Projects.CreateAgentVersionRequest","com.azure.ai.agents.models.CreateAgentVersionOptions":null,"com.azure.ai.agents.models.CustomGrammarFormatParameter":"OpenAI.CustomGrammarFormatParam","com.azure.ai.agents.models.CustomTextFormatParameter":"OpenAI.CustomTextFormatParam","com.azure.ai.agents.models.CustomToolParamFormat":"OpenAI.CustomToolParamFormat","com.azure.ai.agents.models.CustomToolParamFormatType":"OpenAI.CustomToolParamFormatType","com.azure.ai.agents.models.CustomToolParameter":"OpenAI.CustomToolParam","com.azure.ai.agents.models.DigitalWorkerType":"Azure.AI.Projects.DigitalWorkerType","com.azure.ai.agents.models.EntraAuthorizationScheme":"Azure.AI.Projects.EntraAuthorizationScheme","com.azure.ai.agents.models.EvaluationLevel":"Azure.AI.Projects.EvaluationLevel","com.azure.ai.agents.models.ExternalAgentDefinition":"Azure.AI.Projects.ExternalAgentDefinition","com.azure.ai.agents.models.FabricDataAgentToolCall":"Azure.AI.Projects.FabricDataAgentToolCall","com.azure.ai.agents.models.FabricDataAgentToolCallOutput":"Azure.AI.Projects.FabricDataAgentToolCallOutput","com.azure.ai.agents.models.FabricDataAgentToolParameters":"Azure.AI.Projects.FabricDataAgentToolParameters","com.azure.ai.agents.models.FabricIqPreviewTool":"Azure.AI.Projects.FabricIQPreviewTool","com.azure.ai.agents.models.FabricIqPreviewToolboxTool":"Azure.AI.Projects.FabricIQPreviewToolboxTool","com.azure.ai.agents.models.FileSearchTool":"OpenAI.FileSearchTool","com.azure.ai.agents.models.FileSearchToolboxTool":"Azure.AI.Projects.FileSearchToolboxTool","com.azure.ai.agents.models.FixedRatioVersionSelectionRule":"Azure.AI.Projects.FixedRatioVersionSelectionRule","com.azure.ai.agents.models.FunctionShellToolParamEnvironment":"OpenAI.FunctionShellToolParamEnvironment","com.azure.ai.agents.models.FunctionShellToolParamEnvironmentType":"OpenAI.FunctionShellToolParamEnvironmentType","com.azure.ai.agents.models.FunctionShellToolParameter":"OpenAI.FunctionShellToolParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentContainerReferenceParameter":"OpenAI.FunctionShellToolParamEnvironmentContainerReferenceParam","com.azure.ai.agents.models.FunctionShellToolParameterEnvironmentLocalEnvironmentParameter":"OpenAI.FunctionShellToolParamEnvironmentLocalEnvironmentParam","com.azure.ai.agents.models.FunctionTool":"OpenAI.FunctionTool","com.azure.ai.agents.models.GetMicrosoft365AppPackageOptions":null,"com.azure.ai.agents.models.GrammarSyntax":"GrammarSyntaxExpandable","com.azure.ai.agents.models.HeaderTelemetryEndpointAuth":"Azure.AI.Projects.HeaderTelemetryEndpointAuth","com.azure.ai.agents.models.HostedAgentDefinition":"Azure.AI.Projects.HostedAgentDefinition","com.azure.ai.agents.models.HybridSearchOptions":"OpenAI.HybridSearchOptions","com.azure.ai.agents.models.ImageGenActionEnum":"ImageGenActionEnumExpandable","com.azure.ai.agents.models.ImageGenTool":"OpenAI.ImageGenTool","com.azure.ai.agents.models.ImageGenToolBackground":"ImageGenToolBackgroundExpandable","com.azure.ai.agents.models.ImageGenToolInputImageMask":"OpenAI.ImageGenToolInputImageMask","com.azure.ai.agents.models.ImageGenToolModel":"OpenAI.ImageGenTool.model.anonymous","com.azure.ai.agents.models.ImageGenToolModeration":"ImageGenToolModerationExpandable","com.azure.ai.agents.models.ImageGenToolOutputFormat":"ImageGenToolOutputFormatExpandable","com.azure.ai.agents.models.ImageGenToolQuality":"ImageGenToolQualityExpandable","com.azure.ai.agents.models.ImageGenToolSize":"ImageGenToolSizeExpandable","com.azure.ai.agents.models.IncludeEnum":"OpenAI.IncludeEnum","com.azure.ai.agents.models.InlineSkillParameter":"OpenAI.InlineSkillParam","com.azure.ai.agents.models.InlineSkillSourceParameter":"OpenAI.InlineSkillSourceParam","com.azure.ai.agents.models.InputFidelity":"InputFidelityExpandable","com.azure.ai.agents.models.InvocationsProtocolConfiguration":"Azure.AI.Projects.InvocationsProtocolConfiguration","com.azure.ai.agents.models.InvocationsWsProtocolConfiguration":"Azure.AI.Projects.InvocationsWsProtocolConfiguration","com.azure.ai.agents.models.JobStatus":"Azure.AI.Projects.JobStatus","com.azure.ai.agents.models.ListMemoriesOptions":null,"com.azure.ai.agents.models.LocalShellToolParameter":"OpenAI.LocalShellToolParam","com.azure.ai.agents.models.LocalSkillParameter":"OpenAI.LocalSkillParam","com.azure.ai.agents.models.ManagedAgentIdentityBlueprintReference":"Azure.AI.Projects.ManagedAgentIdentityBlueprintReference","com.azure.ai.agents.models.McpListToolsTool":"OpenAI.MCPListToolsTool","com.azure.ai.agents.models.McpListToolsToolAnnotations":"OpenAI.MCPListToolsToolAnnotations","com.azure.ai.agents.models.McpListToolsToolInputSchema":"OpenAI.MCPListToolsToolInputSchema","com.azure.ai.agents.models.McpProtocolConfiguration":"Azure.AI.Projects.McpProtocolConfiguration","com.azure.ai.agents.models.McpTool":"OpenAI.MCPTool","com.azure.ai.agents.models.McpToolConnectorId":"McpToolConnectorIdExpandable","com.azure.ai.agents.models.McpToolFilter":"OpenAI.MCPToolFilter","com.azure.ai.agents.models.McpToolRequireApproval":"OpenAI.MCPToolRequireApproval","com.azure.ai.agents.models.McpToolboxTool":"Azure.AI.Projects.MCPToolboxTool","com.azure.ai.agents.models.MemoryCommandToolCall":"Azure.AI.Projects.MemoryCommandToolCall","com.azure.ai.agents.models.MemoryCommandToolCallOutput":"Azure.AI.Projects.MemoryCommandToolCallOutput","com.azure.ai.agents.models.MemoryItem":"Azure.AI.Projects.MemoryItem","com.azure.ai.agents.models.MemoryItemKind":"Azure.AI.Projects.MemoryItemKind","com.azure.ai.agents.models.MemoryOperation":"Azure.AI.Projects.MemoryOperation","com.azure.ai.agents.models.MemoryOperationKind":"Azure.AI.Projects.MemoryOperationKind","com.azure.ai.agents.models.MemorySearchItem":"Azure.AI.Projects.MemorySearchItem","com.azure.ai.agents.models.MemorySearchOptions":"Azure.AI.Projects.MemorySearchOptions","com.azure.ai.agents.models.MemorySearchPreviewTool":"Azure.AI.Projects.MemorySearchPreviewTool","com.azure.ai.agents.models.MemorySearchToolCall":"Azure.AI.Projects.MemorySearchToolCall","com.azure.ai.agents.models.MemoryStoreDefaultDefinition":"Azure.AI.Projects.MemoryStoreDefaultDefinition","com.azure.ai.agents.models.MemoryStoreDefaultOptions":"Azure.AI.Projects.MemoryStoreDefaultOptions","com.azure.ai.agents.models.MemoryStoreDefinition":"Azure.AI.Projects.MemoryStoreDefinition","com.azure.ai.agents.models.MemoryStoreDetails":"Azure.AI.Projects.MemoryStoreObject","com.azure.ai.agents.models.MemoryStoreKind":"Azure.AI.Projects.MemoryStoreKind","com.azure.ai.agents.models.MemoryStoreObjectType":"Azure.AI.Projects.MemoryStoreObjectType","com.azure.ai.agents.models.MemoryStoreOperationUsage":"Azure.AI.Projects.MemoryStoreOperationUsage","com.azure.ai.agents.models.MemoryStoreSearchResponse":"Azure.AI.Projects.MemoryStoreSearchResponse","com.azure.ai.agents.models.MemoryStoreUpdateCompletedResult":"Azure.AI.Projects.MemoryStoreUpdateCompletedResult","com.azure.ai.agents.models.MemoryStoreUpdateResponse":"Azure.AI.Projects.MemoryStoreUpdateResponse","com.azure.ai.agents.models.MemoryStoreUpdateStatus":"Azure.AI.Projects.MemoryStoreUpdateStatus","com.azure.ai.agents.models.Microsoft365PermissionScopes":"Azure.AI.Projects.Microsoft365PermissionScopes","com.azure.ai.agents.models.Microsoft365PublishDefaults":"Azure.AI.Projects.Microsoft365PublishDefaults","com.azure.ai.agents.models.Microsoft365PublishResponse":"Azure.AI.Projects.Microsoft365PublishResponse","com.azure.ai.agents.models.Microsoft365PublishScope":"Azure.AI.Projects.Microsoft365PublishScope","com.azure.ai.agents.models.MicrosoftFabricPreviewTool":"Azure.AI.Projects.MicrosoftFabricPreviewTool","com.azure.ai.agents.models.ModelRouterAttempt":"Azure.AI.Projects.ModelRouterAttempt","com.azure.ai.agents.models.ModelRouterAttemptError":"Azure.AI.Projects.ModelRouterAttemptError","com.azure.ai.agents.models.ModelRouterAttemptResult":"Azure.AI.Projects.ModelRouterAttemptResult","com.azure.ai.agents.models.ModelRouterDetails":"Azure.AI.Projects.ModelRouterDetails","com.azure.ai.agents.models.ModelRouterMode":"Azure.AI.Projects.ModelRouterMode","com.azure.ai.agents.models.ModelSelectionDetails":"Azure.AI.Projects.ModelSelectionDetails","com.azure.ai.agents.models.NamespaceTool":"OpenAI.NamespaceToolParam","com.azure.ai.agents.models.OpenApiAnonymousAuthDetails":"Azure.AI.Projects.OpenApiAnonymousAuthDetails","com.azure.ai.agents.models.OpenApiAuthDetails":"Azure.AI.Projects.OpenApiAuthDetails","com.azure.ai.agents.models.OpenApiAuthType":"Azure.AI.Projects.OpenApiAuthType","com.azure.ai.agents.models.OpenApiFunctionDefinition":"Azure.AI.Projects.OpenApiFunctionDefinition","com.azure.ai.agents.models.OpenApiFunctionDefinitionFunction":"Azure.AI.Projects.OpenApiFunctionDefinition.function.anonymous","com.azure.ai.agents.models.OpenApiManagedAuthDetails":"Azure.AI.Projects.OpenApiManagedAuthDetails","com.azure.ai.agents.models.OpenApiManagedSecurityScheme":"Azure.AI.Projects.OpenApiManagedSecurityScheme","com.azure.ai.agents.models.OpenApiProjectConnectionAuthDetails":"Azure.AI.Projects.OpenApiProjectConnectionAuthDetails","com.azure.ai.agents.models.OpenApiProjectConnectionSecurityScheme":"Azure.AI.Projects.OpenApiProjectConnectionSecurityScheme","com.azure.ai.agents.models.OpenApiTool":"Azure.AI.Projects.OpenApiTool","com.azure.ai.agents.models.OpenApiToolCall":"Azure.AI.Projects.OpenApiToolCall","com.azure.ai.agents.models.OpenApiToolCallOutput":"Azure.AI.Projects.OpenApiToolCallOutput","com.azure.ai.agents.models.OpenApiToolboxTool":"Azure.AI.Projects.OpenApiToolboxTool","com.azure.ai.agents.models.OptimizedAgentIdentifier":"Azure.AI.Projects.OptimizedAgentIdentifier","com.azure.ai.agents.models.OtlpTelemetryEndpoint":"Azure.AI.Projects.OtlpTelemetryEndpoint","com.azure.ai.agents.models.PSTNTelephonyTransferDestination":"Azure.AI.Projects.PSTNTelephonyTransferDestination","com.azure.ai.agents.models.PageOrder":"Azure.AI.Projects.PageOrder","com.azure.ai.agents.models.ProceduralMemoryItem":"Azure.AI.Projects.ProceduralMemoryItem","com.azure.ai.agents.models.ProgrammaticToolCallingParameter":"OpenAI.ProgrammaticToolCallingParam","com.azure.ai.agents.models.PromotionInfo":"Azure.AI.Projects.PromotionInfo","com.azure.ai.agents.models.PromptAgentDefinition":"Azure.AI.Projects.PromptAgentDefinition","com.azure.ai.agents.models.PromptAgentDefinitionReasoningContext":"Azure.AI.Projects.PromptAgentDefinition.reasoning.context.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningGenerateSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.generate_summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionReasoningSummary":"Azure.AI.Projects.PromptAgentDefinition.reasoning.summary.anonymous","com.azure.ai.agents.models.PromptAgentDefinitionTextOptions":"Azure.AI.Projects.PromptAgentDefinitionTextOptions","com.azure.ai.agents.models.ProtocolConfiguration":"Azure.AI.Projects.ProtocolConfiguration","com.azure.ai.agents.models.ProtocolVersionRecord":"Azure.AI.Projects.ProtocolVersionRecord","com.azure.ai.agents.models.PublishAgentToMicrosoft365Options":null,"com.azure.ai.agents.models.PublishApprovalStatus":"Azure.AI.Projects.PublishApprovalStatus","com.azure.ai.agents.models.RaiConfig":"Azure.AI.Projects.RaiConfig","com.azure.ai.agents.models.RankerVersionType":"RankerVersionTypeExpandable","com.azure.ai.agents.models.RankingOptions":"OpenAI.RankingOptions","com.azure.ai.agents.models.RealtimeAudioFormats":"OpenAI.RealtimeAudioFormats","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcm":"OpenAI.RealtimeAudioFormatsAudioPcm","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmRate":null,"com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcma":"OpenAI.RealtimeAudioFormatsAudioPcma","com.azure.ai.agents.models.RealtimeAudioFormatsAudioPcmu":"OpenAI.RealtimeAudioFormatsAudioPcmu","com.azure.ai.agents.models.RealtimeAudioFormatsType":"OpenAI.RealtimeAudioFormatsType","com.azure.ai.agents.models.RealtimeConversationItem":"OpenAI.RealtimeConversationItem","com.azure.ai.agents.models.RealtimeConversationItemFunctionCall":"OpenAI.RealtimeConversationItemFunctionCall","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutput":"OpenAI.RealtimeConversationItemFunctionCallOutput","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallOutputStatus":"OpenAI.RealtimeConversationItemFunctionCallOutput.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemFunctionCallStatus":"OpenAI.RealtimeConversationItemFunctionCall.status.anonymous","com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject":null,"com.azure.ai.agents.models.RealtimeConversationItemMessageSystemObject1":null,"com.azure.ai.agents.models.RealtimeConversationItemType":"OpenAI.RealtimeConversationItemType","com.azure.ai.agents.models.RealtimeFunctionToolParameters":"OpenAI.RealtimeFunctionToolParameters","com.azure.ai.agents.models.RealtimeMCPApprovalRequest":"OpenAI.RealtimeMCPApprovalRequest","com.azure.ai.agents.models.RealtimeMCPApprovalResponse":"OpenAI.RealtimeMCPApprovalResponse","com.azure.ai.agents.models.RealtimeMCPError":"OpenAI.RealtimeMCPError","com.azure.ai.agents.models.RealtimeMCPHttpError":"OpenAI.RealtimeMCPHTTPError","com.azure.ai.agents.models.RealtimeMCPListTools":"OpenAI.RealtimeMCPListTools","com.azure.ai.agents.models.RealtimeMCPProtocolError":"OpenAI.RealtimeMCPProtocolError","com.azure.ai.agents.models.RealtimeMCPToolCall":"OpenAI.RealtimeMCPToolCall","com.azure.ai.agents.models.RealtimeMCPToolExecutionError":"OpenAI.RealtimeMCPToolExecutionError","com.azure.ai.agents.models.RealtimeMcpErrorType":"OpenAI.RealtimeMcpErrorType","com.azure.ai.agents.models.RealtimeResponseStatusDetails":"OpenAI.RealtimeResponseStatusDetails","com.azure.ai.agents.models.RealtimeResponseStatusDetailsError":"OpenAI.RealtimeResponseStatusDetailsError","com.azure.ai.agents.models.RealtimeResponseStatusDetailsReason":"OpenAI.RealtimeResponseStatusDetails.reason.anonymous","com.azure.ai.agents.models.RealtimeResponseStatusDetailsType":"OpenAI.RealtimeResponseStatusDetails.type.anonymous","com.azure.ai.agents.models.RealtimeResponseUsage":"OpenAI.RealtimeResponseUsage","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetails":"OpenAI.RealtimeResponseUsageInputTokenDetails","com.azure.ai.agents.models.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails":"OpenAI.RealtimeResponseUsageInputTokenDetailsCachedTokensDetails","com.azure.ai.agents.models.RealtimeResponseUsageOutputTokenDetails":"OpenAI.RealtimeResponseUsageOutputTokenDetails","com.azure.ai.agents.models.Reasoning":"OpenAI.Reasoning","com.azure.ai.agents.models.ReasoningEffort":"OpenAI.ReasoningEffort","com.azure.ai.agents.models.ReasoningModeEnum":"OpenAI.ReasoningModeEnum","com.azure.ai.agents.models.ReminderPreviewToolboxTool":"Azure.AI.Projects.ReminderPreviewToolboxTool","com.azure.ai.agents.models.ResponseFormatJsonSchemaInner":"OpenAI.ResponseFormatJsonSchemaSchema","com.azure.ai.agents.models.ResponseUsageInputTokensDetails":"OpenAI.ResponseUsageInputTokensDetails","com.azure.ai.agents.models.ResponseUsageOutputTokensDetails":"OpenAI.ResponseUsageOutputTokensDetails","com.azure.ai.agents.models.ResponsesProtocolConfiguration":"Azure.AI.Projects.ResponsesProtocolConfiguration","com.azure.ai.agents.models.RoutingTraceEntry":"Azure.AI.Projects.RoutingTraceEntry","com.azure.ai.agents.models.SearchContentType":"OpenAI.SearchContentType","com.azure.ai.agents.models.SearchContextSize":"SearchContextSizeExpandable","com.azure.ai.agents.models.SessionConfiguration":"Azure.AI.Projects.SessionConfiguration","com.azure.ai.agents.models.SessionDirectoryEntry":"Azure.AI.Projects.SessionDirectoryEntry","com.azure.ai.agents.models.SessionFileWriteResult":"Azure.AI.Projects.SessionFileWriteResponse","com.azure.ai.agents.models.SessionLogEvent":"Azure.AI.Projects.SessionLogEvent","com.azure.ai.agents.models.SessionLogEventType":"Azure.AI.Projects.SessionLogEventType","com.azure.ai.agents.models.SharepointGroundingToolCall":"Azure.AI.Projects.SharepointGroundingToolCall","com.azure.ai.agents.models.SharepointGroundingToolCallOutput":"Azure.AI.Projects.SharepointGroundingToolCallOutput","com.azure.ai.agents.models.SharepointGroundingToolParameters":"Azure.AI.Projects.SharepointGroundingToolParameters","com.azure.ai.agents.models.SharepointPreviewTool":"Azure.AI.Projects.SharepointPreviewTool","com.azure.ai.agents.models.ShellToolboxTool":"Azure.AI.Projects.ShellToolboxTool","com.azure.ai.agents.models.SipTelephonyTransferDestination":"Azure.AI.Projects.SipTelephonyTransferDestination","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.TeamsPhoneExtensionTelephonyBindingListItem":"Azure.AI.Projects.TeamsPhoneExtensionTelephonyBindingListItem","com.azure.ai.agents.models.TeamsTelephonyTransferDestination":"Azure.AI.Projects.TeamsTelephonyTransferDestination","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.TelephonyBindingStatus":"Azure.AI.Projects.TelephonyBindingStatus","com.azure.ai.agents.models.TelephonyCallDurationBasis":"Azure.AI.Projects.TelephonyCallDurationBasis","com.azure.ai.agents.models.TelephonyCallLifecycleEvent":"Azure.AI.Projects.TelephonyCallLifecycleEvent","com.azure.ai.agents.models.TelephonyCallLifecycleEventName":"Azure.AI.Projects.TelephonyCallLifecycleEventName","com.azure.ai.agents.models.TelephonyCallLifecycleEventOutcome":"Azure.AI.Projects.TelephonyCallLifecycleEventOutcome","com.azure.ai.agents.models.TelephonyCallLifecycleEventSource":"Azure.AI.Projects.TelephonyCallLifecycleEventSource","com.azure.ai.agents.models.TelephonyCallPhase":"Azure.AI.Projects.TelephonyCallPhase","com.azure.ai.agents.models.TelephonyCallRecord":"Azure.AI.Projects.TelephonyCallRecord","com.azure.ai.agents.models.TelephonyCallStatus":"Azure.AI.Projects.TelephonyCallStatus","com.azure.ai.agents.models.TelephonyCallSummary":"Azure.AI.Projects.TelephonyCallSummary","com.azure.ai.agents.models.TelephonyCallTimestampSource":"Azure.AI.Projects.TelephonyCallTimestampSource","com.azure.ai.agents.models.TelephonyCallTiming":"Azure.AI.Projects.TelephonyCallTiming","com.azure.ai.agents.models.TelephonyCallTrace":"Azure.AI.Projects.TelephonyCallTrace","com.azure.ai.agents.models.TelephonyCallTraceMode":"Azure.AI.Projects.TelephonyCallTraceMode","com.azure.ai.agents.models.TelephonyCallTraceStatus":"Azure.AI.Projects.TelephonyCallTraceStatus","com.azure.ai.agents.models.TelephonyProvider":"Azure.AI.Projects.TelephonyProvider","com.azure.ai.agents.models.TelephonyTransferTarget":"Azure.AI.Projects.TelephonyTransferTarget","com.azure.ai.agents.models.TelephonyTransferTargets":"Azure.AI.Projects.TelephonyTransferTargets","com.azure.ai.agents.models.TextResponseFormatConfiguration":"OpenAI.TextResponseFormatConfiguration","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatJsonObject":"OpenAI.TextResponseFormatConfigurationResponseFormatJsonObject","com.azure.ai.agents.models.TextResponseFormatConfigurationResponseFormatText":"OpenAI.TextResponseFormatConfigurationResponseFormatText","com.azure.ai.agents.models.TextResponseFormatConfigurationType":"OpenAI.TextResponseFormatConfigurationType","com.azure.ai.agents.models.TextResponseFormatJsonSchema":"OpenAI.TextResponseFormatJsonSchema","com.azure.ai.agents.models.Tool":"OpenAI.Tool","com.azure.ai.agents.models.ToolCallStatus":"Azure.AI.Projects.ToolCallStatus","com.azure.ai.agents.models.ToolChoiceFunction":"OpenAI.ToolChoiceFunction","com.azure.ai.agents.models.ToolChoiceMCP":"OpenAI.ToolChoiceMCP","com.azure.ai.agents.models.ToolChoiceParam":"OpenAI.ToolChoiceParam","com.azure.ai.agents.models.ToolChoiceParamType":"OpenAI.ToolChoiceParamType","com.azure.ai.agents.models.ToolConfig":"Azure.AI.Projects.ToolConfig","com.azure.ai.agents.models.ToolProjectConnection":"Azure.AI.Projects.ToolProjectConnection","com.azure.ai.agents.models.ToolSearchExecutionType":"OpenAI.ToolSearchExecutionType","com.azure.ai.agents.models.ToolSearchTool":"OpenAI.ToolSearchToolParam","com.azure.ai.agents.models.ToolSearchToolboxTool":"Azure.AI.Projects.ToolSearchToolboxTool","com.azure.ai.agents.models.ToolType":"OpenAI.ToolType","com.azure.ai.agents.models.ToolboxDetails":"Azure.AI.Projects.ToolboxObject","com.azure.ai.agents.models.ToolboxPolicies":"Azure.AI.Projects.ToolboxPolicies","com.azure.ai.agents.models.ToolboxSearchPreviewToolboxTool":"Azure.AI.Projects.ToolboxSearchPreviewToolboxTool","com.azure.ai.agents.models.ToolboxShellContainerAutoEnvironment":"Azure.AI.Projects.ToolboxShellContainerAutoEnvironment","com.azure.ai.agents.models.ToolboxShellContainerReferenceEnvironment":"Azure.AI.Projects.ToolboxShellContainerReferenceEnvironment","com.azure.ai.agents.models.ToolboxShellEnvironment":"Azure.AI.Projects.ToolboxShellEnvironment","com.azure.ai.agents.models.ToolboxShellNetworkPolicy":"Azure.AI.Projects.ToolboxShellNetworkPolicy","com.azure.ai.agents.models.ToolboxShellNetworkPolicyDisabled":"Azure.AI.Projects.ToolboxShellNetworkPolicyDisabled","com.azure.ai.agents.models.ToolboxSkill":"Azure.AI.Projects.ToolboxSkill","com.azure.ai.agents.models.ToolboxSkillReference":"Azure.AI.Projects.ToolboxSkillReference","com.azure.ai.agents.models.ToolboxTool":"Azure.AI.Projects.ToolboxTool","com.azure.ai.agents.models.ToolboxToolType":"Azure.AI.Projects.ToolboxToolType","com.azure.ai.agents.models.ToolboxVersionDetails":"Azure.AI.Projects.ToolboxVersionObject","com.azure.ai.agents.models.TwilioTelephonyBindingListItem":"Azure.AI.Projects.TwilioTelephonyBindingListItem","com.azure.ai.agents.models.UpdateAgentDetailsOptions":"Azure.AI.Projects.patchAgentObject.Request.anonymous","com.azure.ai.agents.models.UpdateTelephonyBindingRequest":"Azure.AI.Projects.UpdateTelephonyBindingRequest","com.azure.ai.agents.models.UserProfileMemoryItem":"Azure.AI.Projects.UserProfileMemoryItem","com.azure.ai.agents.models.VersionIndicator":"Azure.AI.Projects.VersionIndicator","com.azure.ai.agents.models.VersionIndicatorType":"Azure.AI.Projects.VersionIndicatorType","com.azure.ai.agents.models.VersionRefIndicator":"Azure.AI.Projects.VersionRefIndicator","com.azure.ai.agents.models.VersionSelectionRule":"Azure.AI.Projects.VersionSelectionRule","com.azure.ai.agents.models.VersionSelector":"Azure.AI.Projects.VersionSelector","com.azure.ai.agents.models.VersionSelectorType":"Azure.AI.Projects.VersionSelectorType","com.azure.ai.agents.models.VoiceAgentAudioConfig":"Azure.AI.Projects.VoiceAgentAudioConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfig":"Azure.AI.Projects.VoiceAgentAudioInputConfig","com.azure.ai.agents.models.VoiceAgentAudioInputConfigTranscriptionDelay":"Azure.AI.Projects.VoiceAgentAudioInputConfig.transcription.delay.anonymous","com.azure.ai.agents.models.VoiceAgentAudioOutputConfig":"Azure.AI.Projects.VoiceAgentAudioOutputConfig","com.azure.ai.agents.models.VoiceAgentAudioTimestampType":"Azure.AI.Projects.VoiceAgentAudioTimestampType","com.azure.ai.agents.models.VoiceAgentAvatarConfig":"Azure.AI.Projects.VoiceAgentAvatarConfig","com.azure.ai.agents.models.VoiceAgentAvatarOutputProtocol":"Azure.AI.Projects.VoiceAgentAvatarOutputProtocol","com.azure.ai.agents.models.VoiceAgentAvatarScene":"Azure.AI.Projects.VoiceAgentAvatarScene","com.azure.ai.agents.models.VoiceAgentAvatarType":"Azure.AI.Projects.VoiceAgentAvatarType","com.azure.ai.agents.models.VoiceAgentAvatarVideoBackground":"Azure.AI.Projects.VoiceAgentAvatarVideoBackground","com.azure.ai.agents.models.VoiceAgentAvatarVideoCrop":"Azure.AI.Projects.VoiceAgentAvatarVideoCrop","com.azure.ai.agents.models.VoiceAgentAvatarVideoParams":"Azure.AI.Projects.VoiceAgentAvatarVideoParams","com.azure.ai.agents.models.VoiceAgentAvatarVideoResolution":"Azure.AI.Projects.VoiceAgentAvatarVideoResolution","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadEnTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadEnTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadMultilingualTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadMultilingualTurnDetection","com.azure.ai.agents.models.VoiceAgentAzureSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentAzureSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentDefinition":"Azure.AI.Projects.VoiceAgentDefinition","com.azure.ai.agents.models.VoiceAgentEchoCancellation":"Azure.AI.Projects.VoiceAgentEchoCancellation","com.azure.ai.agents.models.VoiceAgentEchoCancellationReferenceSource":"Azure.AI.Projects.VoiceAgentEchoCancellationReferenceSource","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetection":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetection","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceDetectionModel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceDetectionModel","com.azure.ai.agents.models.VoiceAgentEndOfUtteranceThresholdLevel":"Azure.AI.Projects.VoiceAgentEndOfUtteranceThresholdLevel","com.azure.ai.agents.models.VoiceAgentFunctionTool":"Azure.AI.Projects.VoiceAgentFunctionTool","com.azure.ai.agents.models.VoiceAgentGreetingConfig":"Azure.AI.Projects.VoiceAgentGreetingConfig","com.azure.ai.agents.models.VoiceAgentInputTranscription":"Azure.AI.Projects.VoiceAgentInputTranscription","com.azure.ai.agents.models.VoiceAgentInputTranscriptionModel":"Azure.AI.Projects.VoiceAgentInputTranscriptionModel","com.azure.ai.agents.models.VoiceAgentInterimResponseConfig":"Azure.AI.Projects.VoiceAgentInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentInterimResponseTrigger":"Azure.AI.Projects.VoiceAgentInterimResponseTrigger","com.azure.ai.agents.models.VoiceAgentLlmGeneratedGreetingConfig":"Azure.AI.Projects.VoiceAgentLlmGeneratedGreetingConfig","com.azure.ai.agents.models.VoiceAgentLlmInterimResponseConfig":"Azure.AI.Projects.VoiceAgentLlmInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentMcpTool":"Azure.AI.Projects.VoiceAgentMcpTool","com.azure.ai.agents.models.VoiceAgentNoiseReduction":"Azure.AI.Projects.VoiceAgentNoiseReduction","com.azure.ai.agents.models.VoiceAgentNoiseReductionType":"Azure.AI.Projects.VoiceAgentNoiseReductionType","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetection":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSemanticVadTurnDetectionEagerness":"Azure.AI.Projects.VoiceAgentSemanticVadTurnDetection.eagerness.anonymous","com.azure.ai.agents.models.VoiceAgentServerVadTurnDetection":"Azure.AI.Projects.VoiceAgentServerVadTurnDetection","com.azure.ai.agents.models.VoiceAgentSessionIncludeOption":"Azure.AI.Projects.VoiceAgentSessionIncludeOption","com.azure.ai.agents.models.VoiceAgentStaticInterimResponseConfig":"Azure.AI.Projects.VoiceAgentStaticInterimResponseConfig","com.azure.ai.agents.models.VoiceAgentSubAgent":"Azure.AI.Projects.VoiceAgentSubAgent","com.azure.ai.agents.models.VoiceAgentSubAgentConfig":"Azure.AI.Projects.VoiceAgentSubAgentConfig","com.azure.ai.agents.models.VoiceAgentSubagentResponsePolicy":"Azure.AI.Projects.VoiceAgentSubagentResponsePolicy","com.azure.ai.agents.models.VoiceAgentSystemTool":"Azure.AI.Projects.VoiceAgentSystemTool","com.azure.ai.agents.models.VoiceAgentSystemToolName":"Azure.AI.Projects.VoiceAgentSystemToolName","com.azure.ai.agents.models.VoiceAgentTargetAgent":"Azure.AI.Projects.VoiceAgentTargetAgent","com.azure.ai.agents.models.VoiceAgentTemplateGreetingConfig":"Azure.AI.Projects.VoiceAgentTemplateGreetingConfig","com.azure.ai.agents.models.VoiceAgentTool":"Azure.AI.Projects.VoiceAgentTool","com.azure.ai.agents.models.VoiceAgentToolResponseScheduling":"Azure.AI.Projects.VoiceAgentToolResponseScheduling","com.azure.ai.agents.models.VoiceAgentToolboxTool":"Azure.AI.Projects.VoiceAgentToolboxTool","com.azure.ai.agents.models.VoiceAgentTransport":"Azure.AI.Projects.VoiceAgentTransport","com.azure.ai.agents.models.VoiceAgentTurnDetectionConfig":"Azure.AI.Projects.VoiceAgentTurnDetectionConfig","com.azure.ai.agents.models.VoiceAgentTurnDetectionType":"Azure.AI.Projects.VoiceAgentTurnDetectionType","com.azure.ai.agents.models.VoiceAgentWebSocketSubprotocol":"Azure.AI.Projects.VoiceAgentWebSocketSubprotocol","com.azure.ai.agents.models.VoiceAudioCodec":"Azure.AI.Projects.VoiceAudioCodec","com.azure.ai.agents.models.VoiceAudioContainerFormat":"Azure.AI.Projects.VoiceAudioContainerFormat","com.azure.ai.agents.models.VoiceAudioRole":"Azure.AI.Projects.VoiceAudioRole","com.azure.ai.agents.models.VoiceConversation":"Azure.AI.Projects.VoiceConversation","com.azure.ai.agents.models.VoiceConversationStatus":"Azure.AI.Projects.VoiceConversationStatus","com.azure.ai.agents.models.VoiceGeneratedItemAudioResponse":"Azure.AI.Projects.VoiceGeneratedItemAudioResponse","com.azure.ai.agents.models.VoiceItemAudioResponse":"Azure.AI.Projects.VoiceItemAudioResponse","com.azure.ai.agents.models.VoiceModelType":"Azure.AI.Projects.VoiceModelType","com.azure.ai.agents.models.VoiceOutputModality":"Azure.AI.Projects.VoiceOutputModality","com.azure.ai.agents.models.VoiceRecordingChannelLayout":"Azure.AI.Projects.VoiceRecordingChannelLayout","com.azure.ai.agents.models.VoiceRecordingResponse":"Azure.AI.Projects.VoiceRecordingResponse","com.azure.ai.agents.models.VoiceResponse":"Azure.AI.Projects.VoiceResponse","com.azure.ai.agents.models.VoiceResponseAudio":"Azure.AI.Projects.VoiceResponseAudio","com.azure.ai.agents.models.VoiceResponseAudioOutput":"Azure.AI.Projects.VoiceResponseAudioOutput","com.azure.ai.agents.models.VoiceResponseBase":"Azure.AI.Projects.VoiceResponseBase","com.azure.ai.agents.models.VoiceResponseBaseObject":null,"com.azure.ai.agents.models.VoiceResponseBaseOutputModality":"Azure.AI.Projects.VoiceResponseBase.output_modality.anonymous","com.azure.ai.agents.models.VoiceResponseBaseStatus":"Azure.AI.Projects.VoiceResponseBase.status.anonymous","com.azure.ai.agents.models.VoiceType":"Azure.AI.Projects.VoiceType","com.azure.ai.agents.models.WebIqPreviewTool":"Azure.AI.Projects.WebIQPreviewTool","com.azure.ai.agents.models.WebIqPreviewToolboxTool":"Azure.AI.Projects.WebIQPreviewToolboxTool","com.azure.ai.agents.models.WebSearchApproximateLocation":"OpenAI.WebSearchApproximateLocation","com.azure.ai.agents.models.WebSearchConfiguration":"Azure.AI.Projects.WebSearchConfiguration","com.azure.ai.agents.models.WebSearchPreviewTool":"OpenAI.WebSearchPreviewTool","com.azure.ai.agents.models.WebSearchTool":"OpenAI.WebSearchTool","com.azure.ai.agents.models.WebSearchToolFilters":"OpenAI.WebSearchToolFilters","com.azure.ai.agents.models.WebSearchToolSearchContextSize":"WebSearchToolSearchContextSizeExpandable","com.azure.ai.agents.models.WebSearchToolboxTool":"Azure.AI.Projects.WebSearchToolboxTool","com.azure.ai.agents.models.WorkIqPreviewTool":"Azure.AI.Projects.WorkIQPreviewTool","com.azure.ai.agents.models.WorkIqPreviewToolboxTool":"Azure.AI.Projects.WorkIQPreviewToolboxTool","com.azure.ai.agents.models.WorkflowAgentDefinition":"Azure.AI.Projects.WorkflowAgentDefinition"},"generatedFiles":["src/main/java/com/azure/ai/agents/AgentEndpointConversationsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentEndpointConversationsClient.java","src/main/java/com/azure/ai/agents/AgentsAsyncClient.java","src/main/java/com/azure/ai/agents/AgentsClient.java","src/main/java/com/azure/ai/agents/AgentsClientBuilder.java","src/main/java/com/azure/ai/agents/AgentsServiceVersion.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentEndpointConversationsClient.java","src/main/java/com/azure/ai/agents/BetaAgentsAsyncClient.java","src/main/java/com/azure/ai/agents/BetaAgentsClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresAsyncClient.java","src/main/java/com/azure/ai/agents/BetaMemoryStoresClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketAsyncClient.java","src/main/java/com/azure/ai/agents/BetaVoiceAgentWebSocketClient.java","src/main/java/com/azure/ai/agents/ToolboxesAsyncClient.java","src/main/java/com/azure/ai/agents/ToolboxesClient.java","src/main/java/com/azure/ai/agents/implementation/AgentEndpointConversationsImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsClientImpl.java","src/main/java/com/azure/ai/agents/implementation/AgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentEndpointConversationsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaAgentsImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaMemoryStoresImpl.java","src/main/java/com/azure/ai/agents/implementation/BetaVoiceAgentWebSocketsImpl.java","src/main/java/com/azure/ai/agents/implementation/JsonMergePatchHelper.java","src/main/java/com/azure/ai/agents/implementation/MultipartFormDataHelper.java","src/main/java/com/azure/ai/agents/implementation/OperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/PollingUtils.java","src/main/java/com/azure/ai/agents/implementation/SyncOperationLocationPollingStrategy.java","src/main/java/com/azure/ai/agents/implementation/ToolboxesImpl.java","src/main/java/com/azure/ai/agents/implementation/models/AgentDefinitionOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromCodeContent.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentOptions.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateAgentVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateSessionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/CreateToolboxVersionRequest.java","src/main/java/com/azure/ai/agents/implementation/models/FoundryFeaturesOptInKeys.java","src/main/java/com/azure/ai/agents/implementation/models/GetMicrosoft365AppPackageRequest.java","src/main/java/com/azure/ai/agents/implementation/models/ListMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/PublishAgentToMicrosoft365Request.java","src/main/java/com/azure/ai/agents/implementation/models/ReplaceTelephonyTransferTargetsRequest.java","src/main/java/com/azure/ai/agents/implementation/models/SearchMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/TransferTelephonyCallRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentFromManifestRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateAgentRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoriesRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateMemoryStoreRequest.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxInput.java","src/main/java/com/azure/ai/agents/implementation/models/UpdateToolboxRequest.java","src/main/java/com/azure/ai/agents/implementation/models/package-info.java","src/main/java/com/azure/ai/agents/implementation/package-info.java","src/main/java/com/azure/ai/agents/models/A2APreviewTool.java","src/main/java/com/azure/ai/agents/models/A2APreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/A2AProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/A2AProtocolVersion.java","src/main/java/com/azure/ai/agents/models/A2ATool.java","src/main/java/com/azure/ai/agents/models/A2AToolCall.java","src/main/java/com/azure/ai/agents/models/A2AToolCallOutput.java","src/main/java/com/azure/ai/agents/models/A2AToolboxTool.java","src/main/java/com/azure/ai/agents/models/AISearchIndexResource.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolAccessBoundary.java","src/main/java/com/azure/ai/agents/models/ActivityProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReference.java","src/main/java/com/azure/ai/agents/models/AgentBlueprintReferenceType.java","src/main/java/com/azure/ai/agents/models/AgentCard.java","src/main/java/com/azure/ai/agents/models/AgentCardSkill.java","src/main/java/com/azure/ai/agents/models/AgentDefinition.java","src/main/java/com/azure/ai/agents/models/AgentDetails.java","src/main/java/com/azure/ai/agents/models/AgentDetailsVersions.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/AgentEndpointAuthorizationSchemeType.java","src/main/java/com/azure/ai/agents/models/AgentEndpointConfig.java","src/main/java/com/azure/ai/agents/models/AgentEndpointProtocol.java","src/main/java/com/azure/ai/agents/models/AgentIdentity.java","src/main/java/com/azure/ai/agents/models/AgentIdentityStatus.java","src/main/java/com/azure/ai/agents/models/AgentKind.java","src/main/java/com/azure/ai/agents/models/AgentObjectType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationCandidate.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetCriterion.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetInputType.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationDatasetItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationEvaluatorRef.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationInlineDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJob.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobInputs.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobListItem.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobProgress.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationJobResult.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationOptions.java","src/main/java/com/azure/ai/agents/models/AgentOptimizationReferenceDatasetInput.java","src/main/java/com/azure/ai/agents/models/AgentReference.java","src/main/java/com/azure/ai/agents/models/AgentSessionResource.java","src/main/java/com/azure/ai/agents/models/AgentSessionStatus.java","src/main/java/com/azure/ai/agents/models/AgentState.java","src/main/java/com/azure/ai/agents/models/AgentStateSource.java","src/main/java/com/azure/ai/agents/models/AgentVersionDetails.java","src/main/java/com/azure/ai/agents/models/AgentVersionStatus.java","src/main/java/com/azure/ai/agents/models/ApiError.java","src/main/java/com/azure/ai/agents/models/ApplyPatchToolParameter.java","src/main/java/com/azure/ai/agents/models/ApproximateLocation.java","src/main/java/com/azure/ai/agents/models/AutoCodeInterpreterToolParameter.java","src/main/java/com/azure/ai/agents/models/AzureAISearchQueryType.java","src/main/java/com/azure/ai/agents/models/AzureAISearchTool.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCall.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolResource.java","src/main/java/com/azure/ai/agents/models/AzureAISearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseDetails.java","src/main/java/com/azure/ai/agents/models/AzureCreateResponseOptions.java","src/main/java/com/azure/ai/agents/models/AzureFunctionBinding.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/AzureFunctionDefinitionDetails.java","src/main/java/com/azure/ai/agents/models/AzureFunctionStorageQueue.java","src/main/java/com/azure/ai/agents/models/AzureFunctionTool.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCall.java","src/main/java/com/azure/ai/agents/models/AzureFunctionToolCallOutput.java","src/main/java/com/azure/ai/agents/models/AzureUserSecurityContext.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCall.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BingCustomSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/BingGroundingSearchToolParameters.java","src/main/java/com/azure/ai/agents/models/BingGroundingTool.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/BingGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BotServiceAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceRbacAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BotServiceTenantAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCall.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolCallOutput.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolConnectionParameters.java","src/main/java/com/azure/ai/agents/models/BrowserAutomationToolParameters.java","src/main/java/com/azure/ai/agents/models/CallableToolAllowedCaller.java","src/main/java/com/azure/ai/agents/models/CaptureStructuredOutputsTool.java","src/main/java/com/azure/ai/agents/models/ChatSummaryMemoryItem.java","src/main/java/com/azure/ai/agents/models/CodeConfiguration.java","src/main/java/com/azure/ai/agents/models/CodeDependencyResolution.java","src/main/java/com/azure/ai/agents/models/CodeFileDetails.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterTool.java","src/main/java/com/azure/ai/agents/models/CodeInterpreterToolboxTool.java","src/main/java/com/azure/ai/agents/models/ComputerEnvironment.java","src/main/java/com/azure/ai/agents/models/ComputerTool.java","src/main/java/com/azure/ai/agents/models/ComputerUsePreviewTool.java","src/main/java/com/azure/ai/agents/models/ContainerAutoParameter.java","src/main/java/com/azure/ai/agents/models/ContainerConfiguration.java","src/main/java/com/azure/ai/agents/models/ContainerMemoryLimit.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyAllowlistParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDisabledParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyDomainSecretParameter.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParamType.java","src/main/java/com/azure/ai/agents/models/ContainerNetworkPolicyParameter.java","src/main/java/com/azure/ai/agents/models/ContainerSkill.java","src/main/java/com/azure/ai/agents/models/ContainerSkillType.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeContent.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionFromCodeMetadata.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionInput.java","src/main/java/com/azure/ai/agents/models/CreateAgentVersionOptions.java","src/main/java/com/azure/ai/agents/models/CustomGrammarFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomTextFormatParameter.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormat.java","src/main/java/com/azure/ai/agents/models/CustomToolParamFormatType.java","src/main/java/com/azure/ai/agents/models/CustomToolParameter.java","src/main/java/com/azure/ai/agents/models/DigitalWorkerType.java","src/main/java/com/azure/ai/agents/models/EntraAuthorizationScheme.java","src/main/java/com/azure/ai/agents/models/EvaluationLevel.java","src/main/java/com/azure/ai/agents/models/ExternalAgentDefinition.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCall.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolCallOutput.java","src/main/java/com/azure/ai/agents/models/FabricDataAgentToolParameters.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/FabricIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/FileSearchTool.java","src/main/java/com/azure/ai/agents/models/FileSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/FixedRatioVersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironment.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParamEnvironmentType.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentContainerReferenceParameter.java","src/main/java/com/azure/ai/agents/models/FunctionShellToolParameterEnvironmentLocalEnvironmentParameter.java","src/main/java/com/azure/ai/agents/models/FunctionTool.java","src/main/java/com/azure/ai/agents/models/GetMicrosoft365AppPackageOptions.java","src/main/java/com/azure/ai/agents/models/GrammarSyntax.java","src/main/java/com/azure/ai/agents/models/HeaderTelemetryEndpointAuth.java","src/main/java/com/azure/ai/agents/models/HostedAgentDefinition.java","src/main/java/com/azure/ai/agents/models/HybridSearchOptions.java","src/main/java/com/azure/ai/agents/models/ImageGenActionEnum.java","src/main/java/com/azure/ai/agents/models/ImageGenTool.java","src/main/java/com/azure/ai/agents/models/ImageGenToolBackground.java","src/main/java/com/azure/ai/agents/models/ImageGenToolInputImageMask.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModel.java","src/main/java/com/azure/ai/agents/models/ImageGenToolModeration.java","src/main/java/com/azure/ai/agents/models/ImageGenToolOutputFormat.java","src/main/java/com/azure/ai/agents/models/ImageGenToolQuality.java","src/main/java/com/azure/ai/agents/models/ImageGenToolSize.java","src/main/java/com/azure/ai/agents/models/IncludeEnum.java","src/main/java/com/azure/ai/agents/models/InlineSkillParameter.java","src/main/java/com/azure/ai/agents/models/InlineSkillSourceParameter.java","src/main/java/com/azure/ai/agents/models/InputFidelity.java","src/main/java/com/azure/ai/agents/models/InvocationsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/InvocationsWsProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/JobStatus.java","src/main/java/com/azure/ai/agents/models/ListMemoriesOptions.java","src/main/java/com/azure/ai/agents/models/LocalShellToolParameter.java","src/main/java/com/azure/ai/agents/models/LocalSkillParameter.java","src/main/java/com/azure/ai/agents/models/ManagedAgentIdentityBlueprintReference.java","src/main/java/com/azure/ai/agents/models/McpListToolsTool.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolAnnotations.java","src/main/java/com/azure/ai/agents/models/McpListToolsToolInputSchema.java","src/main/java/com/azure/ai/agents/models/McpProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/McpTool.java","src/main/java/com/azure/ai/agents/models/McpToolConnectorId.java","src/main/java/com/azure/ai/agents/models/McpToolFilter.java","src/main/java/com/azure/ai/agents/models/McpToolRequireApproval.java","src/main/java/com/azure/ai/agents/models/McpToolboxTool.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryCommandToolCallOutput.java","src/main/java/com/azure/ai/agents/models/MemoryItem.java","src/main/java/com/azure/ai/agents/models/MemoryItemKind.java","src/main/java/com/azure/ai/agents/models/MemoryOperation.java","src/main/java/com/azure/ai/agents/models/MemoryOperationKind.java","src/main/java/com/azure/ai/agents/models/MemorySearchItem.java","src/main/java/com/azure/ai/agents/models/MemorySearchOptions.java","src/main/java/com/azure/ai/agents/models/MemorySearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/MemorySearchToolCall.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefaultOptions.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDefinition.java","src/main/java/com/azure/ai/agents/models/MemoryStoreDetails.java","src/main/java/com/azure/ai/agents/models/MemoryStoreKind.java","src/main/java/com/azure/ai/agents/models/MemoryStoreObjectType.java","src/main/java/com/azure/ai/agents/models/MemoryStoreOperationUsage.java","src/main/java/com/azure/ai/agents/models/MemoryStoreSearchResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateCompletedResult.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateResponse.java","src/main/java/com/azure/ai/agents/models/MemoryStoreUpdateStatus.java","src/main/java/com/azure/ai/agents/models/Microsoft365PermissionScopes.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishDefaults.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishResponse.java","src/main/java/com/azure/ai/agents/models/Microsoft365PublishScope.java","src/main/java/com/azure/ai/agents/models/MicrosoftFabricPreviewTool.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttempt.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptError.java","src/main/java/com/azure/ai/agents/models/ModelRouterAttemptResult.java","src/main/java/com/azure/ai/agents/models/ModelRouterDetails.java","src/main/java/com/azure/ai/agents/models/ModelRouterMode.java","src/main/java/com/azure/ai/agents/models/ModelSelectionDetails.java","src/main/java/com/azure/ai/agents/models/NamespaceTool.java","src/main/java/com/azure/ai/agents/models/OpenApiAnonymousAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiAuthType.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinition.java","src/main/java/com/azure/ai/agents/models/OpenApiFunctionDefinitionFunction.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiManagedSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionAuthDetails.java","src/main/java/com/azure/ai/agents/models/OpenApiProjectConnectionSecurityScheme.java","src/main/java/com/azure/ai/agents/models/OpenApiTool.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCall.java","src/main/java/com/azure/ai/agents/models/OpenApiToolCallOutput.java","src/main/java/com/azure/ai/agents/models/OpenApiToolboxTool.java","src/main/java/com/azure/ai/agents/models/OptimizedAgentIdentifier.java","src/main/java/com/azure/ai/agents/models/OtlpTelemetryEndpoint.java","src/main/java/com/azure/ai/agents/models/PSTNTelephonyTransferDestination.java","src/main/java/com/azure/ai/agents/models/PageOrder.java","src/main/java/com/azure/ai/agents/models/ProceduralMemoryItem.java","src/main/java/com/azure/ai/agents/models/ProgrammaticToolCallingParameter.java","src/main/java/com/azure/ai/agents/models/PromotionInfo.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinition.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningContext.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningGenerateSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionReasoningSummary.java","src/main/java/com/azure/ai/agents/models/PromptAgentDefinitionTextOptions.java","src/main/java/com/azure/ai/agents/models/ProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/ProtocolVersionRecord.java","src/main/java/com/azure/ai/agents/models/PublishAgentToMicrosoft365Options.java","src/main/java/com/azure/ai/agents/models/PublishApprovalStatus.java","src/main/java/com/azure/ai/agents/models/RaiConfig.java","src/main/java/com/azure/ai/agents/models/RankerVersionType.java","src/main/java/com/azure/ai/agents/models/RankingOptions.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormats.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcm.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmRate.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcma.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsAudioPcmu.java","src/main/java/com/azure/ai/agents/models/RealtimeAudioFormatsType.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItem.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCall.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutput.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallOutputStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemFunctionCallStatus.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemMessageSystemObject1.java","src/main/java/com/azure/ai/agents/models/RealtimeConversationItemType.java","src/main/java/com/azure/ai/agents/models/RealtimeFunctionToolParameters.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalRequest.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPApprovalResponse.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPHttpError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPListTools.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPProtocolError.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolCall.java","src/main/java/com/azure/ai/agents/models/RealtimeMCPToolExecutionError.java","src/main/java/com/azure/ai/agents/models/RealtimeMcpErrorType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsError.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsReason.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseStatusDetailsType.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsage.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageInputTokenDetailsCachedTokensDetails.java","src/main/java/com/azure/ai/agents/models/RealtimeResponseUsageOutputTokenDetails.java","src/main/java/com/azure/ai/agents/models/Reasoning.java","src/main/java/com/azure/ai/agents/models/ReasoningEffort.java","src/main/java/com/azure/ai/agents/models/ReasoningModeEnum.java","src/main/java/com/azure/ai/agents/models/ReminderPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ResponseFormatJsonSchemaInner.java","src/main/java/com/azure/ai/agents/models/ResponseUsageInputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponseUsageOutputTokensDetails.java","src/main/java/com/azure/ai/agents/models/ResponsesProtocolConfiguration.java","src/main/java/com/azure/ai/agents/models/RoutingTraceEntry.java","src/main/java/com/azure/ai/agents/models/SearchContentType.java","src/main/java/com/azure/ai/agents/models/SearchContextSize.java","src/main/java/com/azure/ai/agents/models/SessionConfiguration.java","src/main/java/com/azure/ai/agents/models/SessionDirectoryEntry.java","src/main/java/com/azure/ai/agents/models/SessionFileWriteResult.java","src/main/java/com/azure/ai/agents/models/SessionLogEvent.java","src/main/java/com/azure/ai/agents/models/SessionLogEventType.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCall.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolCallOutput.java","src/main/java/com/azure/ai/agents/models/SharepointGroundingToolParameters.java","src/main/java/com/azure/ai/agents/models/SharepointPreviewTool.java","src/main/java/com/azure/ai/agents/models/ShellToolboxTool.java","src/main/java/com/azure/ai/agents/models/SipTelephonyTransferDestination.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/TeamsPhoneExtensionTelephonyBindingListItem.java","src/main/java/com/azure/ai/agents/models/TeamsTelephonyTransferDestination.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/TelephonyBindingStatus.java","src/main/java/com/azure/ai/agents/models/TelephonyCallDurationBasis.java","src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEvent.java","src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventName.java","src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventOutcome.java","src/main/java/com/azure/ai/agents/models/TelephonyCallLifecycleEventSource.java","src/main/java/com/azure/ai/agents/models/TelephonyCallPhase.java","src/main/java/com/azure/ai/agents/models/TelephonyCallRecord.java","src/main/java/com/azure/ai/agents/models/TelephonyCallStatus.java","src/main/java/com/azure/ai/agents/models/TelephonyCallSummary.java","src/main/java/com/azure/ai/agents/models/TelephonyCallTimestampSource.java","src/main/java/com/azure/ai/agents/models/TelephonyCallTiming.java","src/main/java/com/azure/ai/agents/models/TelephonyCallTrace.java","src/main/java/com/azure/ai/agents/models/TelephonyCallTraceMode.java","src/main/java/com/azure/ai/agents/models/TelephonyCallTraceStatus.java","src/main/java/com/azure/ai/agents/models/TelephonyProvider.java","src/main/java/com/azure/ai/agents/models/TelephonyTransferTarget.java","src/main/java/com/azure/ai/agents/models/TelephonyTransferTargets.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfiguration.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatJsonObject.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationResponseFormatText.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatConfigurationType.java","src/main/java/com/azure/ai/agents/models/TextResponseFormatJsonSchema.java","src/main/java/com/azure/ai/agents/models/Tool.java","src/main/java/com/azure/ai/agents/models/ToolCallStatus.java","src/main/java/com/azure/ai/agents/models/ToolChoiceFunction.java","src/main/java/com/azure/ai/agents/models/ToolChoiceMCP.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParam.java","src/main/java/com/azure/ai/agents/models/ToolChoiceParamType.java","src/main/java/com/azure/ai/agents/models/ToolConfig.java","src/main/java/com/azure/ai/agents/models/ToolProjectConnection.java","src/main/java/com/azure/ai/agents/models/ToolSearchExecutionType.java","src/main/java/com/azure/ai/agents/models/ToolSearchTool.java","src/main/java/com/azure/ai/agents/models/ToolSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxDetails.java","src/main/java/com/azure/ai/agents/models/ToolboxPolicies.java","src/main/java/com/azure/ai/agents/models/ToolboxSearchPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerAutoEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellContainerReferenceEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellEnvironment.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicy.java","src/main/java/com/azure/ai/agents/models/ToolboxShellNetworkPolicyDisabled.java","src/main/java/com/azure/ai/agents/models/ToolboxSkill.java","src/main/java/com/azure/ai/agents/models/ToolboxSkillReference.java","src/main/java/com/azure/ai/agents/models/ToolboxTool.java","src/main/java/com/azure/ai/agents/models/ToolboxToolType.java","src/main/java/com/azure/ai/agents/models/ToolboxVersionDetails.java","src/main/java/com/azure/ai/agents/models/TwilioTelephonyBindingListItem.java","src/main/java/com/azure/ai/agents/models/UpdateAgentDetailsOptions.java","src/main/java/com/azure/ai/agents/models/UpdateTelephonyBindingRequest.java","src/main/java/com/azure/ai/agents/models/UserProfileMemoryItem.java","src/main/java/com/azure/ai/agents/models/VersionIndicator.java","src/main/java/com/azure/ai/agents/models/VersionIndicatorType.java","src/main/java/com/azure/ai/agents/models/VersionRefIndicator.java","src/main/java/com/azure/ai/agents/models/VersionSelectionRule.java","src/main/java/com/azure/ai/agents/models/VersionSelector.java","src/main/java/com/azure/ai/agents/models/VersionSelectorType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioInputConfigTranscriptionDelay.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioOutputConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAudioTimestampType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarOutputProtocol.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarScene.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoBackground.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoCrop.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoParams.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAvatarVideoResolution.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadEnTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadMultilingualTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentAzureSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentDefinition.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellation.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEchoCancellationReferenceSource.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceDetectionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentEndOfUtteranceThresholdLevel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentFunctionTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscription.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInputTranscriptionModel.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentInterimResponseTrigger.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmGeneratedGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentLlmInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentMcpTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReduction.java","src/main/java/com/azure/ai/agents/models/VoiceAgentNoiseReductionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSemanticVadTurnDetectionEagerness.java","src/main/java/com/azure/ai/agents/models/VoiceAgentServerVadTurnDetection.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSessionIncludeOption.java","src/main/java/com/azure/ai/agents/models/VoiceAgentStaticInterimResponseConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgent.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSubAgentConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSubagentResponsePolicy.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentSystemToolName.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTargetAgent.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTemplateGreetingConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolResponseScheduling.java","src/main/java/com/azure/ai/agents/models/VoiceAgentToolboxTool.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTransport.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionConfig.java","src/main/java/com/azure/ai/agents/models/VoiceAgentTurnDetectionType.java","src/main/java/com/azure/ai/agents/models/VoiceAgentWebSocketSubprotocol.java","src/main/java/com/azure/ai/agents/models/VoiceAudioCodec.java","src/main/java/com/azure/ai/agents/models/VoiceAudioContainerFormat.java","src/main/java/com/azure/ai/agents/models/VoiceAudioRole.java","src/main/java/com/azure/ai/agents/models/VoiceConversation.java","src/main/java/com/azure/ai/agents/models/VoiceConversationStatus.java","src/main/java/com/azure/ai/agents/models/VoiceGeneratedItemAudioResponse.java","src/main/java/com/azure/ai/agents/models/VoiceItemAudioResponse.java","src/main/java/com/azure/ai/agents/models/VoiceModelType.java","src/main/java/com/azure/ai/agents/models/VoiceOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingChannelLayout.java","src/main/java/com/azure/ai/agents/models/VoiceRecordingResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponse.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudio.java","src/main/java/com/azure/ai/agents/models/VoiceResponseAudioOutput.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBase.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseObject.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseOutputModality.java","src/main/java/com/azure/ai/agents/models/VoiceResponseBaseStatus.java","src/main/java/com/azure/ai/agents/models/VoiceType.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WebSearchApproximateLocation.java","src/main/java/com/azure/ai/agents/models/WebSearchConfiguration.java","src/main/java/com/azure/ai/agents/models/WebSearchPreviewTool.java","src/main/java/com/azure/ai/agents/models/WebSearchTool.java","src/main/java/com/azure/ai/agents/models/WebSearchToolFilters.java","src/main/java/com/azure/ai/agents/models/WebSearchToolSearchContextSize.java","src/main/java/com/azure/ai/agents/models/WebSearchToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewTool.java","src/main/java/com/azure/ai/agents/models/WorkIqPreviewToolboxTool.java","src/main/java/com/azure/ai/agents/models/WorkflowAgentDefinition.java","src/main/java/com/azure/ai/agents/models/package-info.java","src/main/java/com/azure/ai/agents/package-info.java","src/main/java/module-info.java"]} \ No newline at end of file diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentSampleUtils.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentSampleUtils.java index 2ddcf80d3bbb..f4eb84ed7b01 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentSampleUtils.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentSampleUtils.java @@ -20,7 +20,8 @@ static VoiceAgentDefinition createDefinition(VoiceModelType modelType, String mo VoiceAgentAudioOutputConfig output = new VoiceAgentAudioOutputConfig() .setVoice("en-US-AvaNeural") .setVoiceType(VoiceType.AZURE_STANDARD); - return new VoiceAgentDefinition(modelType, model) + return new VoiceAgentDefinition(modelType) + .setModel(model) .setInstructions(instructions) .setAudio(new VoiceAgentAudioConfig().setOutput(output)) .setOutputModalities(Collections.singletonList(VoiceOutputModality.AUDIO)) diff --git a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentWithToolsSample.java b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentWithToolsSample.java index 347924ebf6e2..99e47624a27b 100644 --- a/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentWithToolsSample.java +++ b/sdk/ai/azure-ai-agents/src/samples/java/com/azure/ai/agents/voice/VoiceAgentWithToolsSample.java @@ -72,13 +72,13 @@ public static void main(String[] args) { .setDescription("Get the current weather for a city.") .setParameters(new RealtimeFunctionToolParameters()); VoiceAgentSystemTool endCall = new VoiceAgentSystemTool(VoiceAgentSystemToolName.END_CONVERSATION); - VoiceAgentDefinition definition = new VoiceAgentDefinition( - modelType, model) - .setInstructions("Use tools when they help answer the caller.") - .setAudio(new VoiceAgentAudioConfig().setInput(input).setOutput(output)) - .setOutputModalities(Collections.singletonList(VoiceOutputModality.AUDIO)) - .setTools(Arrays.asList(weather, endCall)) - .setStore(true); + VoiceAgentDefinition definition = new VoiceAgentDefinition(modelType) + .setModel(model) + .setInstructions("Use tools when they help answer the caller.") + .setAudio(new VoiceAgentAudioConfig().setInput(input).setOutput(output)) + .setOutputModalities(Collections.singletonList(VoiceOutputModality.AUDIO)) + .setTools(Arrays.asList(weather, endCall)) + .setStore(true); try { AgentVersionDetails created = client.createAgentVersion(agentName, diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/VoiceAgentsMockTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/VoiceAgentsMockTests.java index c7e6e14040a5..7de21ca4729d 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/VoiceAgentsMockTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/VoiceAgentsMockTests.java @@ -198,7 +198,8 @@ private static AgentsClientBuilder createBuilder(DeterministicHttpClient httpCli private static VoiceAgentDefinition createVoiceDefinition(String instructions) { VoiceAgentAudioOutputConfig output = new VoiceAgentAudioOutputConfig().setVoice("en-US-AvaNeural").setVoiceType(VoiceType.AZURE_STANDARD); - return new VoiceAgentDefinition(VoiceModelType.MANAGED, "gpt-realtime").setInstructions(instructions) + return new VoiceAgentDefinition(VoiceModelType.MANAGED).setModel("gpt-realtime") + .setInstructions(instructions) .setAudio(new VoiceAgentAudioConfig().setOutput(output)) .setOutputModalities(Collections.singletonList(VoiceOutputModality.AUDIO)) .setStore(true); diff --git a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/VoiceAgentDefinitionSerializationTests.java b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/VoiceAgentDefinitionSerializationTests.java index 635334683645..7bddc15d66d5 100644 --- a/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/VoiceAgentDefinitionSerializationTests.java +++ b/sdk/ai/azure-ai-agents/src/test/java/com/azure/ai/agents/models/VoiceAgentDefinitionSerializationTests.java @@ -37,7 +37,7 @@ public void fullVoiceDefinitionRoundTrips() throws IOException { .setParameters(new RealtimeFunctionToolParameters()); VoiceAgentSystemTool systemTool = new VoiceAgentSystemTool(VoiceAgentSystemToolName.END_CONVERSATION); - VoiceAgentDefinition original = new VoiceAgentDefinition(VoiceModelType.MANAGED, "gpt-realtime") + VoiceAgentDefinition original = new VoiceAgentDefinition(VoiceModelType.MANAGED).setModel("gpt-realtime") .setInstructions("Keep replies short and natural.") .setAudio(new VoiceAgentAudioConfig().setInput(input).setOutput(output)) .setOutputModalities(Collections.singletonList(VoiceOutputModality.AUDIO)) @@ -78,7 +78,7 @@ public void fullVoiceDefinitionRoundTrips() throws IOException { @Test public void selfDeployedVoiceDefinitionRoundTrips() throws IOException { VoiceAgentDefinition original - = new VoiceAgentDefinition(VoiceModelType.SELF_DEPLOYED, "customer-realtime-deployment") + = new VoiceAgentDefinition(VoiceModelType.SELF_DEPLOYED).setModel("customer-realtime-deployment") .setInstructions("Use the customer deployment."); String json = serialize(original); diff --git a/sdk/ai/azure-ai-agents/tsp-location.yaml b/sdk/ai/azure-ai-agents/tsp-location.yaml new file mode 100644 index 000000000000..6ed7c6dfd629 --- /dev/null +++ b/sdk/ai/azure-ai-agents/tsp-location.yaml @@ -0,0 +1,26 @@ +directory: specification/ai-foundry/data-plane/Foundry/src/sdk-java-azure-ai-agents +commit: +repo: Azure/azure-rest-api-specs +additionalDirectories: +- specification/ai-foundry/data-plane/Foundry/src/agents +- specification/ai-foundry/data-plane/Foundry/src/agents-optimization +- 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/common +- specification/ai-foundry/data-plane/Foundry/src/connections +- specification/ai-foundry/data-plane/Foundry/src/datasets +- specification/ai-foundry/data-plane/Foundry/src/indexes +- specification/ai-foundry/data-plane/Foundry/src/deployments +- specification/ai-foundry/data-plane/Foundry/src/red-teams +- specification/ai-foundry/data-plane/Foundry/src/evaluation-rules +- specification/ai-foundry/data-plane/Foundry/src/evaluation-taxonomies +- specification/ai-foundry/data-plane/Foundry/src/evaluators +- specification/ai-foundry/data-plane/Foundry/src/insights +- specification/ai-foundry/data-plane/Foundry/src/schedules +- specification/ai-foundry/data-plane/Foundry/src/memory-stores +- specification/ai-foundry/data-plane/Foundry/src/openai +- specification/ai-foundry/data-plane/Foundry/src/sdk-common +- 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/tsp-location.yaml b/sdk/ai/azure-ai-projects/tsp-location.yaml new file mode 100644 index 000000000000..80a72b20dbdb --- /dev/null +++ b/sdk/ai/azure-ai-projects/tsp-location.yaml @@ -0,0 +1,26 @@ +directory: specification/ai-foundry/data-plane/Foundry/src/sdk-java-azure-ai-projects +commit: +repo: Azure/azure-rest-api-specs +additionalDirectories: +- specification/ai-foundry/data-plane/Foundry/src/agent-insights +- specification/ai-foundry/data-plane/Foundry/src/sdk-common +- 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 +- specification/ai-foundry/data-plane/Foundry/src/data_generation_jobs +- specification/ai-foundry/data-plane/Foundry/src/datasets +- specification/ai-foundry/data-plane/Foundry/src/deployments +- specification/ai-foundry/data-plane/Foundry/src/evaluation-rules +- specification/ai-foundry/data-plane/Foundry/src/evaluation-taxonomies +- specification/ai-foundry/data-plane/Foundry/src/evaluators +- specification/ai-foundry/data-plane/Foundry/src/indexes +- specification/ai-foundry/data-plane/Foundry/src/insights +- specification/ai-foundry/data-plane/Foundry/src/memory-stores +- specification/ai-foundry/data-plane/Foundry/src/models +- specification/ai-foundry/data-plane/Foundry/src/openai +- specification/ai-foundry/data-plane/Foundry/src/red-teams +- specification/ai-foundry/data-plane/Foundry/src/routines +- specification/ai-foundry/data-plane/Foundry/src/schedules +- specification/ai-foundry/data-plane/Foundry/src/skills +- specification/ai-foundry/data-plane/Foundry/src/toolboxes +- specification/ai-foundry/data-plane/Foundry/src/tools