// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_agent_action_group::_create_agent_action_group_output::CreateAgentActionGroupOutputBuilder;
pub use crate::operation::create_agent_action_group::_create_agent_action_group_input::CreateAgentActionGroupInputBuilder;
impl crate::operation::create_agent_action_group::builders::CreateAgentActionGroupInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::create_agent_action_group::CreateAgentActionGroupOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::create_agent_action_group::CreateAgentActionGroupError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.create_agent_action_group();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// Fluent builder constructing a request to `CreateAgentActionGroup`.
///
/// <p>Creates an action group for an agent. An action group represents the actions that an agent can carry out for the customer by defining the APIs that an agent can call and the logic for calling them.</p>
/// <p>To allow your agent to request the user for additional information when trying to complete a task, add an action group with the <code>parentActionGroupSignature</code> field set to <code>AMAZON.UserInput</code>.</p>
/// <p>To allow your agent to generate, run, and troubleshoot code when trying to complete a task, add an action group with the <code>parentActionGroupSignature</code> field set to <code>AMAZON.CodeInterpreter</code>.</p>
/// <p>You must leave the <code>description</code>, <code>apiSchema</code>, and <code>actionGroupExecutor</code> fields blank for this action group. During orchestration, if your agent determines that it needs to invoke an API in an action group, but doesn't have enough information to complete the API request, it will invoke this action group instead and return an <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Observation.html">Observation</a> reprompting the user for more information.</p>
#[derive(::std::clone::Clone, ::std::fmt::Debug)]
pub struct CreateAgentActionGroupFluentBuilder {
handle: ::std::sync::Arc<crate::client::Handle>,
inner: crate::operation::create_agent_action_group::builders::CreateAgentActionGroupInputBuilder,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::create_agent_action_group::CreateAgentActionGroupOutput,
crate::operation::create_agent_action_group::CreateAgentActionGroupError,
> for CreateAgentActionGroupFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::create_agent_action_group::CreateAgentActionGroupOutput,
crate::operation::create_agent_action_group::CreateAgentActionGroupError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl CreateAgentActionGroupFluentBuilder {
/// Creates a new `CreateAgentActionGroupFluentBuilder`.
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 CreateAgentActionGroup as a reference.
pub fn as_input(&self) -> &crate::operation::create_agent_action_group::builders::CreateAgentActionGroupInputBuilder {
&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::create_agent_action_group::CreateAgentActionGroupOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::create_agent_action_group::CreateAgentActionGroupError,
::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::create_agent_action_group::CreateAgentActionGroup::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::create_agent_action_group::CreateAgentActionGroup::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::create_agent_action_group::CreateAgentActionGroupOutput,
crate::operation::create_agent_action_group::CreateAgentActionGroupError,
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 unique identifier of the agent for which to create the action group.</p>
pub fn agent_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.agent_id(input.into());
self
}
/// <p>The unique identifier of the agent for which to create the action group.</p>
pub fn set_agent_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_agent_id(input);
self
}
/// <p>The unique identifier of the agent for which to create the action group.</p>
pub fn get_agent_id(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_agent_id()
}
/// <p>The version of the agent for which to create the action group.</p>
pub fn agent_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.agent_version(input.into());
self
}
/// <p>The version of the agent for which to create the action group.</p>
pub fn set_agent_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_agent_version(input);
self
}
/// <p>The version of the agent for which to create the action group.</p>
pub fn get_agent_version(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_agent_version()
}
/// <p>The name to give the action group.</p>
pub fn action_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.action_group_name(input.into());
self
}
/// <p>The name to give the action group.</p>
pub fn set_action_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_action_group_name(input);
self
}
/// <p>The name to give the action group.</p>
pub fn get_action_group_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_action_group_name()
}
/// <p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a>.</p>
pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.client_token(input.into());
self
}
/// <p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a>.</p>
pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_client_token(input);
self
}
/// <p>A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html">Ensuring idempotency</a>.</p>
pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_client_token()
}
/// <p>A description of the action group.</p>
pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.inner = self.inner.description(input.into());
self
}
/// <p>A description of the action group.</p>
pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.inner = self.inner.set_description(input);
self
}
/// <p>A description of the action group.</p>
pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_description()
}
/// <p>Specify a built-in or computer use action for this action group. If you specify a value, you must leave the <code>description</code>, <code>apiSchema</code>, and <code>actionGroupExecutor</code> fields empty for this action group.</p>
/// <ul>
/// <li>
/// <p>To allow your agent to request the user for additional information when trying to complete a task, set this field to <code>AMAZON.UserInput</code>.</p></li>
/// <li>
/// <p>To allow your agent to generate, run, and troubleshoot code when trying to complete a task, set this field to <code>AMAZON.CodeInterpreter</code>.</p></li>
/// <li>
/// <p>To allow your agent to use an Anthropic computer use tool, specify one of the following values.</p><important>
/// <p>Computer use is a new Anthropic Claude model capability (in beta) available with Anthropic Claude 3.7 Sonnet and Claude 3.5 Sonnet v2 only. When operating computer use functionality, we recommend taking additional security precautions, such as executing computer actions in virtual environments with restricted data access and limited internet connectivity. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agent-computer-use.html">Configure an Amazon Bedrock Agent to complete tasks with computer use tools</a>.</p>
/// </important>
/// <ul>
/// <li>
/// <p><code>ANTHROPIC.Computer</code> - Gives the agent permission to use the mouse and keyboard and take screenshots.</p></li>
/// <li>
/// <p><code>ANTHROPIC.TextEditor</code> - Gives the agent permission to view, create and edit files.</p></li>
/// <li>
/// <p><code>ANTHROPIC.Bash</code> - Gives the agent permission to run commands in a bash shell.</p></li>
/// </ul></li>
/// </ul>
pub fn parent_action_group_signature(mut self, input: crate::types::ActionGroupSignature) -> Self {
self.inner = self.inner.parent_action_group_signature(input);
self
}
/// <p>Specify a built-in or computer use action for this action group. If you specify a value, you must leave the <code>description</code>, <code>apiSchema</code>, and <code>actionGroupExecutor</code> fields empty for this action group.</p>
/// <ul>
/// <li>
/// <p>To allow your agent to request the user for additional information when trying to complete a task, set this field to <code>AMAZON.UserInput</code>.</p></li>
/// <li>
/// <p>To allow your agent to generate, run, and troubleshoot code when trying to complete a task, set this field to <code>AMAZON.CodeInterpreter</code>.</p></li>
/// <li>
/// <p>To allow your agent to use an Anthropic computer use tool, specify one of the following values.</p><important>
/// <p>Computer use is a new Anthropic Claude model capability (in beta) available with Anthropic Claude 3.7 Sonnet and Claude 3.5 Sonnet v2 only. When operating computer use functionality, we recommend taking additional security precautions, such as executing computer actions in virtual environments with restricted data access and limited internet connectivity. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agent-computer-use.html">Configure an Amazon Bedrock Agent to complete tasks with computer use tools</a>.</p>
/// </important>
/// <ul>
/// <li>
/// <p><code>ANTHROPIC.Computer</code> - Gives the agent permission to use the mouse and keyboard and take screenshots.</p></li>
/// <li>
/// <p><code>ANTHROPIC.TextEditor</code> - Gives the agent permission to view, create and edit files.</p></li>
/// <li>
/// <p><code>ANTHROPIC.Bash</code> - Gives the agent permission to run commands in a bash shell.</p></li>
/// </ul></li>
/// </ul>
pub fn set_parent_action_group_signature(mut self, input: ::std::option::Option<crate::types::ActionGroupSignature>) -> Self {
self.inner = self.inner.set_parent_action_group_signature(input);
self
}
/// <p>Specify a built-in or computer use action for this action group. If you specify a value, you must leave the <code>description</code>, <code>apiSchema</code>, and <code>actionGroupExecutor</code> fields empty for this action group.</p>
/// <ul>
/// <li>
/// <p>To allow your agent to request the user for additional information when trying to complete a task, set this field to <code>AMAZON.UserInput</code>.</p></li>
/// <li>
/// <p>To allow your agent to generate, run, and troubleshoot code when trying to complete a task, set this field to <code>AMAZON.CodeInterpreter</code>.</p></li>
/// <li>
/// <p>To allow your agent to use an Anthropic computer use tool, specify one of the following values.</p><important>
/// <p>Computer use is a new Anthropic Claude model capability (in beta) available with Anthropic Claude 3.7 Sonnet and Claude 3.5 Sonnet v2 only. When operating computer use functionality, we recommend taking additional security precautions, such as executing computer actions in virtual environments with restricted data access and limited internet connectivity. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agent-computer-use.html">Configure an Amazon Bedrock Agent to complete tasks with computer use tools</a>.</p>
/// </important>
/// <ul>
/// <li>
/// <p><code>ANTHROPIC.Computer</code> - Gives the agent permission to use the mouse and keyboard and take screenshots.</p></li>
/// <li>
/// <p><code>ANTHROPIC.TextEditor</code> - Gives the agent permission to view, create and edit files.</p></li>
/// <li>
/// <p><code>ANTHROPIC.Bash</code> - Gives the agent permission to run commands in a bash shell.</p></li>
/// </ul></li>
/// </ul>
pub fn get_parent_action_group_signature(&self) -> &::std::option::Option<crate::types::ActionGroupSignature> {
self.inner.get_parent_action_group_signature()
}
///
/// Adds a key-value pair to `parentActionGroupSignatureParams`.
///
/// To override the contents of this collection use [`set_parent_action_group_signature_params`](Self::set_parent_action_group_signature_params).
///
/// <p>The configuration settings for a computer use action.</p><important>
/// <p>Computer use is a new Anthropic Claude model capability (in beta) available with Anthropic Claude 3.7 Sonnet and Claude 3.5 Sonnet v2 only. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agent-computer-use.html">Configure an Amazon Bedrock Agent to complete tasks with computer use tools</a>.</p>
/// </important>
pub fn parent_action_group_signature_params(
mut self,
k: impl ::std::convert::Into<::std::string::String>,
v: impl ::std::convert::Into<::std::string::String>,
) -> Self {
self.inner = self.inner.parent_action_group_signature_params(k.into(), v.into());
self
}
/// <p>The configuration settings for a computer use action.</p><important>
/// <p>Computer use is a new Anthropic Claude model capability (in beta) available with Anthropic Claude 3.7 Sonnet and Claude 3.5 Sonnet v2 only. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agent-computer-use.html">Configure an Amazon Bedrock Agent to complete tasks with computer use tools</a>.</p>
/// </important>
pub fn set_parent_action_group_signature_params(
mut self,
input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
) -> Self {
self.inner = self.inner.set_parent_action_group_signature_params(input);
self
}
/// <p>The configuration settings for a computer use action.</p><important>
/// <p>Computer use is a new Anthropic Claude model capability (in beta) available with Anthropic Claude 3.7 Sonnet and Claude 3.5 Sonnet v2 only. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agent-computer-use.html">Configure an Amazon Bedrock Agent to complete tasks with computer use tools</a>.</p>
/// </important>
pub fn get_parent_action_group_signature_params(
&self,
) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.inner.get_parent_action_group_signature_params()
}
/// <p>The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user.</p>
pub fn action_group_executor(mut self, input: crate::types::ActionGroupExecutor) -> Self {
self.inner = self.inner.action_group_executor(input);
self
}
/// <p>The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user.</p>
pub fn set_action_group_executor(mut self, input: ::std::option::Option<crate::types::ActionGroupExecutor>) -> Self {
self.inner = self.inner.set_action_group_executor(input);
self
}
/// <p>The Amazon Resource Name (ARN) of the Lambda function containing the business logic that is carried out upon invoking the action or the custom control method for handling the information elicited from the user.</p>
pub fn get_action_group_executor(&self) -> &::std::option::Option<crate::types::ActionGroupExecutor> {
self.inner.get_action_group_executor()
}
/// <p>Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html">Action group OpenAPI schemas</a>.</p>
pub fn api_schema(mut self, input: crate::types::ApiSchema) -> Self {
self.inner = self.inner.api_schema(input);
self
}
/// <p>Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html">Action group OpenAPI schemas</a>.</p>
pub fn set_api_schema(mut self, input: ::std::option::Option<crate::types::ApiSchema>) -> Self {
self.inner = self.inner.set_api_schema(input);
self
}
/// <p>Contains either details about the S3 object containing the OpenAPI schema for the action group or the JSON or YAML-formatted payload defining the schema. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/agents-api-schema.html">Action group OpenAPI schemas</a>.</p>
pub fn get_api_schema(&self) -> &::std::option::Option<crate::types::ApiSchema> {
self.inner.get_api_schema()
}
/// <p>Specifies whether the action group is available for the agent to invoke or not when sending an <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html">InvokeAgent</a> request.</p>
pub fn action_group_state(mut self, input: crate::types::ActionGroupState) -> Self {
self.inner = self.inner.action_group_state(input);
self
}
/// <p>Specifies whether the action group is available for the agent to invoke or not when sending an <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html">InvokeAgent</a> request.</p>
pub fn set_action_group_state(mut self, input: ::std::option::Option<crate::types::ActionGroupState>) -> Self {
self.inner = self.inner.set_action_group_state(input);
self
}
/// <p>Specifies whether the action group is available for the agent to invoke or not when sending an <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html">InvokeAgent</a> request.</p>
pub fn get_action_group_state(&self) -> &::std::option::Option<crate::types::ActionGroupState> {
self.inner.get_action_group_state()
}
/// <p>Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema.</p>
pub fn function_schema(mut self, input: crate::types::FunctionSchema) -> Self {
self.inner = self.inner.function_schema(input);
self
}
/// <p>Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema.</p>
pub fn set_function_schema(mut self, input: ::std::option::Option<crate::types::FunctionSchema>) -> Self {
self.inner = self.inner.set_function_schema(input);
self
}
/// <p>Contains details about the function schema for the action group or the JSON or YAML-formatted payload defining the schema.</p>
pub fn get_function_schema(&self) -> &::std::option::Option<crate::types::FunctionSchema> {
self.inner.get_function_schema()
}
}