aws_sdk_auditmanager/operation/delete_assessment_report/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::delete_assessment_report::_delete_assessment_report_output::DeleteAssessmentReportOutputBuilder;
3
4pub use crate::operation::delete_assessment_report::_delete_assessment_report_input::DeleteAssessmentReportInputBuilder;
5
6impl crate::operation::delete_assessment_report::builders::DeleteAssessmentReportInputBuilder {
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::delete_assessment_report::DeleteAssessmentReportOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::delete_assessment_report::DeleteAssessmentReportError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.delete_assessment_report();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `DeleteAssessmentReport`.
24///
25/// <p>Deletes an assessment report in Audit Manager.</p>
26/// <p>When you run the <code>DeleteAssessmentReport</code> operation, Audit Manager attempts to delete the following data:</p>
27/// <ol>
28/// <li>
29/// <p>The specified assessment report that’s stored in your S3 bucket</p></li>
30/// <li>
31/// <p>The associated metadata that’s stored in Audit Manager</p></li>
32/// </ol>
33/// <p>If Audit Manager can’t access the assessment report in your S3 bucket, the report isn’t deleted. In this event, the <code>DeleteAssessmentReport</code> operation doesn’t fail. Instead, it proceeds to delete the associated metadata only. You must then delete the assessment report from the S3 bucket yourself.</p>
34/// <p>This scenario happens when Audit Manager receives a <code>403 (Forbidden)</code> or <code>404 (Not Found)</code> error from Amazon S3. To avoid this, make sure that your S3 bucket is available, and that you configured the correct permissions for Audit Manager to delete resources in your S3 bucket. For an example permissions policy that you can use, see <a href="https://docs.aws.amazon.com/audit-manager/latest/userguide/security_iam_id-based-policy-examples.html#full-administrator-access-assessment-report-destination">Assessment report destination permissions</a> in the <i>Audit Manager User Guide</i>. For information about the issues that could cause a <code>403 (Forbidden)</code> or <code>404 (Not Found</code>) error from Amazon S3, see <a href="https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList">List of Error Codes</a> in the <i>Amazon Simple Storage Service API Reference</i>.</p>
35#[derive(::std::clone::Clone, ::std::fmt::Debug)]
36pub struct DeleteAssessmentReportFluentBuilder {
37    handle: ::std::sync::Arc<crate::client::Handle>,
38    inner: crate::operation::delete_assessment_report::builders::DeleteAssessmentReportInputBuilder,
39    config_override: ::std::option::Option<crate::config::Builder>,
40}
41impl
42    crate::client::customize::internal::CustomizableSend<
43        crate::operation::delete_assessment_report::DeleteAssessmentReportOutput,
44        crate::operation::delete_assessment_report::DeleteAssessmentReportError,
45    > for DeleteAssessmentReportFluentBuilder
46{
47    fn send(
48        self,
49        config_override: crate::config::Builder,
50    ) -> crate::client::customize::internal::BoxFuture<
51        crate::client::customize::internal::SendResult<
52            crate::operation::delete_assessment_report::DeleteAssessmentReportOutput,
53            crate::operation::delete_assessment_report::DeleteAssessmentReportError,
54        >,
55    > {
56        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
57    }
58}
59impl DeleteAssessmentReportFluentBuilder {
60    /// Creates a new `DeleteAssessmentReportFluentBuilder`.
61    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
62        Self {
63            handle,
64            inner: ::std::default::Default::default(),
65            config_override: ::std::option::Option::None,
66        }
67    }
68    /// Access the DeleteAssessmentReport as a reference.
69    pub fn as_input(&self) -> &crate::operation::delete_assessment_report::builders::DeleteAssessmentReportInputBuilder {
70        &self.inner
71    }
72    /// Sends the request and returns the response.
73    ///
74    /// If an error occurs, an `SdkError` will be returned with additional details that
75    /// can be matched against.
76    ///
77    /// By default, any retryable failures will be retried twice. Retry behavior
78    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
79    /// set when configuring the client.
80    pub async fn send(
81        self,
82    ) -> ::std::result::Result<
83        crate::operation::delete_assessment_report::DeleteAssessmentReportOutput,
84        ::aws_smithy_runtime_api::client::result::SdkError<
85            crate::operation::delete_assessment_report::DeleteAssessmentReportError,
86            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
87        >,
88    > {
89        let input = self
90            .inner
91            .build()
92            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
93        let runtime_plugins = crate::operation::delete_assessment_report::DeleteAssessmentReport::operation_runtime_plugins(
94            self.handle.runtime_plugins.clone(),
95            &self.handle.conf,
96            self.config_override,
97        );
98        crate::operation::delete_assessment_report::DeleteAssessmentReport::orchestrate(&runtime_plugins, input).await
99    }
100
101    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
102    pub fn customize(
103        self,
104    ) -> crate::client::customize::CustomizableOperation<
105        crate::operation::delete_assessment_report::DeleteAssessmentReportOutput,
106        crate::operation::delete_assessment_report::DeleteAssessmentReportError,
107        Self,
108    > {
109        crate::client::customize::CustomizableOperation::new(self)
110    }
111    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
112        self.set_config_override(::std::option::Option::Some(config_override.into()));
113        self
114    }
115
116    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
117        self.config_override = config_override;
118        self
119    }
120    /// <p>The unique identifier for the assessment.</p>
121    pub fn assessment_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
122        self.inner = self.inner.assessment_id(input.into());
123        self
124    }
125    /// <p>The unique identifier for the assessment.</p>
126    pub fn set_assessment_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
127        self.inner = self.inner.set_assessment_id(input);
128        self
129    }
130    /// <p>The unique identifier for the assessment.</p>
131    pub fn get_assessment_id(&self) -> &::std::option::Option<::std::string::String> {
132        self.inner.get_assessment_id()
133    }
134    /// <p>The unique identifier for the assessment report.</p>
135    pub fn assessment_report_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
136        self.inner = self.inner.assessment_report_id(input.into());
137        self
138    }
139    /// <p>The unique identifier for the assessment report.</p>
140    pub fn set_assessment_report_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
141        self.inner = self.inner.set_assessment_report_id(input);
142        self
143    }
144    /// <p>The unique identifier for the assessment report.</p>
145    pub fn get_assessment_report_id(&self) -> &::std::option::Option<::std::string::String> {
146        self.inner.get_assessment_report_id()
147    }
148}