aws_sdk_bedrockagent/operation/update_agent/
_update_agent_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct UpdateAgentInput {
6    /// <p>The unique identifier of the agent.</p>
7    pub agent_id: ::std::option::Option<::std::string::String>,
8    /// <p>Specifies a new name for the agent.</p>
9    pub agent_name: ::std::option::Option<::std::string::String>,
10    /// <p>Specifies new instructions that tell the agent what it should do and how it should interact with users.</p>
11    pub instruction: ::std::option::Option<::std::string::String>,
12    /// <p>The identifier for the model that you want to be used for orchestration by the agent you create.</p>
13    /// <p>The <code>modelId</code> to provide depends on the type of model or throughput that you use:</p>
14    /// <ul>
15    /// <li>
16    /// <p>If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns">Amazon Bedrock base model IDs (on-demand throughput)</a> in the Amazon Bedrock User Guide.</p></li>
17    /// <li>
18    /// <p>If you use an inference profile, specify the inference profile ID or its ARN. For a list of inference profile IDs, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html">Supported Regions and models for cross-region inference</a> in the Amazon Bedrock User Guide.</p></li>
19    /// <li>
20    /// <p>If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html">Run inference using a Provisioned Throughput</a> in the Amazon Bedrock User Guide.</p></li>
21    /// <li>
22    /// <p>If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html">Use a custom model in Amazon Bedrock</a> in the Amazon Bedrock User Guide.</p></li>
23    /// <li>
24    /// <p>If you use an <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html">imported model</a>, specify the ARN of the imported model. You can get the model ARN from a successful call to <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelImportJob.html">CreateModelImportJob</a> or from the Imported models page in the Amazon Bedrock console.</p></li>
25    /// </ul>
26    pub foundation_model: ::std::option::Option<::std::string::String>,
27    /// <p>Specifies a new description of the agent.</p>
28    pub description: ::std::option::Option<::std::string::String>,
29    /// <p>Specifies the type of orchestration strategy for the agent. This is set to <code>DEFAULT</code> orchestration type, by default.</p>
30    pub orchestration_type: ::std::option::Option<crate::types::OrchestrationType>,
31    /// <p>Contains details of the custom orchestration configured for the agent.</p>
32    pub custom_orchestration: ::std::option::Option<crate::types::CustomOrchestration>,
33    /// <p>The number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent.</p>
34    /// <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout.</p>
35    pub idle_session_ttl_in_seconds: ::std::option::Option<i32>,
36    /// <p>The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.</p>
37    pub agent_resource_role_arn: ::std::option::Option<::std::string::String>,
38    /// <p>The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.</p>
39    pub customer_encryption_key_arn: ::std::option::Option<::std::string::String>,
40    /// <p>Contains configurations to override prompts in different parts of an agent sequence. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html">Advanced prompts</a>.</p>
41    pub prompt_override_configuration: ::std::option::Option<crate::types::PromptOverrideConfiguration>,
42    /// <p>The unique Guardrail configuration assigned to the agent when it is updated.</p>
43    pub guardrail_configuration: ::std::option::Option<crate::types::GuardrailConfiguration>,
44    /// <p>Specifies the new memory configuration for the agent.</p>
45    pub memory_configuration: ::std::option::Option<crate::types::MemoryConfiguration>,
46    /// <p>The agent's collaboration role.</p>
47    pub agent_collaboration: ::std::option::Option<crate::types::AgentCollaboration>,
48}
49impl UpdateAgentInput {
50    /// <p>The unique identifier of the agent.</p>
51    pub fn agent_id(&self) -> ::std::option::Option<&str> {
52        self.agent_id.as_deref()
53    }
54    /// <p>Specifies a new name for the agent.</p>
55    pub fn agent_name(&self) -> ::std::option::Option<&str> {
56        self.agent_name.as_deref()
57    }
58    /// <p>Specifies new instructions that tell the agent what it should do and how it should interact with users.</p>
59    pub fn instruction(&self) -> ::std::option::Option<&str> {
60        self.instruction.as_deref()
61    }
62    /// <p>The identifier for the model that you want to be used for orchestration by the agent you create.</p>
63    /// <p>The <code>modelId</code> to provide depends on the type of model or throughput that you use:</p>
64    /// <ul>
65    /// <li>
66    /// <p>If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns">Amazon Bedrock base model IDs (on-demand throughput)</a> in the Amazon Bedrock User Guide.</p></li>
67    /// <li>
68    /// <p>If you use an inference profile, specify the inference profile ID or its ARN. For a list of inference profile IDs, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html">Supported Regions and models for cross-region inference</a> in the Amazon Bedrock User Guide.</p></li>
69    /// <li>
70    /// <p>If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html">Run inference using a Provisioned Throughput</a> in the Amazon Bedrock User Guide.</p></li>
71    /// <li>
72    /// <p>If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html">Use a custom model in Amazon Bedrock</a> in the Amazon Bedrock User Guide.</p></li>
73    /// <li>
74    /// <p>If you use an <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html">imported model</a>, specify the ARN of the imported model. You can get the model ARN from a successful call to <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelImportJob.html">CreateModelImportJob</a> or from the Imported models page in the Amazon Bedrock console.</p></li>
75    /// </ul>
76    pub fn foundation_model(&self) -> ::std::option::Option<&str> {
77        self.foundation_model.as_deref()
78    }
79    /// <p>Specifies a new description of the agent.</p>
80    pub fn description(&self) -> ::std::option::Option<&str> {
81        self.description.as_deref()
82    }
83    /// <p>Specifies the type of orchestration strategy for the agent. This is set to <code>DEFAULT</code> orchestration type, by default.</p>
84    pub fn orchestration_type(&self) -> ::std::option::Option<&crate::types::OrchestrationType> {
85        self.orchestration_type.as_ref()
86    }
87    /// <p>Contains details of the custom orchestration configured for the agent.</p>
88    pub fn custom_orchestration(&self) -> ::std::option::Option<&crate::types::CustomOrchestration> {
89        self.custom_orchestration.as_ref()
90    }
91    /// <p>The number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent.</p>
92    /// <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout.</p>
93    pub fn idle_session_ttl_in_seconds(&self) -> ::std::option::Option<i32> {
94        self.idle_session_ttl_in_seconds
95    }
96    /// <p>The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.</p>
97    pub fn agent_resource_role_arn(&self) -> ::std::option::Option<&str> {
98        self.agent_resource_role_arn.as_deref()
99    }
100    /// <p>The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.</p>
101    pub fn customer_encryption_key_arn(&self) -> ::std::option::Option<&str> {
102        self.customer_encryption_key_arn.as_deref()
103    }
104    /// <p>Contains configurations to override prompts in different parts of an agent sequence. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html">Advanced prompts</a>.</p>
105    pub fn prompt_override_configuration(&self) -> ::std::option::Option<&crate::types::PromptOverrideConfiguration> {
106        self.prompt_override_configuration.as_ref()
107    }
108    /// <p>The unique Guardrail configuration assigned to the agent when it is updated.</p>
109    pub fn guardrail_configuration(&self) -> ::std::option::Option<&crate::types::GuardrailConfiguration> {
110        self.guardrail_configuration.as_ref()
111    }
112    /// <p>Specifies the new memory configuration for the agent.</p>
113    pub fn memory_configuration(&self) -> ::std::option::Option<&crate::types::MemoryConfiguration> {
114        self.memory_configuration.as_ref()
115    }
116    /// <p>The agent's collaboration role.</p>
117    pub fn agent_collaboration(&self) -> ::std::option::Option<&crate::types::AgentCollaboration> {
118        self.agent_collaboration.as_ref()
119    }
120}
121impl ::std::fmt::Debug for UpdateAgentInput {
122    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
123        let mut formatter = f.debug_struct("UpdateAgentInput");
124        formatter.field("agent_id", &self.agent_id);
125        formatter.field("agent_name", &self.agent_name);
126        formatter.field("instruction", &"*** Sensitive Data Redacted ***");
127        formatter.field("foundation_model", &self.foundation_model);
128        formatter.field("description", &self.description);
129        formatter.field("orchestration_type", &self.orchestration_type);
130        formatter.field("custom_orchestration", &self.custom_orchestration);
131        formatter.field("idle_session_ttl_in_seconds", &self.idle_session_ttl_in_seconds);
132        formatter.field("agent_resource_role_arn", &self.agent_resource_role_arn);
133        formatter.field("customer_encryption_key_arn", &self.customer_encryption_key_arn);
134        formatter.field("prompt_override_configuration", &"*** Sensitive Data Redacted ***");
135        formatter.field("guardrail_configuration", &self.guardrail_configuration);
136        formatter.field("memory_configuration", &self.memory_configuration);
137        formatter.field("agent_collaboration", &self.agent_collaboration);
138        formatter.finish()
139    }
140}
141impl UpdateAgentInput {
142    /// Creates a new builder-style object to manufacture [`UpdateAgentInput`](crate::operation::update_agent::UpdateAgentInput).
143    pub fn builder() -> crate::operation::update_agent::builders::UpdateAgentInputBuilder {
144        crate::operation::update_agent::builders::UpdateAgentInputBuilder::default()
145    }
146}
147
148/// A builder for [`UpdateAgentInput`](crate::operation::update_agent::UpdateAgentInput).
149#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
150#[non_exhaustive]
151pub struct UpdateAgentInputBuilder {
152    pub(crate) agent_id: ::std::option::Option<::std::string::String>,
153    pub(crate) agent_name: ::std::option::Option<::std::string::String>,
154    pub(crate) instruction: ::std::option::Option<::std::string::String>,
155    pub(crate) foundation_model: ::std::option::Option<::std::string::String>,
156    pub(crate) description: ::std::option::Option<::std::string::String>,
157    pub(crate) orchestration_type: ::std::option::Option<crate::types::OrchestrationType>,
158    pub(crate) custom_orchestration: ::std::option::Option<crate::types::CustomOrchestration>,
159    pub(crate) idle_session_ttl_in_seconds: ::std::option::Option<i32>,
160    pub(crate) agent_resource_role_arn: ::std::option::Option<::std::string::String>,
161    pub(crate) customer_encryption_key_arn: ::std::option::Option<::std::string::String>,
162    pub(crate) prompt_override_configuration: ::std::option::Option<crate::types::PromptOverrideConfiguration>,
163    pub(crate) guardrail_configuration: ::std::option::Option<crate::types::GuardrailConfiguration>,
164    pub(crate) memory_configuration: ::std::option::Option<crate::types::MemoryConfiguration>,
165    pub(crate) agent_collaboration: ::std::option::Option<crate::types::AgentCollaboration>,
166}
167impl UpdateAgentInputBuilder {
168    /// <p>The unique identifier of the agent.</p>
169    /// This field is required.
170    pub fn agent_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
171        self.agent_id = ::std::option::Option::Some(input.into());
172        self
173    }
174    /// <p>The unique identifier of the agent.</p>
175    pub fn set_agent_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
176        self.agent_id = input;
177        self
178    }
179    /// <p>The unique identifier of the agent.</p>
180    pub fn get_agent_id(&self) -> &::std::option::Option<::std::string::String> {
181        &self.agent_id
182    }
183    /// <p>Specifies a new name for the agent.</p>
184    /// This field is required.
185    pub fn agent_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
186        self.agent_name = ::std::option::Option::Some(input.into());
187        self
188    }
189    /// <p>Specifies a new name for the agent.</p>
190    pub fn set_agent_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
191        self.agent_name = input;
192        self
193    }
194    /// <p>Specifies a new name for the agent.</p>
195    pub fn get_agent_name(&self) -> &::std::option::Option<::std::string::String> {
196        &self.agent_name
197    }
198    /// <p>Specifies new instructions that tell the agent what it should do and how it should interact with users.</p>
199    pub fn instruction(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200        self.instruction = ::std::option::Option::Some(input.into());
201        self
202    }
203    /// <p>Specifies new instructions that tell the agent what it should do and how it should interact with users.</p>
204    pub fn set_instruction(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205        self.instruction = input;
206        self
207    }
208    /// <p>Specifies new instructions that tell the agent what it should do and how it should interact with users.</p>
209    pub fn get_instruction(&self) -> &::std::option::Option<::std::string::String> {
210        &self.instruction
211    }
212    /// <p>The identifier for the model that you want to be used for orchestration by the agent you create.</p>
213    /// <p>The <code>modelId</code> to provide depends on the type of model or throughput that you use:</p>
214    /// <ul>
215    /// <li>
216    /// <p>If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns">Amazon Bedrock base model IDs (on-demand throughput)</a> in the Amazon Bedrock User Guide.</p></li>
217    /// <li>
218    /// <p>If you use an inference profile, specify the inference profile ID or its ARN. For a list of inference profile IDs, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html">Supported Regions and models for cross-region inference</a> in the Amazon Bedrock User Guide.</p></li>
219    /// <li>
220    /// <p>If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html">Run inference using a Provisioned Throughput</a> in the Amazon Bedrock User Guide.</p></li>
221    /// <li>
222    /// <p>If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html">Use a custom model in Amazon Bedrock</a> in the Amazon Bedrock User Guide.</p></li>
223    /// <li>
224    /// <p>If you use an <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html">imported model</a>, specify the ARN of the imported model. You can get the model ARN from a successful call to <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelImportJob.html">CreateModelImportJob</a> or from the Imported models page in the Amazon Bedrock console.</p></li>
225    /// </ul>
226    /// This field is required.
227    pub fn foundation_model(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
228        self.foundation_model = ::std::option::Option::Some(input.into());
229        self
230    }
231    /// <p>The identifier for the model that you want to be used for orchestration by the agent you create.</p>
232    /// <p>The <code>modelId</code> to provide depends on the type of model or throughput that you use:</p>
233    /// <ul>
234    /// <li>
235    /// <p>If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns">Amazon Bedrock base model IDs (on-demand throughput)</a> in the Amazon Bedrock User Guide.</p></li>
236    /// <li>
237    /// <p>If you use an inference profile, specify the inference profile ID or its ARN. For a list of inference profile IDs, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html">Supported Regions and models for cross-region inference</a> in the Amazon Bedrock User Guide.</p></li>
238    /// <li>
239    /// <p>If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html">Run inference using a Provisioned Throughput</a> in the Amazon Bedrock User Guide.</p></li>
240    /// <li>
241    /// <p>If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html">Use a custom model in Amazon Bedrock</a> in the Amazon Bedrock User Guide.</p></li>
242    /// <li>
243    /// <p>If you use an <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html">imported model</a>, specify the ARN of the imported model. You can get the model ARN from a successful call to <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelImportJob.html">CreateModelImportJob</a> or from the Imported models page in the Amazon Bedrock console.</p></li>
244    /// </ul>
245    pub fn set_foundation_model(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
246        self.foundation_model = input;
247        self
248    }
249    /// <p>The identifier for the model that you want to be used for orchestration by the agent you create.</p>
250    /// <p>The <code>modelId</code> to provide depends on the type of model or throughput that you use:</p>
251    /// <ul>
252    /// <li>
253    /// <p>If you use a base model, specify the model ID or its ARN. For a list of model IDs for base models, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html#model-ids-arns">Amazon Bedrock base model IDs (on-demand throughput)</a> in the Amazon Bedrock User Guide.</p></li>
254    /// <li>
255    /// <p>If you use an inference profile, specify the inference profile ID or its ARN. For a list of inference profile IDs, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html">Supported Regions and models for cross-region inference</a> in the Amazon Bedrock User Guide.</p></li>
256    /// <li>
257    /// <p>If you use a provisioned model, specify the ARN of the Provisioned Throughput. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/prov-thru-use.html">Run inference using a Provisioned Throughput</a> in the Amazon Bedrock User Guide.</p></li>
258    /// <li>
259    /// <p>If you use a custom model, first purchase Provisioned Throughput for it. Then specify the ARN of the resulting provisioned model. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-use.html">Use a custom model in Amazon Bedrock</a> in the Amazon Bedrock User Guide.</p></li>
260    /// <li>
261    /// <p>If you use an <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/model-customization-import-model.html">imported model</a>, specify the ARN of the imported model. You can get the model ARN from a successful call to <a href="https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelImportJob.html">CreateModelImportJob</a> or from the Imported models page in the Amazon Bedrock console.</p></li>
262    /// </ul>
263    pub fn get_foundation_model(&self) -> &::std::option::Option<::std::string::String> {
264        &self.foundation_model
265    }
266    /// <p>Specifies a new description of the agent.</p>
267    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
268        self.description = ::std::option::Option::Some(input.into());
269        self
270    }
271    /// <p>Specifies a new description of the agent.</p>
272    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
273        self.description = input;
274        self
275    }
276    /// <p>Specifies a new description of the agent.</p>
277    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
278        &self.description
279    }
280    /// <p>Specifies the type of orchestration strategy for the agent. This is set to <code>DEFAULT</code> orchestration type, by default.</p>
281    pub fn orchestration_type(mut self, input: crate::types::OrchestrationType) -> Self {
282        self.orchestration_type = ::std::option::Option::Some(input);
283        self
284    }
285    /// <p>Specifies the type of orchestration strategy for the agent. This is set to <code>DEFAULT</code> orchestration type, by default.</p>
286    pub fn set_orchestration_type(mut self, input: ::std::option::Option<crate::types::OrchestrationType>) -> Self {
287        self.orchestration_type = input;
288        self
289    }
290    /// <p>Specifies the type of orchestration strategy for the agent. This is set to <code>DEFAULT</code> orchestration type, by default.</p>
291    pub fn get_orchestration_type(&self) -> &::std::option::Option<crate::types::OrchestrationType> {
292        &self.orchestration_type
293    }
294    /// <p>Contains details of the custom orchestration configured for the agent.</p>
295    pub fn custom_orchestration(mut self, input: crate::types::CustomOrchestration) -> Self {
296        self.custom_orchestration = ::std::option::Option::Some(input);
297        self
298    }
299    /// <p>Contains details of the custom orchestration configured for the agent.</p>
300    pub fn set_custom_orchestration(mut self, input: ::std::option::Option<crate::types::CustomOrchestration>) -> Self {
301        self.custom_orchestration = input;
302        self
303    }
304    /// <p>Contains details of the custom orchestration configured for the agent.</p>
305    pub fn get_custom_orchestration(&self) -> &::std::option::Option<crate::types::CustomOrchestration> {
306        &self.custom_orchestration
307    }
308    /// <p>The number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent.</p>
309    /// <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout.</p>
310    pub fn idle_session_ttl_in_seconds(mut self, input: i32) -> Self {
311        self.idle_session_ttl_in_seconds = ::std::option::Option::Some(input);
312        self
313    }
314    /// <p>The number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent.</p>
315    /// <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout.</p>
316    pub fn set_idle_session_ttl_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
317        self.idle_session_ttl_in_seconds = input;
318        self
319    }
320    /// <p>The number of seconds for which Amazon Bedrock keeps information about a user's conversation with the agent.</p>
321    /// <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Bedrock deletes any data provided before the timeout.</p>
322    pub fn get_idle_session_ttl_in_seconds(&self) -> &::std::option::Option<i32> {
323        &self.idle_session_ttl_in_seconds
324    }
325    /// <p>The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.</p>
326    /// This field is required.
327    pub fn agent_resource_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328        self.agent_resource_role_arn = ::std::option::Option::Some(input.into());
329        self
330    }
331    /// <p>The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.</p>
332    pub fn set_agent_resource_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
333        self.agent_resource_role_arn = input;
334        self
335    }
336    /// <p>The Amazon Resource Name (ARN) of the IAM role with permissions to invoke API operations on the agent.</p>
337    pub fn get_agent_resource_role_arn(&self) -> &::std::option::Option<::std::string::String> {
338        &self.agent_resource_role_arn
339    }
340    /// <p>The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.</p>
341    pub fn customer_encryption_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
342        self.customer_encryption_key_arn = ::std::option::Option::Some(input.into());
343        self
344    }
345    /// <p>The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.</p>
346    pub fn set_customer_encryption_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
347        self.customer_encryption_key_arn = input;
348        self
349    }
350    /// <p>The Amazon Resource Name (ARN) of the KMS key with which to encrypt the agent.</p>
351    pub fn get_customer_encryption_key_arn(&self) -> &::std::option::Option<::std::string::String> {
352        &self.customer_encryption_key_arn
353    }
354    /// <p>Contains configurations to override prompts in different parts of an agent sequence. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html">Advanced prompts</a>.</p>
355    pub fn prompt_override_configuration(mut self, input: crate::types::PromptOverrideConfiguration) -> Self {
356        self.prompt_override_configuration = ::std::option::Option::Some(input);
357        self
358    }
359    /// <p>Contains configurations to override prompts in different parts of an agent sequence. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html">Advanced prompts</a>.</p>
360    pub fn set_prompt_override_configuration(mut self, input: ::std::option::Option<crate::types::PromptOverrideConfiguration>) -> Self {
361        self.prompt_override_configuration = input;
362        self
363    }
364    /// <p>Contains configurations to override prompts in different parts of an agent sequence. For more information, see <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/advanced-prompts.html">Advanced prompts</a>.</p>
365    pub fn get_prompt_override_configuration(&self) -> &::std::option::Option<crate::types::PromptOverrideConfiguration> {
366        &self.prompt_override_configuration
367    }
368    /// <p>The unique Guardrail configuration assigned to the agent when it is updated.</p>
369    pub fn guardrail_configuration(mut self, input: crate::types::GuardrailConfiguration) -> Self {
370        self.guardrail_configuration = ::std::option::Option::Some(input);
371        self
372    }
373    /// <p>The unique Guardrail configuration assigned to the agent when it is updated.</p>
374    pub fn set_guardrail_configuration(mut self, input: ::std::option::Option<crate::types::GuardrailConfiguration>) -> Self {
375        self.guardrail_configuration = input;
376        self
377    }
378    /// <p>The unique Guardrail configuration assigned to the agent when it is updated.</p>
379    pub fn get_guardrail_configuration(&self) -> &::std::option::Option<crate::types::GuardrailConfiguration> {
380        &self.guardrail_configuration
381    }
382    /// <p>Specifies the new memory configuration for the agent.</p>
383    pub fn memory_configuration(mut self, input: crate::types::MemoryConfiguration) -> Self {
384        self.memory_configuration = ::std::option::Option::Some(input);
385        self
386    }
387    /// <p>Specifies the new memory configuration for the agent.</p>
388    pub fn set_memory_configuration(mut self, input: ::std::option::Option<crate::types::MemoryConfiguration>) -> Self {
389        self.memory_configuration = input;
390        self
391    }
392    /// <p>Specifies the new memory configuration for the agent.</p>
393    pub fn get_memory_configuration(&self) -> &::std::option::Option<crate::types::MemoryConfiguration> {
394        &self.memory_configuration
395    }
396    /// <p>The agent's collaboration role.</p>
397    pub fn agent_collaboration(mut self, input: crate::types::AgentCollaboration) -> Self {
398        self.agent_collaboration = ::std::option::Option::Some(input);
399        self
400    }
401    /// <p>The agent's collaboration role.</p>
402    pub fn set_agent_collaboration(mut self, input: ::std::option::Option<crate::types::AgentCollaboration>) -> Self {
403        self.agent_collaboration = input;
404        self
405    }
406    /// <p>The agent's collaboration role.</p>
407    pub fn get_agent_collaboration(&self) -> &::std::option::Option<crate::types::AgentCollaboration> {
408        &self.agent_collaboration
409    }
410    /// Consumes the builder and constructs a [`UpdateAgentInput`](crate::operation::update_agent::UpdateAgentInput).
411    pub fn build(self) -> ::std::result::Result<crate::operation::update_agent::UpdateAgentInput, ::aws_smithy_types::error::operation::BuildError> {
412        ::std::result::Result::Ok(crate::operation::update_agent::UpdateAgentInput {
413            agent_id: self.agent_id,
414            agent_name: self.agent_name,
415            instruction: self.instruction,
416            foundation_model: self.foundation_model,
417            description: self.description,
418            orchestration_type: self.orchestration_type,
419            custom_orchestration: self.custom_orchestration,
420            idle_session_ttl_in_seconds: self.idle_session_ttl_in_seconds,
421            agent_resource_role_arn: self.agent_resource_role_arn,
422            customer_encryption_key_arn: self.customer_encryption_key_arn,
423            prompt_override_configuration: self.prompt_override_configuration,
424            guardrail_configuration: self.guardrail_configuration,
425            memory_configuration: self.memory_configuration,
426            agent_collaboration: self.agent_collaboration,
427        })
428    }
429}
430impl ::std::fmt::Debug for UpdateAgentInputBuilder {
431    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
432        let mut formatter = f.debug_struct("UpdateAgentInputBuilder");
433        formatter.field("agent_id", &self.agent_id);
434        formatter.field("agent_name", &self.agent_name);
435        formatter.field("instruction", &"*** Sensitive Data Redacted ***");
436        formatter.field("foundation_model", &self.foundation_model);
437        formatter.field("description", &self.description);
438        formatter.field("orchestration_type", &self.orchestration_type);
439        formatter.field("custom_orchestration", &self.custom_orchestration);
440        formatter.field("idle_session_ttl_in_seconds", &self.idle_session_ttl_in_seconds);
441        formatter.field("agent_resource_role_arn", &self.agent_resource_role_arn);
442        formatter.field("customer_encryption_key_arn", &self.customer_encryption_key_arn);
443        formatter.field("prompt_override_configuration", &"*** Sensitive Data Redacted ***");
444        formatter.field("guardrail_configuration", &self.guardrail_configuration);
445        formatter.field("memory_configuration", &self.memory_configuration);
446        formatter.field("agent_collaboration", &self.agent_collaboration);
447        formatter.finish()
448    }
449}