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