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                UpdateApprovalRuleTemplateContentTelemetryInputCaptureInterceptor,
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                UpdateApprovalRuleTemplateContentEndpointParamsInterceptor,
143            ))
144            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
145                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
146            >::new())
147            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
148                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
149            >::new())
150            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
151                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
152            >::new())
153            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
154                crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError,
155            >::new());
156
157        ::std::borrow::Cow::Owned(rcb)
158    }
159}
160
161#[derive(Debug)]
162struct UpdateApprovalRuleTemplateContentTelemetryInputCaptureInterceptor;
163
164#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
165impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateApprovalRuleTemplateContentTelemetryInputCaptureInterceptor {
166    fn name(&self) -> &'static str {
167        "UpdateApprovalRuleTemplateContentTelemetryInputCaptureInterceptor"
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::<UpdateApprovalRuleTemplateContentInput>() 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("approvalRuleTemplateName") {
195            if let ::std::option::Option::Some(value) = input.approval_rule_template_name.as_deref() {
196                captured.insert("approvalRuleTemplateName", value);
197            }
198        }
199        if requested.should_capture("newRuleContent") {
200            if let ::std::option::Option::Some(value) = input.new_rule_content.as_deref() {
201                captured.insert("newRuleContent", value);
202            }
203        }
204        if requested.should_capture("existingRuleContentSha256") {
205            if let ::std::option::Option::Some(value) = input.existing_rule_content_sha256.as_deref() {
206                captured.insert("existingRuleContentSha256", value);
207            }
208        }
209
210        cfg.interceptor_state().store_put(captured);
211        ::std::result::Result::Ok(())
212    }
213}
214#[derive(Debug)]
215struct UpdateApprovalRuleTemplateContentResponseDeserializer;
216impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateApprovalRuleTemplateContentResponseDeserializer {
217    fn deserialize_nonstreaming_with_config(
218        &self,
219        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
220        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
221    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
222        let (success, status) = (response.status().is_success(), response.status().as_u16());
223        let headers = response.headers();
224        let body = response.body().bytes().expect("body loaded");
225        #[allow(unused_mut)]
226        let mut force_error = false;
227        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
228        let parse_result = if !success && status != 200 || force_error {
229            crate::protocol_serde::shape_update_approval_rule_template_content::de_update_approval_rule_template_content_http_error(
230                status, headers, body,
231            )
232        } else {
233            crate::protocol_serde::shape_update_approval_rule_template_content::de_update_approval_rule_template_content_http_response(
234                status, headers, body,
235            )
236        };
237        crate::protocol_serde::type_erase_result(parse_result)
238    }
239}
240#[derive(Debug)]
241struct UpdateApprovalRuleTemplateContentRequestSerializer;
242impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateApprovalRuleTemplateContentRequestSerializer {
243    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
244    fn serialize_input(
245        &self,
246        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
247        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
248    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
249        let input = input
250            .downcast::<crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentInput>()
251            .expect("correct type");
252        let _header_serialization_settings = _cfg
253            .load::<crate::serialization_settings::HeaderSerializationSettings>()
254            .cloned()
255            .unwrap_or_default();
256        let mut request_builder = {
257            #[allow(clippy::uninlined_format_args)]
258            fn uri_base(
259                _input: &crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentInput,
260                output: &mut ::std::string::String,
261            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
262                use ::std::fmt::Write as _;
263                ::std::write!(output, "/").expect("formatting should succeed");
264                ::std::result::Result::Ok(())
265            }
266            #[allow(clippy::unnecessary_wraps)]
267            fn update_http_builder(
268                input: &crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentInput,
269                builder: ::http_1x::request::Builder,
270            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
271                let mut uri = ::std::string::String::new();
272                uri_base(input, &mut uri)?;
273                ::std::result::Result::Ok(builder.method("POST").uri(uri))
274            }
275            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
276            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
277            builder = _header_serialization_settings.set_default_header(
278                builder,
279                ::http_1x::header::HeaderName::from_static("x-amz-target"),
280                "CodeCommit_20150413.UpdateApprovalRuleTemplateContent",
281            );
282            builder
283        };
284        let body = ::aws_smithy_types::body::SdkBody::from(
285            crate::protocol_serde::shape_update_approval_rule_template_content::ser_update_approval_rule_template_content_input(&input)?,
286        );
287        if let Some(content_length) = body.content_length() {
288            let content_length = content_length.to_string();
289            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
290        }
291        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
292    }
293}
294#[derive(Debug)]
295struct UpdateApprovalRuleTemplateContentEndpointParamsInterceptor;
296
297#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
298impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateApprovalRuleTemplateContentEndpointParamsInterceptor {
299    fn name(&self) -> &'static str {
300        "UpdateApprovalRuleTemplateContentEndpointParamsInterceptor"
301    }
302
303    fn read_before_execution(
304        &self,
305        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
306            '_,
307            ::aws_smithy_runtime_api::client::interceptors::context::Input,
308            ::aws_smithy_runtime_api::client::interceptors::context::Output,
309            ::aws_smithy_runtime_api::client::interceptors::context::Error,
310        >,
311        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
312    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
313        let _input = context
314            .input()
315            .downcast_ref::<UpdateApprovalRuleTemplateContentInput>()
316            .ok_or("failed to downcast to UpdateApprovalRuleTemplateContentInput")?;
317
318        let params = crate::config::endpoint::Params::builder()
319            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
320            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
321            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
322            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
323            .build()
324            .map_err(|err| {
325                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
326            })?;
327        cfg.interceptor_state()
328            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
329        ::std::result::Result::Ok(())
330    }
331}
332
333// The get_* functions below are generated from JMESPath expressions in the
334// operationContextParams trait. They target the operation's input shape.
335
336/// Error type for the `UpdateApprovalRuleTemplateContentError` operation.
337#[non_exhaustive]
338#[derive(::std::fmt::Debug)]
339pub enum UpdateApprovalRuleTemplateContentError {
340    /// <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>
341    ApprovalRuleTemplateContentRequiredException(crate::types::error::ApprovalRuleTemplateContentRequiredException),
342    /// <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>
343    ApprovalRuleTemplateDoesNotExistException(crate::types::error::ApprovalRuleTemplateDoesNotExistException),
344    /// <p>An approval rule template name is required, but was not specified.</p>
345    ApprovalRuleTemplateNameRequiredException(crate::types::error::ApprovalRuleTemplateNameRequiredException),
346    /// <p>The content of the approval rule template is not valid.</p>
347    InvalidApprovalRuleTemplateContentException(crate::types::error::InvalidApprovalRuleTemplateContentException),
348    /// <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>
349    InvalidApprovalRuleTemplateNameException(crate::types::error::InvalidApprovalRuleTemplateNameException),
350    /// <p>The SHA-256 hash signature for the rule content is not valid.</p>
351    InvalidRuleContentSha256Exception(crate::types::error::InvalidRuleContentSha256Exception),
352    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
353    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
354    variable wildcard pattern and check `.code()`:
355     \
356    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
357     \
358    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateApprovalRuleTemplateContentError) for what information is available for the error.")]
359    Unhandled(crate::error::sealed_unhandled::Unhandled),
360}
361impl UpdateApprovalRuleTemplateContentError {
362    /// Creates the `UpdateApprovalRuleTemplateContentError::Unhandled` variant from any error type.
363    pub fn unhandled(
364        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
365    ) -> Self {
366        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
367            source: err.into(),
368            meta: ::std::default::Default::default(),
369        })
370    }
371
372    /// Creates the `UpdateApprovalRuleTemplateContentError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
373    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
374        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
375            source: err.clone().into(),
376            meta: err,
377        })
378    }
379    ///
380    /// Returns error metadata, which includes the error code, message,
381    /// request ID, and potentially additional information.
382    ///
383    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
384        match self {
385            Self::ApprovalRuleTemplateContentRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
386            Self::ApprovalRuleTemplateDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
387            Self::ApprovalRuleTemplateNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
388            Self::InvalidApprovalRuleTemplateContentException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
389            Self::InvalidApprovalRuleTemplateNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
390            Self::InvalidRuleContentSha256Exception(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
391            Self::Unhandled(e) => &e.meta,
392        }
393    }
394    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateContentRequiredException`.
395    pub fn is_approval_rule_template_content_required_exception(&self) -> bool {
396        matches!(self, Self::ApprovalRuleTemplateContentRequiredException(_))
397    }
398    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateDoesNotExistException`.
399    pub fn is_approval_rule_template_does_not_exist_exception(&self) -> bool {
400        matches!(self, Self::ApprovalRuleTemplateDoesNotExistException(_))
401    }
402    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::ApprovalRuleTemplateNameRequiredException`.
403    pub fn is_approval_rule_template_name_required_exception(&self) -> bool {
404        matches!(self, Self::ApprovalRuleTemplateNameRequiredException(_))
405    }
406    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateContentException`.
407    pub fn is_invalid_approval_rule_template_content_exception(&self) -> bool {
408        matches!(self, Self::InvalidApprovalRuleTemplateContentException(_))
409    }
410    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::InvalidApprovalRuleTemplateNameException`.
411    pub fn is_invalid_approval_rule_template_name_exception(&self) -> bool {
412        matches!(self, Self::InvalidApprovalRuleTemplateNameException(_))
413    }
414    /// Returns `true` if the error kind is `UpdateApprovalRuleTemplateContentError::InvalidRuleContentSha256Exception`.
415    pub fn is_invalid_rule_content_sha256_exception(&self) -> bool {
416        matches!(self, Self::InvalidRuleContentSha256Exception(_))
417    }
418}
419impl ::std::error::Error for UpdateApprovalRuleTemplateContentError {
420    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
421        match self {
422            Self::ApprovalRuleTemplateContentRequiredException(_inner) => ::std::option::Option::Some(_inner),
423            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
424            Self::ApprovalRuleTemplateNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
425            Self::InvalidApprovalRuleTemplateContentException(_inner) => ::std::option::Option::Some(_inner),
426            Self::InvalidApprovalRuleTemplateNameException(_inner) => ::std::option::Option::Some(_inner),
427            Self::InvalidRuleContentSha256Exception(_inner) => ::std::option::Option::Some(_inner),
428            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
429        }
430    }
431}
432impl ::std::fmt::Display for UpdateApprovalRuleTemplateContentError {
433    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
434        match self {
435            Self::ApprovalRuleTemplateContentRequiredException(_inner) => _inner.fmt(f),
436            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => _inner.fmt(f),
437            Self::ApprovalRuleTemplateNameRequiredException(_inner) => _inner.fmt(f),
438            Self::InvalidApprovalRuleTemplateContentException(_inner) => _inner.fmt(f),
439            Self::InvalidApprovalRuleTemplateNameException(_inner) => _inner.fmt(f),
440            Self::InvalidRuleContentSha256Exception(_inner) => _inner.fmt(f),
441            Self::Unhandled(_inner) => {
442                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
443                    write!(f, "unhandled error ({code})")
444                } else {
445                    f.write_str("unhandled error")
446                }
447            }
448        }
449    }
450}
451impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateApprovalRuleTemplateContentError {
452    fn code(&self) -> ::std::option::Option<&str> {
453        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
454    }
455    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
456        ::std::option::Option::None
457    }
458}
459impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateApprovalRuleTemplateContentError {
460    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
461        match self {
462            Self::ApprovalRuleTemplateContentRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
463            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
464            Self::ApprovalRuleTemplateNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
465            Self::InvalidApprovalRuleTemplateContentException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
466            Self::InvalidApprovalRuleTemplateNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
467            Self::InvalidRuleContentSha256Exception(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
468            Self::Unhandled(_inner) => &_inner.meta,
469        }
470    }
471}
472impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateApprovalRuleTemplateContentError {
473    fn create_unhandled_error(
474        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
475        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
476    ) -> Self {
477        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
478            source,
479            meta: meta.unwrap_or_default(),
480        })
481    }
482}
483impl ::aws_types::request_id::RequestId for crate::operation::update_approval_rule_template_content::UpdateApprovalRuleTemplateContentError {
484    fn request_id(&self) -> Option<&str> {
485        self.meta().request_id()
486    }
487}
488
489pub use crate::operation::update_approval_rule_template_content::_update_approval_rule_template_content_input::UpdateApprovalRuleTemplateContentInput;
490
491pub use crate::operation::update_approval_rule_template_content::_update_approval_rule_template_content_output::UpdateApprovalRuleTemplateContentOutput;
492
493mod _update_approval_rule_template_content_input;
494
495mod _update_approval_rule_template_content_output;
496
497/// Builders
498pub mod builders;