aws-sdk-bedrockagentcore 1.45.0

AWS SDK for Amazon Bedrock AgentCore
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::invoke_agent_runtime::_invoke_agent_runtime_input::InvokeAgentRuntimeInputBuilder;

pub use crate::operation::invoke_agent_runtime::_invoke_agent_runtime_output::InvokeAgentRuntimeOutputBuilder;

impl crate::operation::invoke_agent_runtime::builders::InvokeAgentRuntimeInputBuilder {
    /// Sends a request with this input using the given client.
    pub async fn send_with(
        self,
        client: &crate::Client,
    ) -> ::std::result::Result<
        crate::operation::invoke_agent_runtime::InvokeAgentRuntimeOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::invoke_agent_runtime::InvokeAgentRuntimeError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let mut fluent_builder = client.invoke_agent_runtime();
        fluent_builder.inner = self;
        fluent_builder.send().await
    }
}
/// Fluent builder constructing a request to `InvokeAgentRuntime`.
///
/// <p>Sends a request to an agent or tool hosted in an Amazon Bedrock AgentCore Runtime and receives responses in real-time.</p>
/// <p>To invoke an agent, you can specify either the AgentCore Runtime ARN or the agent ID with an account ID, and provide a payload containing your request. When you use the agent ID instead of the full ARN, you don't need to URL-encode the identifier. You can optionally specify a qualifier to target a specific endpoint of the agent.</p>
/// <p>This operation supports streaming responses, allowing you to receive partial responses as they become available. We recommend using pagination to ensure that the operation returns quickly and successfully when processing large responses.</p>
/// <p>For example code, see <a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-invoke-agent.html">Invoke an AgentCore Runtime agent</a>.</p>
/// <p>If you're integrating your agent with OAuth, you can't use the Amazon Web Services SDK to call <code>InvokeAgentRuntime</code>. Instead, make a HTTPS request to <code>InvokeAgentRuntime</code>. For an example, see <a href="https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-oauth.html">Authenticate and authorize with Inbound Auth and Outbound Auth</a>.</p>
/// <p>To use this operation, you must have the <code>bedrock-agentcore:InvokeAgentRuntime</code> permission. If you are making a call to <code>InvokeAgentRuntime</code> on behalf of a user ID with the <code>X-Amzn-Bedrock-AgentCore-Runtime-User-Id</code> header, You require permissions to both actions (<code>bedrock-agentcore:InvokeAgentRuntime</code> and <code>bedrock-agentcore:InvokeAgentRuntimeForUser</code>).</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct InvokeAgentRuntimeFluentBuilder {
    handle: ::std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::invoke_agent_runtime::builders::InvokeAgentRuntimeInputBuilder,
    config_override: ::std::option::Option<crate::config::Builder>,
}
impl
    crate::client::customize::internal::CustomizableSend<
        crate::operation::invoke_agent_runtime::InvokeAgentRuntimeOutput,
        crate::operation::invoke_agent_runtime::InvokeAgentRuntimeError,
    > for InvokeAgentRuntimeFluentBuilder
{
    fn send(
        self,
        config_override: crate::config::Builder,
    ) -> crate::client::customize::internal::BoxFuture<
        crate::client::customize::internal::SendResult<
            crate::operation::invoke_agent_runtime::InvokeAgentRuntimeOutput,
            crate::operation::invoke_agent_runtime::InvokeAgentRuntimeError,
        >,
    > {
        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
    }
}
impl InvokeAgentRuntimeFluentBuilder {
    /// Creates a new `InvokeAgentRuntimeFluentBuilder`.
    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: ::std::default::Default::default(),
            config_override: ::std::option::Option::None,
        }
    }
    /// Access the InvokeAgentRuntime as a reference.
    pub fn as_input(&self) -> &crate::operation::invoke_agent_runtime::builders::InvokeAgentRuntimeInputBuilder {
        &self.inner
    }
    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> ::std::result::Result<
        crate::operation::invoke_agent_runtime::InvokeAgentRuntimeOutput,
        ::aws_smithy_runtime_api::client::result::SdkError<
            crate::operation::invoke_agent_runtime::InvokeAgentRuntimeError,
            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
        >,
    > {
        let input = self
            .inner
            .build()
            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
        let runtime_plugins = crate::operation::invoke_agent_runtime::InvokeAgentRuntime::operation_runtime_plugins(
            self.handle.runtime_plugins.clone(),
            &self.handle.conf,
            self.config_override,
        );
        crate::operation::invoke_agent_runtime::InvokeAgentRuntime::orchestrate(&runtime_plugins, input).await
    }

    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
    pub fn customize(
        self,
    ) -> crate::client::customize::CustomizableOperation<
        crate::operation::invoke_agent_runtime::InvokeAgentRuntimeOutput,
        crate::operation::invoke_agent_runtime::InvokeAgentRuntimeError,
        Self,
    > {
        crate::client::customize::CustomizableOperation::new(self)
    }
    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
        self.set_config_override(::std::option::Option::Some(config_override.into()));
        self
    }

    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
        self.config_override = config_override;
        self
    }
    /// <p>The MIME type of the input data in the payload. This tells the agent runtime how to interpret the payload data. Common values include application/json for JSON data.</p>
    pub fn content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.content_type(input.into());
        self
    }
    /// <p>The MIME type of the input data in the payload. This tells the agent runtime how to interpret the payload data. Common values include application/json for JSON data.</p>
    pub fn set_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_content_type(input);
        self
    }
    /// <p>The MIME type of the input data in the payload. This tells the agent runtime how to interpret the payload data. Common values include application/json for JSON data.</p>
    pub fn get_content_type(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_content_type()
    }
    /// <p>The desired MIME type for the response from the agent runtime. This tells the agent runtime what format to use for the response data. Common values include application/json for JSON data.</p>
    pub fn accept(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.accept(input.into());
        self
    }
    /// <p>The desired MIME type for the response from the agent runtime. This tells the agent runtime what format to use for the response data. Common values include application/json for JSON data.</p>
    pub fn set_accept(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_accept(input);
        self
    }
    /// <p>The desired MIME type for the response from the agent runtime. This tells the agent runtime what format to use for the response data. Common values include application/json for JSON data.</p>
    pub fn get_accept(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_accept()
    }
    /// <p>The identifier of the MCP session.</p>
    pub fn mcp_session_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.mcp_session_id(input.into());
        self
    }
    /// <p>The identifier of the MCP session.</p>
    pub fn set_mcp_session_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_mcp_session_id(input);
        self
    }
    /// <p>The identifier of the MCP session.</p>
    pub fn get_mcp_session_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_mcp_session_id()
    }
    /// <p>The identifier of the runtime session.</p>
    pub fn runtime_session_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.runtime_session_id(input.into());
        self
    }
    /// <p>The identifier of the runtime session.</p>
    pub fn set_runtime_session_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_runtime_session_id(input);
        self
    }
    /// <p>The identifier of the runtime session.</p>
    pub fn get_runtime_session_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_runtime_session_id()
    }
    /// <p>The version of the MCP protocol being used.</p>
    pub fn mcp_protocol_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.mcp_protocol_version(input.into());
        self
    }
    /// <p>The version of the MCP protocol being used.</p>
    pub fn set_mcp_protocol_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_mcp_protocol_version(input);
        self
    }
    /// <p>The version of the MCP protocol being used.</p>
    pub fn get_mcp_protocol_version(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_mcp_protocol_version()
    }
    /// <p>The identifier of the runtime user.</p>
    pub fn runtime_user_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.runtime_user_id(input.into());
        self
    }
    /// <p>The identifier of the runtime user.</p>
    pub fn set_runtime_user_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_runtime_user_id(input);
        self
    }
    /// <p>The identifier of the runtime user.</p>
    pub fn get_runtime_user_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_runtime_user_id()
    }
    /// <p>The trace identifier for request tracking.</p>
    pub fn trace_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.trace_id(input.into());
        self
    }
    /// <p>The trace identifier for request tracking.</p>
    pub fn set_trace_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_trace_id(input);
        self
    }
    /// <p>The trace identifier for request tracking.</p>
    pub fn get_trace_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_trace_id()
    }
    /// <p>The parent trace information for distributed tracing.</p>
    pub fn trace_parent(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.trace_parent(input.into());
        self
    }
    /// <p>The parent trace information for distributed tracing.</p>
    pub fn set_trace_parent(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_trace_parent(input);
        self
    }
    /// <p>The parent trace information for distributed tracing.</p>
    pub fn get_trace_parent(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_trace_parent()
    }
    /// <p>The trace state information for distributed tracing.</p>
    pub fn trace_state(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.trace_state(input.into());
        self
    }
    /// <p>The trace state information for distributed tracing.</p>
    pub fn set_trace_state(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_trace_state(input);
        self
    }
    /// <p>The trace state information for distributed tracing.</p>
    pub fn get_trace_state(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_trace_state()
    }
    /// <p>Additional context information for distributed tracing.</p>
    pub fn baggage(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.baggage(input.into());
        self
    }
    /// <p>Additional context information for distributed tracing.</p>
    pub fn set_baggage(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_baggage(input);
        self
    }
    /// <p>Additional context information for distributed tracing.</p>
    pub fn get_baggage(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_baggage()
    }
    /// <p>The identifier of the agent runtime to invoke. You can specify either the full Amazon Web Services Resource Name (ARN) or the agent ID. If you use the agent ID, you must also provide the <code>accountId</code> query parameter.</p>
    pub fn agent_runtime_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.agent_runtime_arn(input.into());
        self
    }
    /// <p>The identifier of the agent runtime to invoke. You can specify either the full Amazon Web Services Resource Name (ARN) or the agent ID. If you use the agent ID, you must also provide the <code>accountId</code> query parameter.</p>
    pub fn set_agent_runtime_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_agent_runtime_arn(input);
        self
    }
    /// <p>The identifier of the agent runtime to invoke. You can specify either the full Amazon Web Services Resource Name (ARN) or the agent ID. If you use the agent ID, you must also provide the <code>accountId</code> query parameter.</p>
    pub fn get_agent_runtime_arn(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_agent_runtime_arn()
    }
    /// <p>The qualifier to use for the agent runtime. This is an endpoint name that points to a specific version. If not specified, Amazon Bedrock AgentCore uses the default endpoint of the agent runtime.</p>
    pub fn qualifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.qualifier(input.into());
        self
    }
    /// <p>The qualifier to use for the agent runtime. This is an endpoint name that points to a specific version. If not specified, Amazon Bedrock AgentCore uses the default endpoint of the agent runtime.</p>
    pub fn set_qualifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_qualifier(input);
        self
    }
    /// <p>The qualifier to use for the agent runtime. This is an endpoint name that points to a specific version. If not specified, Amazon Bedrock AgentCore uses the default endpoint of the agent runtime.</p>
    pub fn get_qualifier(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_qualifier()
    }
    /// <p>The identifier of the Amazon Web Services account for the agent runtime resource. This parameter is required when you specify an agent ID instead of the full ARN for <code>agentRuntimeArn</code>.</p>
    pub fn account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.inner = self.inner.account_id(input.into());
        self
    }
    /// <p>The identifier of the Amazon Web Services account for the agent runtime resource. This parameter is required when you specify an agent ID instead of the full ARN for <code>agentRuntimeArn</code>.</p>
    pub fn set_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.inner = self.inner.set_account_id(input);
        self
    }
    /// <p>The identifier of the Amazon Web Services account for the agent runtime resource. This parameter is required when you specify an agent ID instead of the full ARN for <code>agentRuntimeArn</code>.</p>
    pub fn get_account_id(&self) -> &::std::option::Option<::std::string::String> {
        self.inner.get_account_id()
    }
    /// <p>The input data to send to the agent runtime. The format of this data depends on the specific agent configuration and must match the specified content type. For most agents, this is a JSON object containing the user's request.</p>
    pub fn payload(mut self, input: ::aws_smithy_types::Blob) -> Self {
        self.inner = self.inner.payload(input);
        self
    }
    /// <p>The input data to send to the agent runtime. The format of this data depends on the specific agent configuration and must match the specified content type. For most agents, this is a JSON object containing the user's request.</p>
    pub fn set_payload(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
        self.inner = self.inner.set_payload(input);
        self
    }
    /// <p>The input data to send to the agent runtime. The format of this data depends on the specific agent configuration and must match the specified content type. For most agents, this is a JSON object containing the user's request.</p>
    pub fn get_payload(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
        self.inner.get_payload()
    }
}