aws_sdk_quicksight/operation/
delete_theme_alias.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteThemeAlias`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteThemeAlias;
6impl DeleteThemeAlias {
7    /// Creates a new `DeleteThemeAlias`
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_theme_alias::DeleteThemeAliasInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_theme_alias::DeleteThemeAliasOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_theme_alias::DeleteThemeAliasError,
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_theme_alias::DeleteThemeAliasError>()
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_theme_alias::DeleteThemeAliasOutput>()
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_theme_alias::DeleteThemeAliasInput,
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", "DeleteThemeAlias", 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 DeleteThemeAlias {
79    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
80        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteThemeAlias");
81
82        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
83            DeleteThemeAliasRequestSerializer,
84        ));
85        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
86            DeleteThemeAliasResponseDeserializer,
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            "DeleteThemeAlias",
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("DeleteThemeAlias")
117            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
118            .with_interceptor(DeleteThemeAliasEndpointParamsInterceptor)
119            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
120                crate::operation::delete_theme_alias::DeleteThemeAliasError,
121            >::new())
122            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
123                crate::operation::delete_theme_alias::DeleteThemeAliasError,
124            >::new())
125            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
126                crate::operation::delete_theme_alias::DeleteThemeAliasError,
127            >::new());
128
129        ::std::borrow::Cow::Owned(rcb)
130    }
131}
132
133#[derive(Debug)]
134struct DeleteThemeAliasResponseDeserializer;
135impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteThemeAliasResponseDeserializer {
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_theme_alias::de_delete_theme_alias_http_error(status, headers, body)
148        } else {
149            crate::protocol_serde::shape_delete_theme_alias::de_delete_theme_alias_http_response(status, headers, body)
150        };
151        crate::protocol_serde::type_erase_result(parse_result)
152    }
153}
154#[derive(Debug)]
155struct DeleteThemeAliasRequestSerializer;
156impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteThemeAliasRequestSerializer {
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_theme_alias::DeleteThemeAliasInput>()
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_theme_alias::DeleteThemeAliasInput,
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.theme_id;
188                let input_2 = input_2
189                    .as_ref()
190                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("theme_id", "cannot be empty or unset"))?;
191                let theme_id = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
192                if theme_id.is_empty() {
193                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
194                        "theme_id",
195                        "cannot be empty or unset",
196                    ));
197                }
198                let input_3 = &_input.alias_name;
199                let input_3 = input_3
200                    .as_ref()
201                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("alias_name", "cannot be empty or unset"))?;
202                let alias_name = ::aws_smithy_http::label::fmt_string(input_3, ::aws_smithy_http::label::EncodingStrategy::Default);
203                if alias_name.is_empty() {
204                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
205                        "alias_name",
206                        "cannot be empty or unset",
207                    ));
208                }
209                ::std::write!(
210                    output,
211                    "/accounts/{AwsAccountId}/themes/{ThemeId}/aliases/{AliasName}",
212                    AwsAccountId = aws_account_id,
213                    ThemeId = theme_id,
214                    AliasName = alias_name
215                )
216                .expect("formatting should succeed");
217                ::std::result::Result::Ok(())
218            }
219            #[allow(clippy::unnecessary_wraps)]
220            fn update_http_builder(
221                input: &crate::operation::delete_theme_alias::DeleteThemeAliasInput,
222                builder: ::http::request::Builder,
223            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
224                let mut uri = ::std::string::String::new();
225                uri_base(input, &mut uri)?;
226                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
227            }
228            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
229            builder
230        };
231        let body = ::aws_smithy_types::body::SdkBody::from("");
232
233        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
234    }
235}
236#[derive(Debug)]
237struct DeleteThemeAliasEndpointParamsInterceptor;
238
239impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteThemeAliasEndpointParamsInterceptor {
240    fn name(&self) -> &'static str {
241        "DeleteThemeAliasEndpointParamsInterceptor"
242    }
243
244    fn read_before_execution(
245        &self,
246        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
247            '_,
248            ::aws_smithy_runtime_api::client::interceptors::context::Input,
249            ::aws_smithy_runtime_api::client::interceptors::context::Output,
250            ::aws_smithy_runtime_api::client::interceptors::context::Error,
251        >,
252        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
253    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
254        let _input = context
255            .input()
256            .downcast_ref::<DeleteThemeAliasInput>()
257            .ok_or("failed to downcast to DeleteThemeAliasInput")?;
258
259        let params = crate::config::endpoint::Params::builder()
260            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
261            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
262            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
263            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
264            .build()
265            .map_err(|err| {
266                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
267            })?;
268        cfg.interceptor_state()
269            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
270        ::std::result::Result::Ok(())
271    }
272}
273
274// The get_* functions below are generated from JMESPath expressions in the
275// operationContextParams trait. They target the operation's input shape.
276
277/// Error type for the `DeleteThemeAliasError` operation.
278#[non_exhaustive]
279#[derive(::std::fmt::Debug)]
280pub enum DeleteThemeAliasError {
281    /// <p>Updating or deleting a resource can cause an inconsistent state.</p>
282    ConflictException(crate::types::error::ConflictException),
283    /// <p>An internal failure occurred.</p>
284    InternalFailureException(crate::types::error::InternalFailureException),
285    /// <p>One or more parameters has a value that isn't valid.</p>
286    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
287    /// <p>One or more resources can't be found.</p>
288    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
289    /// <p>Access is throttled.</p>
290    ThrottlingException(crate::types::error::ThrottlingException),
291    /// <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>
292    UnsupportedUserEditionException(crate::types::error::UnsupportedUserEditionException),
293    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
294    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
295    variable wildcard pattern and check `.code()`:
296     \
297    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
298     \
299    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteThemeAliasError) for what information is available for the error.")]
300    Unhandled(crate::error::sealed_unhandled::Unhandled),
301}
302impl DeleteThemeAliasError {
303    /// Creates the `DeleteThemeAliasError::Unhandled` variant from any error type.
304    pub fn unhandled(
305        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
306    ) -> Self {
307        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
308            source: err.into(),
309            meta: ::std::default::Default::default(),
310        })
311    }
312
313    /// Creates the `DeleteThemeAliasError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
314    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
315        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
316            source: err.clone().into(),
317            meta: err,
318        })
319    }
320    ///
321    /// Returns error metadata, which includes the error code, message,
322    /// request ID, and potentially additional information.
323    ///
324    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
325        match self {
326            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
327            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
328            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
329            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
331            Self::UnsupportedUserEditionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
332            Self::Unhandled(e) => &e.meta,
333        }
334    }
335    /// Returns `true` if the error kind is `DeleteThemeAliasError::ConflictException`.
336    pub fn is_conflict_exception(&self) -> bool {
337        matches!(self, Self::ConflictException(_))
338    }
339    /// Returns `true` if the error kind is `DeleteThemeAliasError::InternalFailureException`.
340    pub fn is_internal_failure_exception(&self) -> bool {
341        matches!(self, Self::InternalFailureException(_))
342    }
343    /// Returns `true` if the error kind is `DeleteThemeAliasError::InvalidParameterValueException`.
344    pub fn is_invalid_parameter_value_exception(&self) -> bool {
345        matches!(self, Self::InvalidParameterValueException(_))
346    }
347    /// Returns `true` if the error kind is `DeleteThemeAliasError::ResourceNotFoundException`.
348    pub fn is_resource_not_found_exception(&self) -> bool {
349        matches!(self, Self::ResourceNotFoundException(_))
350    }
351    /// Returns `true` if the error kind is `DeleteThemeAliasError::ThrottlingException`.
352    pub fn is_throttling_exception(&self) -> bool {
353        matches!(self, Self::ThrottlingException(_))
354    }
355    /// Returns `true` if the error kind is `DeleteThemeAliasError::UnsupportedUserEditionException`.
356    pub fn is_unsupported_user_edition_exception(&self) -> bool {
357        matches!(self, Self::UnsupportedUserEditionException(_))
358    }
359}
360impl ::std::error::Error for DeleteThemeAliasError {
361    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
362        match self {
363            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
364            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
365            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
366            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
367            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
368            Self::UnsupportedUserEditionException(_inner) => ::std::option::Option::Some(_inner),
369            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
370        }
371    }
372}
373impl ::std::fmt::Display for DeleteThemeAliasError {
374    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
375        match self {
376            Self::ConflictException(_inner) => _inner.fmt(f),
377            Self::InternalFailureException(_inner) => _inner.fmt(f),
378            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
379            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
380            Self::ThrottlingException(_inner) => _inner.fmt(f),
381            Self::UnsupportedUserEditionException(_inner) => _inner.fmt(f),
382            Self::Unhandled(_inner) => {
383                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
384                    write!(f, "unhandled error ({code})")
385                } else {
386                    f.write_str("unhandled error")
387                }
388            }
389        }
390    }
391}
392impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteThemeAliasError {
393    fn code(&self) -> ::std::option::Option<&str> {
394        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
395    }
396    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
397        ::std::option::Option::None
398    }
399}
400impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteThemeAliasError {
401    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
402        match self {
403            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
404            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
405            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
406            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
407            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
408            Self::UnsupportedUserEditionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
409            Self::Unhandled(_inner) => &_inner.meta,
410        }
411    }
412}
413impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteThemeAliasError {
414    fn create_unhandled_error(
415        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
416        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
417    ) -> Self {
418        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
419            source,
420            meta: meta.unwrap_or_default(),
421        })
422    }
423}
424impl ::aws_types::request_id::RequestId for crate::operation::delete_theme_alias::DeleteThemeAliasError {
425    fn request_id(&self) -> Option<&str> {
426        self.meta().request_id()
427    }
428}
429
430pub use crate::operation::delete_theme_alias::_delete_theme_alias_output::DeleteThemeAliasOutput;
431
432pub use crate::operation::delete_theme_alias::_delete_theme_alias_input::DeleteThemeAliasInput;
433
434mod _delete_theme_alias_input;
435
436mod _delete_theme_alias_output;
437
438/// Builders
439pub mod builders;