aws_sdk_quicksight/operation/
create_template_alias.rs

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