Skip to main content

aws_sdk_codecommit/operation/
update_approval_rule_template_content.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `UpdateApprovalRuleTemplateContent`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct UpdateApprovalRuleTemplateContent;
6impl UpdateApprovalRuleTemplateContent {
7    /// Creates a new `UpdateApprovalRuleTemplateContent`
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_content::UpdateApprovalRuleTemplateContentInput,
14    ) -> ::std::result::Result<
15        crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
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_content::UpdateApprovalRuleTemplateContentError>()
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_content::UpdateApprovalRuleTemplateContentOutput>()
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_content::UpdateApprovalRuleTemplateContentInput,
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            "UpdateApprovalRuleTemplateContent",
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.UpdateApprovalRuleTemplateContent",
65            "rpc.service" = "CodeCommit",
66            "rpc.method" = "UpdateApprovalRuleTemplateContent",
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 UpdateApprovalRuleTemplateContent {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("UpdateApprovalRuleTemplateContent");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            UpdateApprovalRuleTemplateContentRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            UpdateApprovalRuleTemplateContentResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("UpdateApprovalRuleTemplateContent")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "UpdateApprovalRuleTemplateContent",
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("UpdateApprovalRuleTemplateContent")
135            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
136                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
137            ))
138            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
139                UpdateApprovalRuleTemplateContentEndpointParamsInterceptor,
140            ))
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
142                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
143            >::new())
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
145                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
146            >::new())
147            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
148                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
149            >::new());
150
151        ::std::borrow::Cow::Owned(rcb)
152    }
153}
154
155#[derive(Debug)]
156struct UpdateApprovalRuleTemplateContentResponseDeserializer;
157impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateApprovalRuleTemplateContentResponseDeserializer {
158    fn deserialize_nonstreaming(
159        &self,
160        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
161    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
162        let (success, status) = (response.status().is_success(), response.status().as_u16());
163        let headers = response.headers();
164        let body = response.body().bytes().expect("body loaded");
165        #[allow(unused_mut)]
166        let mut force_error = false;
167        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
168        let parse_result = if !success && status != 200 || force_error {
169            crate::protocol_serde::shape_update_approval_rule_template_content::de_update_approval_rule_template_content_http_error(
170                status, headers, body,
171            )
172        } else {
173            crate::protocol_serde::shape_update_approval_rule_template_content::de_update_approval_rule_template_content_http_response(
174                status, headers, body,
175            )
176        };
177        crate::protocol_serde::type_erase_result(parse_result)
178    }
179}
180#[derive(Debug)]
181struct UpdateApprovalRuleTemplateContentRequestSerializer;
182impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateApprovalRuleTemplateContentRequestSerializer {
183    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
184    fn serialize_input(
185        &self,
186        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
187        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
188    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
189        let input = input
190            .downcast::<crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentInput>()
191            .expect("correct type");
192        let _header_serialization_settings = _cfg
193            .load::<crate::serialization_settings::HeaderSerializationSettings>()
194            .cloned()
195            .unwrap_or_default();
196        let mut request_builder = {
197            #[allow(clippy::uninlined_format_args)]
198            fn uri_base(
199                _input: &crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentInput,
200                output: &mut ::std::string::String,
201            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
202                use ::std::fmt::Write as _;
203                ::std::write!(output, "/").expect("formatting should succeed");
204                ::std::result::Result::Ok(())
205            }
206            #[allow(clippy::unnecessary_wraps)]
207            fn update_http_builder(
208                input: &crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentInput,
209                builder: ::http_1x::request::Builder,
210            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
211                let mut uri = ::std::string::String::new();
212                uri_base(input, &mut uri)?;
213                ::std::result::Result::Ok(builder.method("POST").uri(uri))
214            }
215            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
216            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
217            builder = _header_serialization_settings.set_default_header(
218                builder,
219                ::http_1x::header::HeaderName::from_static("x-amz-target"),
220                "CodeCommit_20150413.UpdateApprovalRuleTemplateContent",
221            );
222            builder
223        };
224        let body = ::aws_smithy_types::body::SdkBody::from(
225            crate::protocol_serde::shape_update_approval_rule_template_content::ser_update_approval_rule_template_content_input(&input)?,
226        );
227        if let Some(content_length) = body.content_length() {
228            let content_length = content_length.to_string();
229            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
230        }
231        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
232    }
233}
234#[derive(Debug)]
235struct UpdateApprovalRuleTemplateContentEndpointParamsInterceptor;
236
237#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
238impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateApprovalRuleTemplateContentEndpointParamsInterceptor {
239    fn name(&self) -> &'static str {
240        "UpdateApprovalRuleTemplateContentEndpointParamsInterceptor"
241    }
242
243    fn read_before_execution(
244        &self,
245        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
246            '_,
247            ::aws_smithy_runtime_api::client::interceptors::context::Input,
248            ::aws_smithy_runtime_api::client::interceptors::context::Output,
249            ::aws_smithy_runtime_api::client::interceptors::context::Error,
250        >,
251        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
252    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
253        let _input = context
254            .input()
255            .downcast_ref::<UpdateApprovalRuleTemplateContentInput>()
256            .ok_or("failed to downcast to UpdateApprovalRuleTemplateContentInput")?;
257
258        let params = crate::config::endpoint::Params::builder()
259            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
260            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
261            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
262            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
263            .build()
264            .map_err(|err| {
265                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
266            })?;
267        cfg.interceptor_state()
268            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
269        ::std::result::Result::Ok(())
270    }
271}
272
273// The get_* functions below are generated from JMESPath expressions in the
274// operationContextParams trait. They target the operation's input shape.
275
276/// Error type for the `UpdateApprovalRuleTemplateContentError` operation.
277#[non_exhaustive]
278#[derive(::std::fmt::Debug)]
279pub enum UpdateApprovalRuleTemplateContentError {
280    /// <p>The content for the approval rule template is empty. You must provide some content for an approval rule template. The content cannot be null.</p>
281    ApprovalRuleTemplateContentRequiredException(crate::types::error::ApprovalRuleTemplateContentRequiredException),
282    /// <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>
283    ApprovalRuleTemplateDoesNotExistException(crate::types::error::ApprovalRuleTemplateDoesNotExistException),
284    /// <p>An approval rule template name is required, but was not specified.</p>
285    ApprovalRuleTemplateNameRequiredException(crate::types::error::ApprovalRuleTemplateNameRequiredException),
286    /// <p>The content of the approval rule template is not valid.</p>
287    InvalidApprovalRuleTemplateContentException(crate::types::error::InvalidApprovalRuleTemplateContentException),
288    /// <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>
289    InvalidApprovalRuleTemplateNameException(crate::types::error::InvalidApprovalRuleTemplateNameException),
290    /// <p>The SHA-256 hash signature for the rule content is not valid.</p>
291    InvalidRuleContentSha256Exception(crate::types::error::InvalidRuleContentSha256Exception),
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-UpdateApprovalRuleTemplateContentError) for what information is available for the error.")]
299    Unhandled(crate::error::sealed_unhandled::Unhandled),
300}
301impl UpdateApprovalRuleTemplateContentError {
302    /// Creates the `UpdateApprovalRuleTemplateContentError::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 `UpdateApprovalRuleTemplateContentError::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::ApprovalRuleTemplateContentRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
326            Self::ApprovalRuleTemplateDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
327            Self::ApprovalRuleTemplateNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
328            Self::InvalidApprovalRuleTemplateContentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
329            Self::InvalidApprovalRuleTemplateNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::InvalidRuleContentSha256Exception(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
331            Self::Unhandled(e) => &e.meta,
332        }
333    }
334    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateContentRequiredException`.
335    pub fn is_approval_rule_template_content_required_exception(&self) -> bool {
336        matches!(self, Self::ApprovalRuleTemplateContentRequiredException(_))
337    }
338    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateDoesNotExistException`.
339    pub fn is_approval_rule_template_does_not_exist_exception(&self) -> bool {
340        matches!(self, Self::ApprovalRuleTemplateDoesNotExistException(_))
341    }
342    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateNameRequiredException`.
343    pub fn is_approval_rule_template_name_required_exception(&self) -> bool {
344        matches!(self, Self::ApprovalRuleTemplateNameRequiredException(_))
345    }
346    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateContentException`.
347    pub fn is_invalid_approval_rule_template_content_exception(&self) -> bool {
348        matches!(self, Self::InvalidApprovalRuleTemplateContentException(_))
349    }
350    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateNameException`.
351    pub fn is_invalid_approval_rule_template_name_exception(&self) -> bool {
352        matches!(self, Self::InvalidApprovalRuleTemplateNameException(_))
353    }
354    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::InvalidRuleContentSha256Exception`.
355    pub fn is_invalid_rule_content_sha256_exception(&self) -> bool {
356        matches!(self, Self::InvalidRuleContentSha256Exception(_))
357    }
358}
359impl ::std::error::Error for UpdateApprovalRuleTemplateContentError {
360    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
361        match self {
362            Self::ApprovalRuleTemplateContentRequiredException(_inner) => ::std::option::Option::Some(_inner),
363            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
364            Self::ApprovalRuleTemplateNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
365            Self::InvalidApprovalRuleTemplateContentException(_inner) => ::std::option::Option::Some(_inner),
366            Self::InvalidApprovalRuleTemplateNameException(_inner) => ::std::option::Option::Some(_inner),
367            Self::InvalidRuleContentSha256Exception(_inner) => ::std::option::Option::Some(_inner),
368            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
369        }
370    }
371}
372impl ::std::fmt::Display for UpdateApprovalRuleTemplateContentError {
373    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
374        match self {
375            Self::ApprovalRuleTemplateContentRequiredException(_inner) => _inner.fmt(f),
376            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => _inner.fmt(f),
377            Self::ApprovalRuleTemplateNameRequiredException(_inner) => _inner.fmt(f),
378            Self::InvalidApprovalRuleTemplateContentException(_inner) => _inner.fmt(f),
379            Self::InvalidApprovalRuleTemplateNameException(_inner) => _inner.fmt(f),
380            Self::InvalidRuleContentSha256Exception(_inner) => _inner.fmt(f),
381            Self::Unhandled(_inner) => {
382                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
383                    write!(f, "unhandled error ({code})")
384                } else {
385                    f.write_str("unhandled error")
386                }
387            }
388        }
389    }
390}
391impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateApprovalRuleTemplateContentError {
392    fn code(&self) -> ::std::option::Option<&str> {
393        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
394    }
395    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
396        ::std::option::Option::None
397    }
398}
399impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateApprovalRuleTemplateContentError {
400    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
401        match self {
402            Self::ApprovalRuleTemplateContentRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
403            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
404            Self::ApprovalRuleTemplateNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
405            Self::InvalidApprovalRuleTemplateContentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
406            Self::InvalidApprovalRuleTemplateNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
407            Self::InvalidRuleContentSha256Exception(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
408            Self::Unhandled(_inner) => &_inner.meta,
409        }
410    }
411}
412impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateApprovalRuleTemplateContentError {
413    fn create_unhandled_error(
414        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
415        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
416    ) -> Self {
417        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
418            source,
419            meta: meta.unwrap_or_default(),
420        })
421    }
422}
423impl ::aws_types::request_id::RequestId for crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError {
424    fn request_id(&self) -> Option<&str> {
425        self.meta().request_id()
426    }
427}
428
429pub use crate::operation::update_approval_rule_template_content::_update_approval_rule_template_content_input::UpdateApprovalRuleTemplateContentInput;
430
431pub use crate::operation::update_approval_rule_template_content::_update_approval_rule_template_content_output::UpdateApprovalRuleTemplateContentOutput;
432
433mod _update_approval_rule_template_content_input;
434
435mod _update_approval_rule_template_content_output;
436
437/// Builders
438pub mod builders;