aws_sdk_iot/operation/update_security_profile/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_security_profile::_update_security_profile_output::UpdateSecurityProfileOutputBuilder;
3
4pub use crate::operation::update_security_profile::_update_security_profile_input::UpdateSecurityProfileInputBuilder;
5
6impl crate::operation::update_security_profile::builders::UpdateSecurityProfileInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::update_security_profile::UpdateSecurityProfileOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_security_profile::UpdateSecurityProfileError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_security_profile();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateSecurityProfile`.
24///
25/// <p>Updates a Device Defender security profile.</p>
26/// <p>Requires permission to access the <a href="https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions">UpdateSecurityProfile</a> action.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct UpdateSecurityProfileFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::update_security_profile::builders::UpdateSecurityProfileInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::update_security_profile::UpdateSecurityProfileOutput,
36        crate::operation::update_security_profile::UpdateSecurityProfileError,
37    > for UpdateSecurityProfileFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::update_security_profile::UpdateSecurityProfileOutput,
45            crate::operation::update_security_profile::UpdateSecurityProfileError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl UpdateSecurityProfileFluentBuilder {
52    /// Creates a new `UpdateSecurityProfileFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the UpdateSecurityProfile as a reference.
61    pub fn as_input(&self) -> &crate::operation::update_security_profile::builders::UpdateSecurityProfileInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::update_security_profile::UpdateSecurityProfileOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::update_security_profile::UpdateSecurityProfileError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::update_security_profile::UpdateSecurityProfile::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::update_security_profile::UpdateSecurityProfile::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::update_security_profile::UpdateSecurityProfileOutput,
98        crate::operation::update_security_profile::UpdateSecurityProfileError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    /// <p>The name of the security profile you want to update.</p>
113    pub fn security_profile_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.inner = self.inner.security_profile_name(input.into());
115        self
116    }
117    /// <p>The name of the security profile you want to update.</p>
118    pub fn set_security_profile_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119        self.inner = self.inner.set_security_profile_name(input);
120        self
121    }
122    /// <p>The name of the security profile you want to update.</p>
123    pub fn get_security_profile_name(&self) -> &::std::option::Option<::std::string::String> {
124        self.inner.get_security_profile_name()
125    }
126    /// <p>A description of the security profile.</p>
127    pub fn security_profile_description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128        self.inner = self.inner.security_profile_description(input.into());
129        self
130    }
131    /// <p>A description of the security profile.</p>
132    pub fn set_security_profile_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
133        self.inner = self.inner.set_security_profile_description(input);
134        self
135    }
136    /// <p>A description of the security profile.</p>
137    pub fn get_security_profile_description(&self) -> &::std::option::Option<::std::string::String> {
138        self.inner.get_security_profile_description()
139    }
140    ///
141    /// Appends an item to `behaviors`.
142    ///
143    /// To override the contents of this collection use [`set_behaviors`](Self::set_behaviors).
144    ///
145    /// <p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>
146    pub fn behaviors(mut self, input: crate::types::Behavior) -> Self {
147        self.inner = self.inner.behaviors(input);
148        self
149    }
150    /// <p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>
151    pub fn set_behaviors(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Behavior>>) -> Self {
152        self.inner = self.inner.set_behaviors(input);
153        self
154    }
155    /// <p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>
156    pub fn get_behaviors(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Behavior>> {
157        self.inner.get_behaviors()
158    }
159    ///
160    /// Adds a key-value pair to `alertTargets`.
161    ///
162    /// To override the contents of this collection use [`set_alert_targets`](Self::set_alert_targets).
163    ///
164    /// <p>Where the alerts are sent. (Alerts are always sent to the console.)</p>
165    pub fn alert_targets(mut self, k: crate::types::AlertTargetType, v: crate::types::AlertTarget) -> Self {
166        self.inner = self.inner.alert_targets(k, v);
167        self
168    }
169    /// <p>Where the alerts are sent. (Alerts are always sent to the console.)</p>
170    pub fn set_alert_targets(
171        mut self,
172        input: ::std::option::Option<::std::collections::HashMap<crate::types::AlertTargetType, crate::types::AlertTarget>>,
173    ) -> Self {
174        self.inner = self.inner.set_alert_targets(input);
175        self
176    }
177    /// <p>Where the alerts are sent. (Alerts are always sent to the console.)</p>
178    pub fn get_alert_targets(&self) -> &::std::option::Option<::std::collections::HashMap<crate::types::AlertTargetType, crate::types::AlertTarget>> {
179        self.inner.get_alert_targets()
180    }
181    ///
182    /// Appends an item to `additionalMetricsToRetain`.
183    ///
184    /// To override the contents of this collection use [`set_additional_metrics_to_retain`](Self::set_additional_metrics_to_retain).
185    ///
186    /// <p><i>Please use <code>UpdateSecurityProfileRequest$additionalMetricsToRetainV2</code> instead.</i></p>
187    /// <p>A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.</p>
188    #[deprecated(note = "Use additionalMetricsToRetainV2.")]
189    pub fn additional_metrics_to_retain(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
190        self.inner = self.inner.additional_metrics_to_retain(input.into());
191        self
192    }
193    /// <p><i>Please use <code>UpdateSecurityProfileRequest$additionalMetricsToRetainV2</code> instead.</i></p>
194    /// <p>A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.</p>
195    #[deprecated(note = "Use additionalMetricsToRetainV2.")]
196    pub fn set_additional_metrics_to_retain(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
197        self.inner = self.inner.set_additional_metrics_to_retain(input);
198        self
199    }
200    /// <p><i>Please use <code>UpdateSecurityProfileRequest$additionalMetricsToRetainV2</code> instead.</i></p>
201    /// <p>A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's <code>behaviors</code>, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.</p>
202    #[deprecated(note = "Use additionalMetricsToRetainV2.")]
203    pub fn get_additional_metrics_to_retain(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
204        self.inner.get_additional_metrics_to_retain()
205    }
206    ///
207    /// Appends an item to `additionalMetricsToRetainV2`.
208    ///
209    /// To override the contents of this collection use [`set_additional_metrics_to_retain_v2`](Self::set_additional_metrics_to_retain_v2).
210    ///
211    /// <p>A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.</p>
212    pub fn additional_metrics_to_retain_v2(mut self, input: crate::types::MetricToRetain) -> Self {
213        self.inner = self.inner.additional_metrics_to_retain_v2(input);
214        self
215    }
216    /// <p>A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.</p>
217    pub fn set_additional_metrics_to_retain_v2(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::MetricToRetain>>) -> Self {
218        self.inner = self.inner.set_additional_metrics_to_retain_v2(input);
219        self
220    }
221    /// <p>A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here. Can be used with custom metrics; cannot be used with dimensions.</p>
222    pub fn get_additional_metrics_to_retain_v2(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::MetricToRetain>> {
223        self.inner.get_additional_metrics_to_retain_v2()
224    }
225    /// <p>If true, delete all <code>behaviors</code> defined for this security profile. If any <code>behaviors</code> are defined in the current invocation, an exception occurs.</p>
226    pub fn delete_behaviors(mut self, input: bool) -> Self {
227        self.inner = self.inner.delete_behaviors(input);
228        self
229    }
230    /// <p>If true, delete all <code>behaviors</code> defined for this security profile. If any <code>behaviors</code> are defined in the current invocation, an exception occurs.</p>
231    pub fn set_delete_behaviors(mut self, input: ::std::option::Option<bool>) -> Self {
232        self.inner = self.inner.set_delete_behaviors(input);
233        self
234    }
235    /// <p>If true, delete all <code>behaviors</code> defined for this security profile. If any <code>behaviors</code> are defined in the current invocation, an exception occurs.</p>
236    pub fn get_delete_behaviors(&self) -> &::std::option::Option<bool> {
237        self.inner.get_delete_behaviors()
238    }
239    /// <p>If true, delete all <code>alertTargets</code> defined for this security profile. If any <code>alertTargets</code> are defined in the current invocation, an exception occurs.</p>
240    pub fn delete_alert_targets(mut self, input: bool) -> Self {
241        self.inner = self.inner.delete_alert_targets(input);
242        self
243    }
244    /// <p>If true, delete all <code>alertTargets</code> defined for this security profile. If any <code>alertTargets</code> are defined in the current invocation, an exception occurs.</p>
245    pub fn set_delete_alert_targets(mut self, input: ::std::option::Option<bool>) -> Self {
246        self.inner = self.inner.set_delete_alert_targets(input);
247        self
248    }
249    /// <p>If true, delete all <code>alertTargets</code> defined for this security profile. If any <code>alertTargets</code> are defined in the current invocation, an exception occurs.</p>
250    pub fn get_delete_alert_targets(&self) -> &::std::option::Option<bool> {
251        self.inner.get_delete_alert_targets()
252    }
253    /// <p>If true, delete all <code>additionalMetricsToRetain</code> defined for this security profile. If any <code>additionalMetricsToRetain</code> are defined in the current invocation, an exception occurs.</p>
254    pub fn delete_additional_metrics_to_retain(mut self, input: bool) -> Self {
255        self.inner = self.inner.delete_additional_metrics_to_retain(input);
256        self
257    }
258    /// <p>If true, delete all <code>additionalMetricsToRetain</code> defined for this security profile. If any <code>additionalMetricsToRetain</code> are defined in the current invocation, an exception occurs.</p>
259    pub fn set_delete_additional_metrics_to_retain(mut self, input: ::std::option::Option<bool>) -> Self {
260        self.inner = self.inner.set_delete_additional_metrics_to_retain(input);
261        self
262    }
263    /// <p>If true, delete all <code>additionalMetricsToRetain</code> defined for this security profile. If any <code>additionalMetricsToRetain</code> are defined in the current invocation, an exception occurs.</p>
264    pub fn get_delete_additional_metrics_to_retain(&self) -> &::std::option::Option<bool> {
265        self.inner.get_delete_additional_metrics_to_retain()
266    }
267    /// <p>The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different from the actual version, a <code>VersionConflictException</code> is thrown.</p>
268    pub fn expected_version(mut self, input: i64) -> Self {
269        self.inner = self.inner.expected_version(input);
270        self
271    }
272    /// <p>The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different from the actual version, a <code>VersionConflictException</code> is thrown.</p>
273    pub fn set_expected_version(mut self, input: ::std::option::Option<i64>) -> Self {
274        self.inner = self.inner.set_expected_version(input);
275        self
276    }
277    /// <p>The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different from the actual version, a <code>VersionConflictException</code> is thrown.</p>
278    pub fn get_expected_version(&self) -> &::std::option::Option<i64> {
279        self.inner.get_expected_version()
280    }
281    /// <p>Specifies the MQTT topic and role ARN required for metric export.</p>
282    pub fn metrics_export_config(mut self, input: crate::types::MetricsExportConfig) -> Self {
283        self.inner = self.inner.metrics_export_config(input);
284        self
285    }
286    /// <p>Specifies the MQTT topic and role ARN required for metric export.</p>
287    pub fn set_metrics_export_config(mut self, input: ::std::option::Option<crate::types::MetricsExportConfig>) -> Self {
288        self.inner = self.inner.set_metrics_export_config(input);
289        self
290    }
291    /// <p>Specifies the MQTT topic and role ARN required for metric export.</p>
292    pub fn get_metrics_export_config(&self) -> &::std::option::Option<crate::types::MetricsExportConfig> {
293        self.inner.get_metrics_export_config()
294    }
295    /// <p>Set the value as true to delete metrics export related configurations.</p>
296    pub fn delete_metrics_export_config(mut self, input: bool) -> Self {
297        self.inner = self.inner.delete_metrics_export_config(input);
298        self
299    }
300    /// <p>Set the value as true to delete metrics export related configurations.</p>
301    pub fn set_delete_metrics_export_config(mut self, input: ::std::option::Option<bool>) -> Self {
302        self.inner = self.inner.set_delete_metrics_export_config(input);
303        self
304    }
305    /// <p>Set the value as true to delete metrics export related configurations.</p>
306    pub fn get_delete_metrics_export_config(&self) -> &::std::option::Option<bool> {
307        self.inner.get_delete_metrics_export_config()
308    }
309}