Skip to main content

aws_sdk_codecatalyst/operation/
list_source_repositories.rs

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