aws_sdk_bedrock/operation/update_guardrail/
_update_guardrail_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 UpdateGuardrailInput {
6    /// <p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>
7    pub guardrail_identifier: ::std::option::Option<::std::string::String>,
8    /// <p>A name for the guardrail.</p>
9    pub name: ::std::option::Option<::std::string::String>,
10    /// <p>A description of the guardrail.</p>
11    pub description: ::std::option::Option<::std::string::String>,
12    /// <p>The topic policy to configure for the guardrail.</p>
13    pub topic_policy_config: ::std::option::Option<crate::types::GuardrailTopicPolicyConfig>,
14    /// <p>The content policy to configure for the guardrail.</p>
15    pub content_policy_config: ::std::option::Option<crate::types::GuardrailContentPolicyConfig>,
16    /// <p>The word policy to configure for the guardrail.</p>
17    pub word_policy_config: ::std::option::Option<crate::types::GuardrailWordPolicyConfig>,
18    /// <p>The sensitive information policy to configure for the guardrail.</p>
19    pub sensitive_information_policy_config: ::std::option::Option<crate::types::GuardrailSensitiveInformationPolicyConfig>,
20    /// <p>The contextual grounding policy configuration used to update a guardrail.</p>
21    pub contextual_grounding_policy_config: ::std::option::Option<crate::types::GuardrailContextualGroundingPolicyConfig>,
22    /// <p>Updated configuration for Automated Reasoning policies associated with the guardrail.</p>
23    pub automated_reasoning_policy_config: ::std::option::Option<crate::types::GuardrailAutomatedReasoningPolicyConfig>,
24    /// <p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p>
25    /// <p>For more information, see the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html">Amazon Bedrock User Guide</a>.</p>
26    pub cross_region_config: ::std::option::Option<crate::types::GuardrailCrossRegionConfig>,
27    /// <p>The message to return when the guardrail blocks a prompt.</p>
28    pub blocked_input_messaging: ::std::option::Option<::std::string::String>,
29    /// <p>The message to return when the guardrail blocks a model response.</p>
30    pub blocked_outputs_messaging: ::std::option::Option<::std::string::String>,
31    /// <p>The ARN of the KMS key with which to encrypt the guardrail.</p>
32    pub kms_key_id: ::std::option::Option<::std::string::String>,
33}
34impl UpdateGuardrailInput {
35    /// <p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>
36    pub fn guardrail_identifier(&self) -> ::std::option::Option<&str> {
37        self.guardrail_identifier.as_deref()
38    }
39    /// <p>A name for the guardrail.</p>
40    pub fn name(&self) -> ::std::option::Option<&str> {
41        self.name.as_deref()
42    }
43    /// <p>A description of the guardrail.</p>
44    pub fn description(&self) -> ::std::option::Option<&str> {
45        self.description.as_deref()
46    }
47    /// <p>The topic policy to configure for the guardrail.</p>
48    pub fn topic_policy_config(&self) -> ::std::option::Option<&crate::types::GuardrailTopicPolicyConfig> {
49        self.topic_policy_config.as_ref()
50    }
51    /// <p>The content policy to configure for the guardrail.</p>
52    pub fn content_policy_config(&self) -> ::std::option::Option<&crate::types::GuardrailContentPolicyConfig> {
53        self.content_policy_config.as_ref()
54    }
55    /// <p>The word policy to configure for the guardrail.</p>
56    pub fn word_policy_config(&self) -> ::std::option::Option<&crate::types::GuardrailWordPolicyConfig> {
57        self.word_policy_config.as_ref()
58    }
59    /// <p>The sensitive information policy to configure for the guardrail.</p>
60    pub fn sensitive_information_policy_config(&self) -> ::std::option::Option<&crate::types::GuardrailSensitiveInformationPolicyConfig> {
61        self.sensitive_information_policy_config.as_ref()
62    }
63    /// <p>The contextual grounding policy configuration used to update a guardrail.</p>
64    pub fn contextual_grounding_policy_config(&self) -> ::std::option::Option<&crate::types::GuardrailContextualGroundingPolicyConfig> {
65        self.contextual_grounding_policy_config.as_ref()
66    }
67    /// <p>Updated configuration for Automated Reasoning policies associated with the guardrail.</p>
68    pub fn automated_reasoning_policy_config(&self) -> ::std::option::Option<&crate::types::GuardrailAutomatedReasoningPolicyConfig> {
69        self.automated_reasoning_policy_config.as_ref()
70    }
71    /// <p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p>
72    /// <p>For more information, see the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html">Amazon Bedrock User Guide</a>.</p>
73    pub fn cross_region_config(&self) -> ::std::option::Option<&crate::types::GuardrailCrossRegionConfig> {
74        self.cross_region_config.as_ref()
75    }
76    /// <p>The message to return when the guardrail blocks a prompt.</p>
77    pub fn blocked_input_messaging(&self) -> ::std::option::Option<&str> {
78        self.blocked_input_messaging.as_deref()
79    }
80    /// <p>The message to return when the guardrail blocks a model response.</p>
81    pub fn blocked_outputs_messaging(&self) -> ::std::option::Option<&str> {
82        self.blocked_outputs_messaging.as_deref()
83    }
84    /// <p>The ARN of the KMS key with which to encrypt the guardrail.</p>
85    pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
86        self.kms_key_id.as_deref()
87    }
88}
89impl ::std::fmt::Debug for UpdateGuardrailInput {
90    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
91        let mut formatter = f.debug_struct("UpdateGuardrailInput");
92        formatter.field("guardrail_identifier", &self.guardrail_identifier);
93        formatter.field("name", &"*** Sensitive Data Redacted ***");
94        formatter.field("description", &"*** Sensitive Data Redacted ***");
95        formatter.field("topic_policy_config", &self.topic_policy_config);
96        formatter.field("content_policy_config", &self.content_policy_config);
97        formatter.field("word_policy_config", &self.word_policy_config);
98        formatter.field("sensitive_information_policy_config", &self.sensitive_information_policy_config);
99        formatter.field("contextual_grounding_policy_config", &self.contextual_grounding_policy_config);
100        formatter.field("automated_reasoning_policy_config", &self.automated_reasoning_policy_config);
101        formatter.field("cross_region_config", &self.cross_region_config);
102        formatter.field("blocked_input_messaging", &"*** Sensitive Data Redacted ***");
103        formatter.field("blocked_outputs_messaging", &"*** Sensitive Data Redacted ***");
104        formatter.field("kms_key_id", &self.kms_key_id);
105        formatter.finish()
106    }
107}
108impl UpdateGuardrailInput {
109    /// Creates a new builder-style object to manufacture [`UpdateGuardrailInput`](crate::operation::update_guardrail::UpdateGuardrailInput).
110    pub fn builder() -> crate::operation::update_guardrail::builders::UpdateGuardrailInputBuilder {
111        crate::operation::update_guardrail::builders::UpdateGuardrailInputBuilder::default()
112    }
113}
114
115/// A builder for [`UpdateGuardrailInput`](crate::operation::update_guardrail::UpdateGuardrailInput).
116#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
117#[non_exhaustive]
118pub struct UpdateGuardrailInputBuilder {
119    pub(crate) guardrail_identifier: ::std::option::Option<::std::string::String>,
120    pub(crate) name: ::std::option::Option<::std::string::String>,
121    pub(crate) description: ::std::option::Option<::std::string::String>,
122    pub(crate) topic_policy_config: ::std::option::Option<crate::types::GuardrailTopicPolicyConfig>,
123    pub(crate) content_policy_config: ::std::option::Option<crate::types::GuardrailContentPolicyConfig>,
124    pub(crate) word_policy_config: ::std::option::Option<crate::types::GuardrailWordPolicyConfig>,
125    pub(crate) sensitive_information_policy_config: ::std::option::Option<crate::types::GuardrailSensitiveInformationPolicyConfig>,
126    pub(crate) contextual_grounding_policy_config: ::std::option::Option<crate::types::GuardrailContextualGroundingPolicyConfig>,
127    pub(crate) automated_reasoning_policy_config: ::std::option::Option<crate::types::GuardrailAutomatedReasoningPolicyConfig>,
128    pub(crate) cross_region_config: ::std::option::Option<crate::types::GuardrailCrossRegionConfig>,
129    pub(crate) blocked_input_messaging: ::std::option::Option<::std::string::String>,
130    pub(crate) blocked_outputs_messaging: ::std::option::Option<::std::string::String>,
131    pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
132}
133impl UpdateGuardrailInputBuilder {
134    /// <p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>
135    /// This field is required.
136    pub fn guardrail_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
137        self.guardrail_identifier = ::std::option::Option::Some(input.into());
138        self
139    }
140    /// <p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>
141    pub fn set_guardrail_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
142        self.guardrail_identifier = input;
143        self
144    }
145    /// <p>The unique identifier of the guardrail. This can be an ID or the ARN.</p>
146    pub fn get_guardrail_identifier(&self) -> &::std::option::Option<::std::string::String> {
147        &self.guardrail_identifier
148    }
149    /// <p>A name for the guardrail.</p>
150    /// This field is required.
151    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
152        self.name = ::std::option::Option::Some(input.into());
153        self
154    }
155    /// <p>A name for the guardrail.</p>
156    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
157        self.name = input;
158        self
159    }
160    /// <p>A name for the guardrail.</p>
161    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
162        &self.name
163    }
164    /// <p>A description of the guardrail.</p>
165    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
166        self.description = ::std::option::Option::Some(input.into());
167        self
168    }
169    /// <p>A description of the guardrail.</p>
170    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
171        self.description = input;
172        self
173    }
174    /// <p>A description of the guardrail.</p>
175    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
176        &self.description
177    }
178    /// <p>The topic policy to configure for the guardrail.</p>
179    pub fn topic_policy_config(mut self, input: crate::types::GuardrailTopicPolicyConfig) -> Self {
180        self.topic_policy_config = ::std::option::Option::Some(input);
181        self
182    }
183    /// <p>The topic policy to configure for the guardrail.</p>
184    pub fn set_topic_policy_config(mut self, input: ::std::option::Option<crate::types::GuardrailTopicPolicyConfig>) -> Self {
185        self.topic_policy_config = input;
186        self
187    }
188    /// <p>The topic policy to configure for the guardrail.</p>
189    pub fn get_topic_policy_config(&self) -> &::std::option::Option<crate::types::GuardrailTopicPolicyConfig> {
190        &self.topic_policy_config
191    }
192    /// <p>The content policy to configure for the guardrail.</p>
193    pub fn content_policy_config(mut self, input: crate::types::GuardrailContentPolicyConfig) -> Self {
194        self.content_policy_config = ::std::option::Option::Some(input);
195        self
196    }
197    /// <p>The content policy to configure for the guardrail.</p>
198    pub fn set_content_policy_config(mut self, input: ::std::option::Option<crate::types::GuardrailContentPolicyConfig>) -> Self {
199        self.content_policy_config = input;
200        self
201    }
202    /// <p>The content policy to configure for the guardrail.</p>
203    pub fn get_content_policy_config(&self) -> &::std::option::Option<crate::types::GuardrailContentPolicyConfig> {
204        &self.content_policy_config
205    }
206    /// <p>The word policy to configure for the guardrail.</p>
207    pub fn word_policy_config(mut self, input: crate::types::GuardrailWordPolicyConfig) -> Self {
208        self.word_policy_config = ::std::option::Option::Some(input);
209        self
210    }
211    /// <p>The word policy to configure for the guardrail.</p>
212    pub fn set_word_policy_config(mut self, input: ::std::option::Option<crate::types::GuardrailWordPolicyConfig>) -> Self {
213        self.word_policy_config = input;
214        self
215    }
216    /// <p>The word policy to configure for the guardrail.</p>
217    pub fn get_word_policy_config(&self) -> &::std::option::Option<crate::types::GuardrailWordPolicyConfig> {
218        &self.word_policy_config
219    }
220    /// <p>The sensitive information policy to configure for the guardrail.</p>
221    pub fn sensitive_information_policy_config(mut self, input: crate::types::GuardrailSensitiveInformationPolicyConfig) -> Self {
222        self.sensitive_information_policy_config = ::std::option::Option::Some(input);
223        self
224    }
225    /// <p>The sensitive information policy to configure for the guardrail.</p>
226    pub fn set_sensitive_information_policy_config(
227        mut self,
228        input: ::std::option::Option<crate::types::GuardrailSensitiveInformationPolicyConfig>,
229    ) -> Self {
230        self.sensitive_information_policy_config = input;
231        self
232    }
233    /// <p>The sensitive information policy to configure for the guardrail.</p>
234    pub fn get_sensitive_information_policy_config(&self) -> &::std::option::Option<crate::types::GuardrailSensitiveInformationPolicyConfig> {
235        &self.sensitive_information_policy_config
236    }
237    /// <p>The contextual grounding policy configuration used to update a guardrail.</p>
238    pub fn contextual_grounding_policy_config(mut self, input: crate::types::GuardrailContextualGroundingPolicyConfig) -> Self {
239        self.contextual_grounding_policy_config = ::std::option::Option::Some(input);
240        self
241    }
242    /// <p>The contextual grounding policy configuration used to update a guardrail.</p>
243    pub fn set_contextual_grounding_policy_config(
244        mut self,
245        input: ::std::option::Option<crate::types::GuardrailContextualGroundingPolicyConfig>,
246    ) -> Self {
247        self.contextual_grounding_policy_config = input;
248        self
249    }
250    /// <p>The contextual grounding policy configuration used to update a guardrail.</p>
251    pub fn get_contextual_grounding_policy_config(&self) -> &::std::option::Option<crate::types::GuardrailContextualGroundingPolicyConfig> {
252        &self.contextual_grounding_policy_config
253    }
254    /// <p>Updated configuration for Automated Reasoning policies associated with the guardrail.</p>
255    pub fn automated_reasoning_policy_config(mut self, input: crate::types::GuardrailAutomatedReasoningPolicyConfig) -> Self {
256        self.automated_reasoning_policy_config = ::std::option::Option::Some(input);
257        self
258    }
259    /// <p>Updated configuration for Automated Reasoning policies associated with the guardrail.</p>
260    pub fn set_automated_reasoning_policy_config(
261        mut self,
262        input: ::std::option::Option<crate::types::GuardrailAutomatedReasoningPolicyConfig>,
263    ) -> Self {
264        self.automated_reasoning_policy_config = input;
265        self
266    }
267    /// <p>Updated configuration for Automated Reasoning policies associated with the guardrail.</p>
268    pub fn get_automated_reasoning_policy_config(&self) -> &::std::option::Option<crate::types::GuardrailAutomatedReasoningPolicyConfig> {
269        &self.automated_reasoning_policy_config
270    }
271    /// <p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p>
272    /// <p>For more information, see the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html">Amazon Bedrock User Guide</a>.</p>
273    pub fn cross_region_config(mut self, input: crate::types::GuardrailCrossRegionConfig) -> Self {
274        self.cross_region_config = ::std::option::Option::Some(input);
275        self
276    }
277    /// <p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p>
278    /// <p>For more information, see the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html">Amazon Bedrock User Guide</a>.</p>
279    pub fn set_cross_region_config(mut self, input: ::std::option::Option<crate::types::GuardrailCrossRegionConfig>) -> Self {
280        self.cross_region_config = input;
281        self
282    }
283    /// <p>The system-defined guardrail profile that you're using with your guardrail. Guardrail profiles define the destination Amazon Web Services Regions where guardrail inference requests can be automatically routed.</p>
284    /// <p>For more information, see the <a href="https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-cross-region.html">Amazon Bedrock User Guide</a>.</p>
285    pub fn get_cross_region_config(&self) -> &::std::option::Option<crate::types::GuardrailCrossRegionConfig> {
286        &self.cross_region_config
287    }
288    /// <p>The message to return when the guardrail blocks a prompt.</p>
289    /// This field is required.
290    pub fn blocked_input_messaging(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
291        self.blocked_input_messaging = ::std::option::Option::Some(input.into());
292        self
293    }
294    /// <p>The message to return when the guardrail blocks a prompt.</p>
295    pub fn set_blocked_input_messaging(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
296        self.blocked_input_messaging = input;
297        self
298    }
299    /// <p>The message to return when the guardrail blocks a prompt.</p>
300    pub fn get_blocked_input_messaging(&self) -> &::std::option::Option<::std::string::String> {
301        &self.blocked_input_messaging
302    }
303    /// <p>The message to return when the guardrail blocks a model response.</p>
304    /// This field is required.
305    pub fn blocked_outputs_messaging(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
306        self.blocked_outputs_messaging = ::std::option::Option::Some(input.into());
307        self
308    }
309    /// <p>The message to return when the guardrail blocks a model response.</p>
310    pub fn set_blocked_outputs_messaging(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
311        self.blocked_outputs_messaging = input;
312        self
313    }
314    /// <p>The message to return when the guardrail blocks a model response.</p>
315    pub fn get_blocked_outputs_messaging(&self) -> &::std::option::Option<::std::string::String> {
316        &self.blocked_outputs_messaging
317    }
318    /// <p>The ARN of the KMS key with which to encrypt the guardrail.</p>
319    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
320        self.kms_key_id = ::std::option::Option::Some(input.into());
321        self
322    }
323    /// <p>The ARN of the KMS key with which to encrypt the guardrail.</p>
324    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
325        self.kms_key_id = input;
326        self
327    }
328    /// <p>The ARN of the KMS key with which to encrypt the guardrail.</p>
329    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
330        &self.kms_key_id
331    }
332    /// Consumes the builder and constructs a [`UpdateGuardrailInput`](crate::operation::update_guardrail::UpdateGuardrailInput).
333    pub fn build(
334        self,
335    ) -> ::std::result::Result<crate::operation::update_guardrail::UpdateGuardrailInput, ::aws_smithy_types::error::operation::BuildError> {
336        ::std::result::Result::Ok(crate::operation::update_guardrail::UpdateGuardrailInput {
337            guardrail_identifier: self.guardrail_identifier,
338            name: self.name,
339            description: self.description,
340            topic_policy_config: self.topic_policy_config,
341            content_policy_config: self.content_policy_config,
342            word_policy_config: self.word_policy_config,
343            sensitive_information_policy_config: self.sensitive_information_policy_config,
344            contextual_grounding_policy_config: self.contextual_grounding_policy_config,
345            automated_reasoning_policy_config: self.automated_reasoning_policy_config,
346            cross_region_config: self.cross_region_config,
347            blocked_input_messaging: self.blocked_input_messaging,
348            blocked_outputs_messaging: self.blocked_outputs_messaging,
349            kms_key_id: self.kms_key_id,
350        })
351    }
352}
353impl ::std::fmt::Debug for UpdateGuardrailInputBuilder {
354    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
355        let mut formatter = f.debug_struct("UpdateGuardrailInputBuilder");
356        formatter.field("guardrail_identifier", &self.guardrail_identifier);
357        formatter.field("name", &"*** Sensitive Data Redacted ***");
358        formatter.field("description", &"*** Sensitive Data Redacted ***");
359        formatter.field("topic_policy_config", &self.topic_policy_config);
360        formatter.field("content_policy_config", &self.content_policy_config);
361        formatter.field("word_policy_config", &self.word_policy_config);
362        formatter.field("sensitive_information_policy_config", &self.sensitive_information_policy_config);
363        formatter.field("contextual_grounding_policy_config", &self.contextual_grounding_policy_config);
364        formatter.field("automated_reasoning_policy_config", &self.automated_reasoning_policy_config);
365        formatter.field("cross_region_config", &self.cross_region_config);
366        formatter.field("blocked_input_messaging", &"*** Sensitive Data Redacted ***");
367        formatter.field("blocked_outputs_messaging", &"*** Sensitive Data Redacted ***");
368        formatter.field("kms_key_id", &self.kms_key_id);
369        formatter.finish()
370    }
371}