Skip to main content

aws_sdk_codecatalyst/operation/
delete_source_repository.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `DeleteSourceRepository`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct DeleteSourceRepository;
6impl DeleteSourceRepository {
7    /// Creates a new `DeleteSourceRepository`
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::delete_source_repository::DeleteSourceRepositoryInput,
14    ) -> ::std::result::Result<
15        crate::operation::delete_source_repository::DeleteSourceRepositoryOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::delete_source_repository::DeleteSourceRepositoryError,
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::delete_source_repository::DeleteSourceRepositoryError>()
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::delete_source_repository::DeleteSourceRepositoryOutput>()
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::delete_source_repository::DeleteSourceRepositoryInput,
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            "CodeCatalyst",
56            "DeleteSourceRepository",
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            "CodeCatalyst.DeleteSourceRepository",
65            "rpc.service" = "CodeCatalyst",
66            "rpc.method" = "DeleteSourceRepository",
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 DeleteSourceRepository {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("DeleteSourceRepository");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            DeleteSourceRepositoryRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            DeleteSourceRepositoryResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("DeleteSourceRepository")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "DeleteSourceRepository",
113            "CodeCatalyst",
114        ));
115
116        ::std::option::Option::Some(cfg.freeze())
117    }
118
119    fn runtime_components(
120        &self,
121        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
122    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
123        #[allow(unused_mut)]
124        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("DeleteSourceRepository")
125            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
126                DeleteSourceRepositoryTelemetryInputCaptureInterceptor,
127            ))
128            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
129                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
130            ))
131            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
132                DeleteSourceRepositoryEndpointParamsInterceptor,
133            ))
134            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
135                crate::operation::delete_source_repository::DeleteSourceRepositoryError,
136            >::new())
137            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
138                crate::operation::delete_source_repository::DeleteSourceRepositoryError,
139            >::new())
140            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
141                crate::operation::delete_source_repository::DeleteSourceRepositoryError,
142            >::new());
143
144        ::std::borrow::Cow::Owned(rcb)
145    }
146}
147
148#[derive(Debug)]
149struct DeleteSourceRepositoryTelemetryInputCaptureInterceptor;
150
151#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
152impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteSourceRepositoryTelemetryInputCaptureInterceptor {
153    fn name(&self) -> &'static str {
154        "DeleteSourceRepositoryTelemetryInputCaptureInterceptor"
155    }
156
157    fn read_before_execution(
158        &self,
159        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
160            '_,
161            ::aws_smithy_runtime_api::client::interceptors::context::Input,
162            ::aws_smithy_runtime_api::client::interceptors::context::Output,
163            ::aws_smithy_runtime_api::client::interceptors::context::Error,
164        >,
165        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
166    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
167        // Nothing to do unless the customer opted in by naming members to record.
168        let ::std::option::Option::Some(requested) = cfg
169            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
170            .filter(|r| !r.is_empty())
171        else {
172            return ::std::result::Result::Ok(());
173        };
174
175        let ::std::option::Option::Some(input) = context.input().downcast_ref::<DeleteSourceRepositoryInput>() else {
176            // A mismatched input is not this interceptor's concern; skip quietly.
177            return ::std::result::Result::Ok(());
178        };
179
180        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
181        if requested.should_capture("spaceName") {
182            if let ::std::option::Option::Some(value) = input.space_name.as_deref() {
183                captured.insert("spaceName", value);
184            }
185        }
186        if requested.should_capture("projectName") {
187            if let ::std::option::Option::Some(value) = input.project_name.as_deref() {
188                captured.insert("projectName", value);
189            }
190        }
191        if requested.should_capture("name") {
192            if let ::std::option::Option::Some(value) = input.name.as_deref() {
193                captured.insert("name", value);
194            }
195        }
196
197        cfg.interceptor_state().store_put(captured);
198        ::std::result::Result::Ok(())
199    }
200}
201#[derive(Debug)]
202struct DeleteSourceRepositoryResponseDeserializer;
203impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for DeleteSourceRepositoryResponseDeserializer {
204    fn deserialize_nonstreaming_with_config(
205        &self,
206        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
207        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
208    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
209        let (success, status) = (response.status().is_success(), response.status().as_u16());
210        let headers = response.headers();
211        let body = response.body().bytes().expect("body loaded");
212        #[allow(unused_mut)]
213        let mut force_error = false;
214        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
215        let parse_result = if !success && status != 200 || force_error {
216            crate::protocol_serde::shape_delete_source_repository::de_delete_source_repository_http_error(status, headers, body)
217        } else {
218            crate::protocol_serde::shape_delete_source_repository::de_delete_source_repository_http_response(status, headers, body)
219        };
220        crate::protocol_serde::type_erase_result(parse_result)
221    }
222}
223#[derive(Debug)]
224struct DeleteSourceRepositoryRequestSerializer;
225impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for DeleteSourceRepositoryRequestSerializer {
226    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
227    fn serialize_input(
228        &self,
229        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
230        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
231    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
232        let input = input
233            .downcast::<crate::operation::delete_source_repository::DeleteSourceRepositoryInput>()
234            .expect("correct type");
235        let _header_serialization_settings = _cfg
236            .load::<crate::serialization_settings::HeaderSerializationSettings>()
237            .cloned()
238            .unwrap_or_default();
239        let mut request_builder = {
240            #[allow(clippy::uninlined_format_args)]
241            fn uri_base(
242                _input: &crate::operation::delete_source_repository::DeleteSourceRepositoryInput,
243                output: &mut ::std::string::String,
244            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
245                use ::std::fmt::Write as _;
246                let input_1 = &_input.space_name;
247                let input_1 = input_1
248                    .as_ref()
249                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("space_name", "cannot be empty or unset"))?;
250                let space_name = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
251                if space_name.is_empty() {
252                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
253                        "space_name",
254                        "cannot be empty or unset",
255                    ));
256                }
257                let input_2 = &_input.project_name;
258                let input_2 = input_2
259                    .as_ref()
260                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("project_name", "cannot be empty or unset"))?;
261                let project_name = ::aws_smithy_http::label::fmt_string(input_2, ::aws_smithy_http::label::EncodingStrategy::Default);
262                if project_name.is_empty() {
263                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
264                        "project_name",
265                        "cannot be empty or unset",
266                    ));
267                }
268                let input_3 = &_input.name;
269                let input_3 = input_3
270                    .as_ref()
271                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("name", "cannot be empty or unset"))?;
272                let name = ::aws_smithy_http::label::fmt_string(input_3, ::aws_smithy_http::label::EncodingStrategy::Default);
273                if name.is_empty() {
274                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
275                        "name",
276                        "cannot be empty or unset",
277                    ));
278                }
279                ::std::write!(
280                    output,
281                    "/v1/spaces/{spaceName}/projects/{projectName}/sourceRepositories/{name}",
282                    spaceName = space_name,
283                    projectName = project_name,
284                    name = name
285                )
286                .expect("formatting should succeed");
287                ::std::result::Result::Ok(())
288            }
289            #[allow(clippy::unnecessary_wraps)]
290            fn update_http_builder(
291                input: &crate::operation::delete_source_repository::DeleteSourceRepositoryInput,
292                builder: ::http_1x::request::Builder,
293            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
294                let mut uri = ::std::string::String::new();
295                uri_base(input, &mut uri)?;
296                ::std::result::Result::Ok(builder.method("DELETE").uri(uri))
297            }
298            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
299            builder
300        };
301        let body = ::aws_smithy_types::body::SdkBody::from("");
302
303        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
304    }
305}
306#[derive(Debug)]
307struct DeleteSourceRepositoryEndpointParamsInterceptor;
308
309#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
310impl ::aws_smithy_runtime_api::client::interceptors::Intercept for DeleteSourceRepositoryEndpointParamsInterceptor {
311    fn name(&self) -> &'static str {
312        "DeleteSourceRepositoryEndpointParamsInterceptor"
313    }
314
315    fn read_before_execution(
316        &self,
317        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
318            '_,
319            ::aws_smithy_runtime_api::client::interceptors::context::Input,
320            ::aws_smithy_runtime_api::client::interceptors::context::Output,
321            ::aws_smithy_runtime_api::client::interceptors::context::Error,
322        >,
323        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
324    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
325        let _input = context
326            .input()
327            .downcast_ref::<DeleteSourceRepositoryInput>()
328            .ok_or("failed to downcast to DeleteSourceRepositoryInput")?;
329
330        let params = crate::config::endpoint::Params::builder()
331            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
332            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
333            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
334            .build()
335            .map_err(|err| {
336                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
337            })?;
338        cfg.interceptor_state()
339            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
340        ::std::result::Result::Ok(())
341    }
342}
343
344// The get_* functions below are generated from JMESPath expressions in the
345// operationContextParams trait. They target the operation's input shape.
346
347/// Error type for the `DeleteSourceRepositoryError` operation.
348#[non_exhaustive]
349#[derive(::std::fmt::Debug)]
350pub enum DeleteSourceRepositoryError {
351    /// <p>The request was denied because you don't have sufficient access to perform this action. Verify that you are a member of a role that allows this action.</p>
352    AccessDeniedException(crate::types::error::AccessDeniedException),
353    /// <p>The request was denied because the requested operation would cause a conflict with the current state of a service resource associated with the request. Another user might have updated the resource. Reload, make sure you have the latest data, and then try again.</p>
354    ConflictException(crate::types::error::ConflictException),
355    /// <p>The request was denied because the specified resource was not found. Verify that the spelling is correct and that you have access to the resource.</p>
356    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
357    /// <p>The request was denied because one or more resources has reached its limits for the tier the space belongs to. Either reduce the number of resources, or change the tier if applicable.</p>
358    ServiceQuotaExceededException(crate::types::error::ServiceQuotaExceededException),
359    /// <p>The request was denied due to request throttling.</p>
360    ThrottlingException(crate::types::error::ThrottlingException),
361    /// <p>The request was denied because an input failed to satisfy the constraints specified by the service. Check the spelling and input requirements, and then try again.</p>
362    ValidationException(crate::types::error::ValidationException),
363    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
364    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
365    variable wildcard pattern and check `.code()`:
366     \
367    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
368     \
369    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-DeleteSourceRepositoryError) for what information is available for the error.")]
370    Unhandled(crate::error::sealed_unhandled::Unhandled),
371}
372impl DeleteSourceRepositoryError {
373    /// Creates the `DeleteSourceRepositoryError::Unhandled` variant from any error type.
374    pub fn unhandled(
375        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
376    ) -> Self {
377        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
378            source: err.into(),
379            meta: ::std::default::Default::default(),
380        })
381    }
382
383    /// Creates the `DeleteSourceRepositoryError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
384    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
385        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
386            source: err.clone().into(),
387            meta: err,
388        })
389    }
390    ///
391    /// Returns error metadata, which includes the error code, message,
392    /// request ID, and potentially additional information.
393    ///
394    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
395        match self {
396            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
397            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
398            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
399            Self::ServiceQuotaExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
400            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
401            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
402            Self::Unhandled(e) => &e.meta,
403        }
404    }
405    /// Returns `true` if the error kind is `DeleteSourceRepositoryError::AccessDeniedException`.
406    pub fn is_access_denied_exception(&self) -> bool {
407        matches!(self, Self::AccessDeniedException(_))
408    }
409    /// Returns `true` if the error kind is `DeleteSourceRepositoryError::ConflictException`.
410    pub fn is_conflict_exception(&self) -> bool {
411        matches!(self, Self::ConflictException(_))
412    }
413    /// Returns `true` if the error kind is `DeleteSourceRepositoryError::ResourceNotFoundException`.
414    pub fn is_resource_not_found_exception(&self) -> bool {
415        matches!(self, Self::ResourceNotFoundException(_))
416    }
417    /// Returns `true` if the error kind is `DeleteSourceRepositoryError::ServiceQuotaExceededException`.
418    pub fn is_service_quota_exceeded_exception(&self) -> bool {
419        matches!(self, Self::ServiceQuotaExceededException(_))
420    }
421    /// Returns `true` if the error kind is `DeleteSourceRepositoryError::ThrottlingException`.
422    pub fn is_throttling_exception(&self) -> bool {
423        matches!(self, Self::ThrottlingException(_))
424    }
425    /// Returns `true` if the error kind is `DeleteSourceRepositoryError::ValidationException`.
426    pub fn is_validation_exception(&self) -> bool {
427        matches!(self, Self::ValidationException(_))
428    }
429}
430impl ::std::error::Error for DeleteSourceRepositoryError {
431    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
432        match self {
433            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
434            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
435            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
436            Self::ServiceQuotaExceededException(_inner) => ::std::option::Option::Some(_inner),
437            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
438            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
439            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
440        }
441    }
442}
443impl ::std::fmt::Display for DeleteSourceRepositoryError {
444    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
445        match self {
446            Self::AccessDeniedException(_inner) => _inner.fmt(f),
447            Self::ConflictException(_inner) => _inner.fmt(f),
448            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
449            Self::ServiceQuotaExceededException(_inner) => _inner.fmt(f),
450            Self::ThrottlingException(_inner) => _inner.fmt(f),
451            Self::ValidationException(_inner) => _inner.fmt(f),
452            Self::Unhandled(_inner) => {
453                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
454                    write!(f, "unhandled error ({code})")
455                } else {
456                    f.write_str("unhandled error")
457                }
458            }
459        }
460    }
461}
462impl ::aws_smithy_types::retry::ProvideErrorKind for DeleteSourceRepositoryError {
463    fn code(&self) -> ::std::option::Option<&str> {
464        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
465    }
466    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
467        match self {
468            Self::ThrottlingException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
469            _ => ::std::option::Option::None,
470        }
471    }
472}
473impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for DeleteSourceRepositoryError {
474    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
475        match self {
476            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
477            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
478            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
479            Self::ServiceQuotaExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
480            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
481            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
482            Self::Unhandled(_inner) => &_inner.meta,
483        }
484    }
485}
486impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for DeleteSourceRepositoryError {
487    fn create_unhandled_error(
488        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
489        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
490    ) -> Self {
491        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
492            source,
493            meta: meta.unwrap_or_default(),
494        })
495    }
496}
497impl ::aws_types::request_id::RequestId for crate::operation::delete_source_repository::DeleteSourceRepositoryError {
498    fn request_id(&self) -> Option<&str> {
499        self.meta().request_id()
500    }
501}
502
503pub use crate::operation::delete_source_repository::_delete_source_repository_input::DeleteSourceRepositoryInput;
504
505pub use crate::operation::delete_source_repository::_delete_source_repository_output::DeleteSourceRepositoryOutput;
506
507mod _delete_source_repository_input;
508
509mod _delete_source_repository_output;
510
511/// Builders
512pub mod builders;