Skip to main content

aws_sdk_codecommit/operation/
disassociate_approval_rule_template_from_repository.rs

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