Skip to main content

aws_sdk_codecommit/operation/
update_approval_rule_template_name.rs

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