aws_sdk_quicksight/operation/
delete_analysis.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteAnalysis`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteAnalysis;
6impl DeleteAnalysis {
7    /// Creates a new `DeleteAnalysis`
8    pub fn new() -> Self {
9        Self
10    }
11    pub(crate) async fn orchestrate(
12        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
13        input: crate::operation::delete_analysis::DeleteAnalysisInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_analysis::DeleteAnalysisOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_analysis::DeleteAnalysisError,
18            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
19        >,
20    > {
21        let map_err = |err: ::aws_smithy_runtime_api::client::result::SdkError<
22            ::aws_smithy_runtime_api::client::interceptors::context::Error,
23            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
24        >| {
25            err.map_service_error(|err| {
26                err.downcast::<crate::operation::delete_analysis::DeleteAnalysisError>()
27                    .expect("correct error type")
28            })
29        };
30        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
31            .await
32            .map_err(map_err)?;
33        let output = context.finalize().map_err(map_err)?;
34        ::std::result::Result::Ok(
35            output
36                .downcast::<crate::operation::delete_analysis::DeleteAnalysisOutput>()
37                .expect("correct output type"),
38        )
39    }
40
41    pub(crate) async fn orchestrate_with_stop_point(
42        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
43        input: crate::operation::delete_analysis::DeleteAnalysisInput,
44        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
45    ) -> ::std::result::Result<
46        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
47        ::aws_smithy_runtime_api::client::result::SdkError<
48            ::aws_smithy_runtime_api::client::interceptors::context::Error,
49            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
50        >,
51    > {
52        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
53        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("quicksight", "DeleteAnalysis", input, runtime_plugins, stop_point).await
54    }
55
56    pub(crate) fn operation_runtime_plugins(
57        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
58        client_config: &crate::config::Config,
59        config_override: ::std::option::Option<crate::config::Builder>,
60    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
61        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
62        runtime_plugins = runtime_plugins.with_client_plugin(crate::auth_plugin::DefaultAuthOptionsPlugin::new(vec![
63            ::aws_runtime::auth::sigv4::SCHEME_ID,
64        ]));
65        if let ::std::option::Option::Some(config_override) = config_override {
66            for plugin in config_override.runtime_plugins.iter().cloned() {
67                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
68            }
69            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
70                config_override,
71                client_config.config.clone(),
72                &client_config.runtime_components,
73            ));
74        }
75        runtime_plugins
76    }
77}
78impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for DeleteAnalysis {
79    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
80        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteAnalysis");
81
82        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
83            DeleteAnalysisRequestSerializer,
84        ));
85        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
86            DeleteAnalysisResponseDeserializer,
87        ));
88
89        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
90            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
91        ));
92
93        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
94            "DeleteAnalysis",
95            "quicksight",
96        ));
97        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
98        signing_options.double_uri_encode = true;
99        signing_options.content_sha256_header = false;
100        signing_options.normalize_uri_path = true;
101        signing_options.payload_override = None;
102
103        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
104            signing_options,
105            ..::std::default::Default::default()
106        });
107
108        ::std::option::Option::Some(cfg.freeze())
109    }
110
111    fn runtime_components(
112        &self,
113        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
114    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
115        #[allow(unused_mut)]
116        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteAnalysis")
117            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
118            .with_interceptor(DeleteAnalysisEndpointParamsInterceptor)
119            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
120                crate::operation::delete_analysis::DeleteAnalysisError,
121            >::new())
122            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
123                crate::operation::delete_analysis::DeleteAnalysisError,
124            >::new())
125            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
126                crate::operation::delete_analysis::DeleteAnalysisError,
127            >::new());
128
129        ::std::borrow::Cow::Owned(rcb)
130    }
131}
132
133#[derive(Debug)]
134struct DeleteAnalysisResponseDeserializer;
135impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteAnalysisResponseDeserializer {
136    fn deserialize_nonstreaming(
137        &self,
138        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
139    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
140        let (success, status) = (response.status().is_success(), response.status().as_u16());
141        let headers = response.headers();
142        let body = response.body().bytes().expect("body loaded");
143        #[allow(unused_mut)]
144        let mut force_error = false;
145        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
146        let parse_result = if !success && status != 200 || force_error {
147            crate::protocol_serde::shape_delete_analysis::de_delete_analysis_http_error(status, headers, body)
148        } else {
149            crate::protocol_serde::shape_delete_analysis::de_delete_analysis_http_response(status, headers, body)
150        };
151        crate::protocol_serde::type_erase_result(parse_result)
152    }
153}
154#[derive(Debug)]
155struct DeleteAnalysisRequestSerializer;
156impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteAnalysisRequestSerializer {
157    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
158    fn serialize_input(
159        &self,
160        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
161        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
162    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
163        let input = input
164            .downcast::<crate::operation::delete_analysis::DeleteAnalysisInput>()
165            .expect("correct type");
166        let _header_serialization_settings = _cfg
167            .load::<crate::serialization_settings::HeaderSerializationSettings>()
168            .cloned()
169            .unwrap_or_default();
170        let mut request_builder = {
171            fn uri_base(
172                _input: &crate::operation::delete_analysis::DeleteAnalysisInput,
173                output: &mut ::std::string::String,
174            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
175                use ::std::fmt::Write as _;
176                let input_1 = &_input.aws_account_id;
177                let input_1 = input_1
178                    .as_ref()
179                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
180                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
181                if aws_account_id.is_empty() {
182                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
183                        "aws_account_id",
184                        "cannot be empty or unset",
185                    ));
186                }
187                let input_2 = &_input.analysis_id;
188                let input_2 = input_2
189                    .as_ref()
190                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("analysis_id", "cannot be empty or unset"))?;
191                let analysis_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
192                if analysis_id.is_empty() {
193                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
194                        "analysis_id",
195                        "cannot be empty or unset",
196                    ));
197                }
198                ::std::write!(
199                    output,
200                    "/accounts/{AwsAccountId}/analyses/{AnalysisId}",
201                    AwsAccountId = aws_account_id,
202                    AnalysisId = analysis_id
203                )
204                .expect("formatting should succeed");
205                ::std::result::Result::Ok(())
206            }
207            fn uri_query(
208                _input: &crate::operation::delete_analysis::DeleteAnalysisInput,
209                mut output: &mut ::std::string::String,
210            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
211                let mut query = ::aws_smithy_http::query::Writer::new(output);
212                if let ::std::option::Option::Some(inner_3) = &_input.recovery_window_in_days {
213                    {
214                        query.push_kv("recovery-window-in-days", ::aws_smithy_types::primitive::Encoder::from(*inner_3).encode());
215                    }
216                }
217                if let ::std::option::Option::Some(inner_4) = &_input.force_delete_without_recovery {
218                    {
219                        query.push_kv(
220                            "force-delete-without-recovery",
221                            ::aws_smithy_types::primitive::Encoder::from(*inner_4).encode(),
222                        );
223                    }
224                }
225                ::std::result::Result::Ok(())
226            }
227            #[allow(clippy::unnecessary_wraps)]
228            fn update_http_builder(
229                input: &crate::operation::delete_analysis::DeleteAnalysisInput,
230                builder: ::http::request::Builder,
231            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
232                let mut uri = ::std::string::String::new();
233                uri_base(input, &mut uri)?;
234                uri_query(input, &mut uri)?;
235                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
236            }
237            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
238            builder
239        };
240        let body = ::aws_smithy_types::body::SdkBody::from("");
241
242        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
243    }
244}
245#[derive(Debug)]
246struct DeleteAnalysisEndpointParamsInterceptor;
247
248impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteAnalysisEndpointParamsInterceptor {
249    fn name(&self) -> &'static str {
250        "DeleteAnalysisEndpointParamsInterceptor"
251    }
252
253    fn read_before_execution(
254        &self,
255        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
256            '_,
257            ::aws_smithy_runtime_api::client::interceptors::context::Input,
258            ::aws_smithy_runtime_api::client::interceptors::context::Output,
259            ::aws_smithy_runtime_api::client::interceptors::context::Error,
260        >,
261        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
262    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
263        let _input = context
264            .input()
265            .downcast_ref::<DeleteAnalysisInput>()
266            .ok_or("failed to downcast to DeleteAnalysisInput")?;
267
268        let params = crate::config::endpoint::Params::builder()
269            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
270            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
271            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
272            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
273            .build()
274            .map_err(|err| {
275                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
276            })?;
277        cfg.interceptor_state()
278            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
279        ::std::result::Result::Ok(())
280    }
281}
282
283// The get_* functions below are generated from JMESPath expressions in the
284// operationContextParams trait. They target the operation's input shape.
285
286/// Error type for the `DeleteAnalysisError` operation.
287#[non_exhaustive]
288#[derive(::std::fmt::Debug)]
289pub enum DeleteAnalysisError {
290    /// <p>Updating or deleting a resource can cause an inconsistent state.</p>
291    ConflictException(crate::types::error::ConflictException),
292    /// <p>An internal failure occurred.</p>
293    InternalFailureException(crate::types::error::InternalFailureException),
294    /// <p>One or more parameters has a value that isn't valid.</p>
295    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
296    /// <p>One or more resources can't be found.</p>
297    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
298    /// <p>Access is throttled.</p>
299    ThrottlingException(crate::types::error::ThrottlingException),
300    /// <p>This error indicates that you are calling an operation on an Amazon QuickSight subscription where the edition doesn't include support for that operation. Amazon Amazon QuickSight currently has Standard Edition and Enterprise Edition. Not every operation and capability is available in every edition.</p>
301    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
302    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
303    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
304    variable wildcard pattern and check `.code()`:
305     \
306    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
307     \
308    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteAnalysisError) for what information is available for the error.")]
309    Unhandled(crate::error::sealed_unhandled::Unhandled),
310}
311impl DeleteAnalysisError {
312    /// Creates the `DeleteAnalysisError::Unhandled` variant from any error type.
313    pub fn unhandled(
314        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
315    ) -> Self {
316        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
317            source: err.into(),
318            meta: ::std::default::Default::default(),
319        })
320    }
321
322    /// Creates the `DeleteAnalysisError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
323    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
324        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
325            source: err.clone().into(),
326            meta: err,
327        })
328    }
329    ///
330    /// Returns error metadata, which includes the error code, message,
331    /// request ID, and potentially additional information.
332    ///
333    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
334        match self {
335            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
340            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
341            Self::Unhandled(e) => &e.meta,
342        }
343    }
344    /// Returns `true` if the error kind is `DeleteAnalysisError::ConflictException`.
345    pub fn is_conflict_exception(&self) -> bool {
346        matches!(self, Self::ConflictException(_))
347    }
348    /// Returns `true` if the error kind is `DeleteAnalysisError::InternalFailureException`.
349    pub fn is_internal_failure_exception(&self) -> bool {
350        matches!(self, Self::InternalFailureException(_))
351    }
352    /// Returns `true` if the error kind is `DeleteAnalysisError::InvalidParameterValueException`.
353    pub fn is_invalid_parameter_value_exception(&self) -> bool {
354        matches!(self, Self::InvalidParameterValueException(_))
355    }
356    /// Returns `true` if the error kind is `DeleteAnalysisError::ResourceNotFoundException`.
357    pub fn is_resource_not_found_exception(&self) -> bool {
358        matches!(self, Self::ResourceNotFoundException(_))
359    }
360    /// Returns `true` if the error kind is `DeleteAnalysisError::ThrottlingException`.
361    pub fn is_throttling_exception(&self) -> bool {
362        matches!(self, Self::ThrottlingException(_))
363    }
364    /// Returns `true` if the error kind is `DeleteAnalysisError::UnsupportedUserEditionException`.
365    pub fn is_unsupported_user_edition_exception(&self) -> bool {
366        matches!(self, Self::UnsupportedUserEditionException(_))
367    }
368}
369impl ::std::error::Error for DeleteAnalysisError {
370    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
371        match self {
372            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
373            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
374            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
375            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
376            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
377            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
378            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
379        }
380    }
381}
382impl ::std::fmt::Display for DeleteAnalysisError {
383    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
384        match self {
385            Self::ConflictException(_inner) => _inner.fmt(f),
386            Self::InternalFailureException(_inner) => _inner.fmt(f),
387            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
388            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
389            Self::ThrottlingException(_inner) => _inner.fmt(f),
390            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
391            Self::Unhandled(_inner) => {
392                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
393                    write!(f, "unhandled error ({code})")
394                } else {
395                    f.write_str("unhandled error")
396                }
397            }
398        }
399    }
400}
401impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteAnalysisError {
402    fn code(&self) -> ::std::option::Option<&str> {
403        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
404    }
405    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
406        ::std::option::Option::None
407    }
408}
409impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteAnalysisError {
410    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
411        match self {
412            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
413            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
414            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
415            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
416            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
417            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
418            Self::Unhandled(_inner) => &_inner.meta,
419        }
420    }
421}
422impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteAnalysisError {
423    fn create_unhandled_error(
424        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
425        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
426    ) -> Self {
427        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
428            source,
429            meta: meta.unwrap_or_default(),
430        })
431    }
432}
433impl ::aws_types::request_id::RequestId for crate::operation::delete_analysis::DeleteAnalysisError {
434    fn request_id(&self) -> Option<&str> {
435        self.meta().request_id()
436    }
437}
438
439pub use crate::operation::delete_analysis::_delete_analysis_output::DeleteAnalysisOutput;
440
441pub use crate::operation::delete_analysis::_delete_analysis_input::DeleteAnalysisInput;
442
443mod _delete_analysis_input;
444
445mod _delete_analysis_output;
446
447/// Builders
448pub mod builders;