aws_sdk_quicksight/operation/
delete_template_alias.rs

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