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                    DisassociateApprovalRuleTemplateFromRepositoryTelemetryInputCaptureInterceptor,
133                ))
134                .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
135                    ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
136                ))
137                .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
138                    DisassociateApprovalRuleTemplateFromRepositoryEndpointParamsInterceptor,
139                ))
140                .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
141                    crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryError,
142                >::new())
143                .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
144                    crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryError,
145                >::new())
146                .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
147                    crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryError,
148                >::new())
149                .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
150                    crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryError,
151                >::new());
152
153        ::std::borrow::Cow::Owned(rcb)
154    }
155}
156
157#[derive(Debug)]
158struct DisassociateApprovalRuleTemplateFromRepositoryTelemetryInputCaptureInterceptor;
159
160#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
161impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DisassociateApprovalRuleTemplateFromRepositoryTelemetryInputCaptureInterceptor {
162    fn name(&self) -> &'static str {
163        "DisassociateApprovalRuleTemplateFromRepositoryTelemetryInputCaptureInterceptor"
164    }
165
166    fn read_before_execution(
167        &self,
168        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
169            '_,
170            ::aws_smithy_runtime_api::client::interceptors::context::Input,
171            ::aws_smithy_runtime_api::client::interceptors::context::Output,
172            ::aws_smithy_runtime_api::client::interceptors::context::Error,
173        >,
174        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
175    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
176        // Nothing to do unless the customer opted in by naming members to record.
177        let ::std::option::Option::Some(requested) = cfg
178            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
179            .filter(|r| !r.is_empty())
180        else {
181            return ::std::result::Result::Ok(());
182        };
183
184        let ::std::option::Option::Some(input) = context.input().downcast_ref::<DisassociateApprovalRuleTemplateFromRepositoryInput>() else {
185            // A mismatched input is not this interceptor's concern; skip quietly.
186            return ::std::result::Result::Ok(());
187        };
188
189        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
190        if requested.should_capture("approvalRuleTemplateName") {
191            if let ::std::option::Option::Some(value) = input.approval_rule_template_name.as_deref() {
192                captured.insert("approvalRuleTemplateName", value);
193            }
194        }
195        if requested.should_capture("repositoryName") {
196            if let ::std::option::Option::Some(value) = input.repository_name.as_deref() {
197                captured.insert("repositoryName", value);
198            }
199        }
200
201        cfg.interceptor_state().store_put(captured);
202        ::std::result::Result::Ok(())
203    }
204}
205#[derive(Debug)]
206struct DisassociateApprovalRuleTemplateFromRepositoryResponseDeserializer;
207impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DisassociateApprovalRuleTemplateFromRepositoryResponseDeserializer {
208    fn deserialize_nonstreaming_with_config(
209        &self,
210        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
211        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
212    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
213        let (success, status) = (response.status().is_success(), response.status().as_u16());
214        let headers = response.headers();
215        let body = response.body().bytes().expect("body loaded");
216        #[allow(unused_mut)]
217        let mut force_error = false;
218        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
219        let parse_result = if !success && status != 200 || force_error {
220            crate::protocol_serde::shape_disassociate_approval_rule_template_from_repository::de_disassociate_approval_rule_template_from_repository_http_error(status, headers, body)
221        } else {
222            crate::protocol_serde::shape_disassociate_approval_rule_template_from_repository::de_disassociate_approval_rule_template_from_repository_http_response(status, headers, body)
223        };
224        crate::protocol_serde::type_erase_result(parse_result)
225    }
226}
227#[derive(Debug)]
228struct DisassociateApprovalRuleTemplateFromRepositoryRequestSerializer;
229impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DisassociateApprovalRuleTemplateFromRepositoryRequestSerializer {
230    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
231    fn serialize_input(
232        &self,
233        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
234        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
235    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
236        let input = input
237            .downcast::<crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryInput>()
238            .expect("correct type");
239        let _header_serialization_settings = _cfg
240            .load::<crate::serialization_settings::HeaderSerializationSettings>()
241            .cloned()
242            .unwrap_or_default();
243        let mut request_builder = {
244            #[allow(clippy::uninlined_format_args)]
245            fn uri_base(
246                _input: &crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryInput,
247                output: &mut ::std::string::String,
248            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
249                use ::std::fmt::Write as _;
250                ::std::write!(output, "/").expect("formatting should succeed");
251                ::std::result::Result::Ok(())
252            }
253            #[allow(clippy::unnecessary_wraps)]
254            fn update_http_builder(
255                input: &crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryInput,
256                builder: ::http_1x::request::Builder,
257            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
258                let mut uri = ::std::string::String::new();
259                uri_base(input, &mut uri)?;
260                ::std::result::Result::Ok(builder.method("POST").uri(uri))
261            }
262            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
263            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-amz-json-1.1");
264            builder = _header_serialization_settings.set_default_header(
265                builder,
266                ::http_1x::header::HeaderName::from_static("x-amz-target"),
267                "CodeCommit_20150413.DisassociateApprovalRuleTemplateFromRepository",
268            );
269            builder
270        };
271        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)?);
272        if let Some(content_length) = body.content_length() {
273            let content_length = content_length.to_string();
274            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
275        }
276        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
277    }
278}
279#[derive(Debug)]
280struct DisassociateApprovalRuleTemplateFromRepositoryEndpointParamsInterceptor;
281
282#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
283impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DisassociateApprovalRuleTemplateFromRepositoryEndpointParamsInterceptor {
284    fn name(&self) -> &'static str {
285        "DisassociateApprovalRuleTemplateFromRepositoryEndpointParamsInterceptor"
286    }
287
288    fn read_before_execution(
289        &self,
290        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
291            '_,
292            ::aws_smithy_runtime_api::client::interceptors::context::Input,
293            ::aws_smithy_runtime_api::client::interceptors::context::Output,
294            ::aws_smithy_runtime_api::client::interceptors::context::Error,
295        >,
296        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
297    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
298        let _input = context
299            .input()
300            .downcast_ref::<DisassociateApprovalRuleTemplateFromRepositoryInput>()
301            .ok_or("failed to downcast to DisassociateApprovalRuleTemplateFromRepositoryInput")?;
302
303        let params = crate::config::endpoint::Params::builder()
304            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
305            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
306            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
307            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
308            .build()
309            .map_err(|err| {
310                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
311            })?;
312        cfg.interceptor_state()
313            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
314        ::std::result::Result::Ok(())
315    }
316}
317
318// The get_* functions below are generated from JMESPath expressions in the
319// operationContextParams trait. They target the operation's input shape.
320
321/// Error type for the `DisassociateApprovalRuleTemplateFromRepositoryError` operation.
322#[non_exhaustive]
323#[derive(::std::fmt::Debug)]
324pub enum DisassociateApprovalRuleTemplateFromRepositoryError {
325    /// <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>
326    ApprovalRuleTemplateDoesNotExistException(crate::types::error::ApprovalRuleTemplateDoesNotExistException),
327    /// <p>An approval rule template name is required, but was not specified.</p>
328    ApprovalRuleTemplateNameRequiredException(crate::types::error::ApprovalRuleTemplateNameRequiredException),
329    /// <p>An encryption integrity check failed.</p>
330    EncryptionIntegrityChecksFailedException(crate::types::error::EncryptionIntegrityChecksFailedException),
331    /// <p>An encryption key could not be accessed.</p>
332    EncryptionKeyAccessDeniedException(crate::types::error::EncryptionKeyAccessDeniedException),
333    /// <p>The encryption key is disabled.</p>
334    EncryptionKeyDisabledException(crate::types::error::EncryptionKeyDisabledException),
335    /// <p>No encryption key was found.</p>
336    EncryptionKeyNotFoundException(crate::types::error::EncryptionKeyNotFoundException),
337    /// <p>The encryption key is not available.</p>
338    EncryptionKeyUnavailableException(crate::types::error::EncryptionKeyUnavailableException),
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    /// <p>A specified repository name is not valid.</p><note>
342    /// <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>
343    /// </note>
344    InvalidRepositoryNameException(crate::types::error::InvalidRepositoryNameException),
345    /// <p>The specified repository does not exist.</p>
346    RepositoryDoesNotExistException(crate::types::error::RepositoryDoesNotExistException),
347    /// <p>A repository name is required, but was not specified.</p>
348    RepositoryNameRequiredException(crate::types::error::RepositoryNameRequiredException),
349    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
350    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
351    variable wildcard pattern and check `.code()`:
352     \
353    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
354     \
355    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DisassociateApprovalRuleTemplateFromRepositoryError) for what information is available for the error.")]
356    Unhandled(crate::error::sealed_unhandled::Unhandled),
357}
358impl DisassociateApprovalRuleTemplateFromRepositoryError {
359    /// Creates the `DisassociateApprovalRuleTemplateFromRepositoryError::Unhandled` variant from any error type.
360    pub fn unhandled(
361        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
362    ) -> Self {
363        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
364            source: err.into(),
365            meta: ::std::default::Default::default(),
366        })
367    }
368
369    /// Creates the `DisassociateApprovalRuleTemplateFromRepositoryError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
370    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
371        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
372            source: err.clone().into(),
373            meta: err,
374        })
375    }
376    ///
377    /// Returns error metadata, which includes the error code, message,
378    /// request ID, and potentially additional information.
379    ///
380    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
381        match self {
382            Self::ApprovalRuleTemplateDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
383            Self::ApprovalRuleTemplateNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
384            Self::EncryptionIntegrityChecksFailedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
385            Self::EncryptionKeyAccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
386            Self::EncryptionKeyDisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
387            Self::EncryptionKeyNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
388            Self::EncryptionKeyUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
389            Self::InvalidApprovalRuleTemplateNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
390            Self::InvalidRepositoryNameException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
391            Self::RepositoryDoesNotExistException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
392            Self::RepositoryNameRequiredException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
393            Self::Unhandled(e) => &e.meta,
394        }
395    }
396    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::ApprovalRuleTemplateDoesNotExistException`.
397    pub fn is_approval_rule_template_does_not_exist_exception(&self) -> bool {
398        matches!(self, Self::ApprovalRuleTemplateDoesNotExistException(_))
399    }
400    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::ApprovalRuleTemplateNameRequiredException`.
401    pub fn is_approval_rule_template_name_required_exception(&self) -> bool {
402        matches!(self, Self::ApprovalRuleTemplateNameRequiredException(_))
403    }
404    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionIntegrityChecksFailedException`.
405    pub fn is_encryption_integrity_checks_failed_exception(&self) -> bool {
406        matches!(self, Self::EncryptionIntegrityChecksFailedException(_))
407    }
408    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyAccessDeniedException`.
409    pub fn is_encryption_key_access_denied_exception(&self) -> bool {
410        matches!(self, Self::EncryptionKeyAccessDeniedException(_))
411    }
412    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyDisabledException`.
413    pub fn is_encryption_key_disabled_exception(&self) -> bool {
414        matches!(self, Self::EncryptionKeyDisabledException(_))
415    }
416    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyNotFoundException`.
417    pub fn is_encryption_key_not_found_exception(&self) -> bool {
418        matches!(self, Self::EncryptionKeyNotFoundException(_))
419    }
420    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::EncryptionKeyUnavailableException`.
421    pub fn is_encryption_key_unavailable_exception(&self) -> bool {
422        matches!(self, Self::EncryptionKeyUnavailableException(_))
423    }
424    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::InvalidApprovalRuleTemplateNameException`.
425    pub fn is_invalid_approval_rule_template_name_exception(&self) -> bool {
426        matches!(self, Self::InvalidApprovalRuleTemplateNameException(_))
427    }
428    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::InvalidRepositoryNameException`.
429    pub fn is_invalid_repository_name_exception(&self) -> bool {
430        matches!(self, Self::InvalidRepositoryNameException(_))
431    }
432    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::RepositoryDoesNotExistException`.
433    pub fn is_repository_does_not_exist_exception(&self) -> bool {
434        matches!(self, Self::RepositoryDoesNotExistException(_))
435    }
436    /// Returns `true` if the error kind is `DisassociateApprovalRuleTemplateFromRepositoryError::RepositoryNameRequiredException`.
437    pub fn is_repository_name_required_exception(&self) -> bool {
438        matches!(self, Self::RepositoryNameRequiredException(_))
439    }
440}
441impl ::std::error::Error for DisassociateApprovalRuleTemplateFromRepositoryError {
442    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
443        match self {
444            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
445            Self::ApprovalRuleTemplateNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
446            Self::EncryptionIntegrityChecksFailedException(_inner) => ::std::option::Option::Some(_inner),
447            Self::EncryptionKeyAccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
448            Self::EncryptionKeyDisabledException(_inner) => ::std::option::Option::Some(_inner),
449            Self::EncryptionKeyNotFoundException(_inner) => ::std::option::Option::Some(_inner),
450            Self::EncryptionKeyUnavailableException(_inner) => ::std::option::Option::Some(_inner),
451            Self::InvalidApprovalRuleTemplateNameException(_inner) => ::std::option::Option::Some(_inner),
452            Self::InvalidRepositoryNameException(_inner) => ::std::option::Option::Some(_inner),
453            Self::RepositoryDoesNotExistException(_inner) => ::std::option::Option::Some(_inner),
454            Self::RepositoryNameRequiredException(_inner) => ::std::option::Option::Some(_inner),
455            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
456        }
457    }
458}
459impl ::std::fmt::Display for DisassociateApprovalRuleTemplateFromRepositoryError {
460    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
461        match self {
462            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => _inner.fmt(f),
463            Self::ApprovalRuleTemplateNameRequiredException(_inner) => _inner.fmt(f),
464            Self::EncryptionIntegrityChecksFailedException(_inner) => _inner.fmt(f),
465            Self::EncryptionKeyAccessDeniedException(_inner) => _inner.fmt(f),
466            Self::EncryptionKeyDisabledException(_inner) => _inner.fmt(f),
467            Self::EncryptionKeyNotFoundException(_inner) => _inner.fmt(f),
468            Self::EncryptionKeyUnavailableException(_inner) => _inner.fmt(f),
469            Self::InvalidApprovalRuleTemplateNameException(_inner) => _inner.fmt(f),
470            Self::InvalidRepositoryNameException(_inner) => _inner.fmt(f),
471            Self::RepositoryDoesNotExistException(_inner) => _inner.fmt(f),
472            Self::RepositoryNameRequiredException(_inner) => _inner.fmt(f),
473            Self::Unhandled(_inner) => {
474                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
475                    write!(f, "unhandled error ({code})")
476                } else {
477                    f.write_str("unhandled error")
478                }
479            }
480        }
481    }
482}
483impl ::aws_smithy_types::retry::ProvideErrorKind for DisassociateApprovalRuleTemplateFromRepositoryError {
484    fn code(&self) -> ::std::option::Option<&str> {
485        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
486    }
487    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
488        ::std::option::Option::None
489    }
490}
491impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DisassociateApprovalRuleTemplateFromRepositoryError {
492    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
493        match self {
494            Self::ApprovalRuleTemplateDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
495            Self::ApprovalRuleTemplateNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
496            Self::EncryptionIntegrityChecksFailedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
497            Self::EncryptionKeyAccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
498            Self::EncryptionKeyDisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
499            Self::EncryptionKeyNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
500            Self::EncryptionKeyUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
501            Self::InvalidApprovalRuleTemplateNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
502            Self::InvalidRepositoryNameException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
503            Self::RepositoryDoesNotExistException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
504            Self::RepositoryNameRequiredException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
505            Self::Unhandled(_inner) => &_inner.meta,
506        }
507    }
508}
509impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DisassociateApprovalRuleTemplateFromRepositoryError {
510    fn create_unhandled_error(
511        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
512        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
513    ) -> Self {
514        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
515            source,
516            meta: meta.unwrap_or_default(),
517        })
518    }
519}
520impl ::aws_types::request_id::RequestId
521    for crate::operation::disassociate_approval_rule_template_from_repository::DisassociateApprovalRuleTemplateFromRepositoryError
522{
523    fn request_id(&self) -> Option<&str> {
524        self.meta().request_id()
525    }
526}
527
528pub use crate::operation::disassociate_approval_rule_template_from_repository::_disassociate_approval_rule_template_from_repository_input::DisassociateApprovalRuleTemplateFromRepositoryInput;
529
530pub use crate::operation::disassociate_approval_rule_template_from_repository::_disassociate_approval_rule_template_from_repository_output::DisassociateApprovalRuleTemplateFromRepositoryOutput;
531
532mod _disassociate_approval_rule_template_from_repository_input;
533
534mod _disassociate_approval_rule_template_from_repository_output;
535
536/// Builders
537pub mod builders;