aws_sdk_quicksight/operation/
list_namespaces.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `ListNamespaces`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct ListNamespaces;
6impl ListNamespaces {
7    /// Creates a new `ListNamespaces`
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_namespaces::ListNamespacesInput,
14    ) -> ::std::result::Result<
15        crate::operation::list_namespaces::ListNamespacesOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::list_namespaces::ListNamespacesError,
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_namespaces::ListNamespacesError>()
27                    .expect("correct error type")
28            })
29        };
30        use ::tracing::Instrument;
31        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
32            // Create a parent span for the entire operation. Includes a random, internal-only,
33            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
34            .instrument(::tracing::debug_span!(
35                "quicksight.ListNamespaces",
36                "rpc.service" = "quicksight",
37                "rpc.method" = "ListNamespaces",
38                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
39                "rpc.system" = "aws-api",
40            ))
41            .await
42            .map_err(map_err)?;
43        let output = context.finalize().map_err(map_err)?;
44        ::std::result::Result::Ok(
45            output
46                .downcast::<crate::operation::list_namespaces::ListNamespacesOutput>()
47                .expect("correct output type"),
48        )
49    }
50
51    pub(crate) async fn orchestrate_with_stop_point(
52        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
53        input: crate::operation::list_namespaces::ListNamespacesInput,
54        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
55    ) -> ::std::result::Result<
56        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
57        ::aws_smithy_runtime_api::client::result::SdkError<
58            ::aws_smithy_runtime_api::client::interceptors::context::Error,
59            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
60        >,
61    > {
62        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
63        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("quicksight", "ListNamespaces", input, runtime_plugins, stop_point).await
64    }
65
66    pub(crate) fn operation_runtime_plugins(
67        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
68        client_config: &crate::config::Config,
69        config_override: ::std::option::Option<crate::config::Builder>,
70    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
71        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
72        runtime_plugins = runtime_plugins.with_client_plugin(crate::auth_plugin::DefaultAuthOptionsPlugin::new(vec![
73            ::aws_runtime::auth::sigv4::SCHEME_ID,
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 ListNamespaces {
89    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
90        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("ListNamespaces");
91
92        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
93            ListNamespacesRequestSerializer,
94        ));
95        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
96            ListNamespacesResponseDeserializer,
97        ));
98
99        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
100            ::aws_smithy_runtime_api::client::auth::static_resolver::StaticAuthSchemeOptionResolverParams::new(),
101        ));
102
103        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
104            "ListNamespaces",
105            "quicksight",
106        ));
107        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
108        signing_options.double_uri_encode = true;
109        signing_options.content_sha256_header = false;
110        signing_options.normalize_uri_path = true;
111        signing_options.payload_override = None;
112
113        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
114            signing_options,
115            ..::std::default::Default::default()
116        });
117
118        ::std::option::Option::Some(cfg.freeze())
119    }
120
121    fn runtime_components(
122        &self,
123        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
124    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
125        #[allow(unused_mut)]
126        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("ListNamespaces")
127            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
128            .with_interceptor(ListNamespacesEndpointParamsInterceptor)
129            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
130                crate::operation::list_namespaces::ListNamespacesError,
131            >::new())
132            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
133                crate::operation::list_namespaces::ListNamespacesError,
134            >::new())
135            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
136                crate::operation::list_namespaces::ListNamespacesError,
137            >::new());
138
139        ::std::borrow::Cow::Owned(rcb)
140    }
141}
142
143#[derive(Debug)]
144struct ListNamespacesResponseDeserializer;
145impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for ListNamespacesResponseDeserializer {
146    fn deserialize_nonstreaming(
147        &self,
148        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
149    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
150        let (success, status) = (response.status().is_success(), response.status().as_u16());
151        let headers = response.headers();
152        let body = response.body().bytes().expect("body loaded");
153        #[allow(unused_mut)]
154        let mut force_error = false;
155        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
156        let parse_result = if !success && status != 200 || force_error {
157            crate::protocol_serde::shape_list_namespaces::de_list_namespaces_http_error(status, headers, body)
158        } else {
159            crate::protocol_serde::shape_list_namespaces::de_list_namespaces_http_response(status, headers, body)
160        };
161        crate::protocol_serde::type_erase_result(parse_result)
162    }
163}
164#[derive(Debug)]
165struct ListNamespacesRequestSerializer;
166impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for ListNamespacesRequestSerializer {
167    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
168    fn serialize_input(
169        &self,
170        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
171        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
172    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
173        let input = input
174            .downcast::<crate::operation::list_namespaces::ListNamespacesInput>()
175            .expect("correct type");
176        let _header_serialization_settings = _cfg
177            .load::<crate::serialization_settings::HeaderSerializationSettings>()
178            .cloned()
179            .unwrap_or_default();
180        let mut request_builder = {
181            fn uri_base(
182                _input: &crate::operation::list_namespaces::ListNamespacesInput,
183                output: &mut ::std::string::String,
184            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
185                use ::std::fmt::Write as _;
186                let input_1 = &_input.aws_account_id;
187                let input_1 = input_1
188                    .as_ref()
189                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("aws_account_id", "cannot be empty or unset"))?;
190                let aws_account_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
191                if aws_account_id.is_empty() {
192                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
193                        "aws_account_id",
194                        "cannot be empty or unset",
195                    ));
196                }
197                ::std::write!(output, "/accounts/{AwsAccountId}/namespaces", AwsAccountId = aws_account_id).expect("formatting should succeed");
198                ::std::result::Result::Ok(())
199            }
200            fn uri_query(
201                _input: &crate::operation::list_namespaces::ListNamespacesInput,
202                mut output: &mut ::std::string::String,
203            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
204                let mut query = ::aws_smithy_http::query::Writer::new(output);
205                if let ::std::option::Option::Some(inner_2) = &_input.next_token {
206                    {
207                        query.push_kv("next-token", &::aws_smithy_http::query::fmt_string(inner_2));
208                    }
209                }
210                if let ::std::option::Option::Some(inner_3) = &_input.max_results {
211                    {
212                        query.push_kv("max-results", ::aws_smithy_types::primitive::Encoder::from(*inner_3).encode());
213                    }
214                }
215                ::std::result::Result::Ok(())
216            }
217            #[allow(clippy::unnecessary_wraps)]
218            fn update_http_builder(
219                input: &crate::operation::list_namespaces::ListNamespacesInput,
220                builder: ::http::request::Builder,
221            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
222                let mut uri = ::std::string::String::new();
223                uri_base(input, &mut uri)?;
224                uri_query(input, &mut uri)?;
225                ::std::result::Result::Ok(builder.method("GET").uri(uri))
226            }
227            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
228            builder
229        };
230        let body = ::aws_smithy_types::body::SdkBody::from("");
231
232        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
233    }
234}
235#[derive(Debug)]
236struct ListNamespacesEndpointParamsInterceptor;
237
238impl ::aws_smithy_runtime_api::client::interceptors::Intercept for ListNamespacesEndpointParamsInterceptor {
239    fn name(&self) -> &'static str {
240        "ListNamespacesEndpointParamsInterceptor"
241    }
242
243    fn read_before_execution(
244        &self,
245        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
246            '_,
247            ::aws_smithy_runtime_api::client::interceptors::context::Input,
248            ::aws_smithy_runtime_api::client::interceptors::context::Output,
249            ::aws_smithy_runtime_api::client::interceptors::context::Error,
250        >,
251        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
252    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
253        let _input = context
254            .input()
255            .downcast_ref::<ListNamespacesInput>()
256            .ok_or("failed to downcast to ListNamespacesInput")?;
257
258        let params = crate::config::endpoint::Params::builder()
259            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
260            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
261            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
262            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
263            .build()
264            .map_err(|err| {
265                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
266            })?;
267        cfg.interceptor_state()
268            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
269        ::std::result::Result::Ok(())
270    }
271}
272
273// The get_* functions below are generated from JMESPath expressions in the
274// operationContextParams trait. They target the operation's input shape.
275
276/// Error type for the `ListNamespacesError` operation.
277#[non_exhaustive]
278#[derive(::std::fmt::Debug)]
279pub enum ListNamespacesError {
280    /// <p>You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon QuickSight service, that your policies have the correct permissions, and that you are using the correct credentials.</p>
281    AccessDeniedException(crate::types::error::AccessDeniedException),
282    /// <p>An internal failure occurred.</p>
283    InternalFailureException(crate::types::error::InternalFailureException),
284    /// <p>The <code>NextToken</code> value isn't valid.</p>
285    InvalidNextTokenException(crate::types::error::InvalidNextTokenException),
286    /// <p>One or more parameters has a value that isn't valid.</p>
287    InvalidParameterValueException(crate::types::error::InvalidParameterValueException),
288    /// <p>One or more preconditions aren't met.</p>
289    PreconditionNotMetException(crate::types::error::PreconditionNotMetException),
290    /// <p>One or more resources can't be found.</p>
291    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
292    /// <p>This resource is currently unavailable.</p>
293    ResourceUnavailableException(crate::types::error::ResourceUnavailableException),
294    /// <p>Access is throttled.</p>
295    ThrottlingException(crate::types::error::ThrottlingException),
296    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
297    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
298    variable wildcard pattern and check `.code()`:
299     \
300    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
301     \
302    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-ListNamespacesError) for what information is available for the error.")]
303    Unhandled(crate::error::sealed_unhandled::Unhandled),
304}
305impl ListNamespacesError {
306    /// Creates the `ListNamespacesError::Unhandled` variant from any error type.
307    pub fn unhandled(
308        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
309    ) -> Self {
310        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
311            source: err.into(),
312            meta: ::std::default::Default::default(),
313        })
314    }
315
316    /// Creates the `ListNamespacesError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
317    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
318        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
319            source: err.clone().into(),
320            meta: err,
321        })
322    }
323    ///
324    /// Returns error metadata, which includes the error code, message,
325    /// request ID, and potentially additional information.
326    ///
327    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
328        match self {
329            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
331            Self::InvalidNextTokenException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
332            Self::InvalidParameterValueException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
333            Self::PreconditionNotMetException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
334            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::ResourceUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::Unhandled(e) => &e.meta,
338        }
339    }
340    /// Returns `true` if the error kind is `ListNamespacesError::AccessDeniedException`.
341    pub fn is_access_denied_exception(&self) -> bool {
342        matches!(self, Self::AccessDeniedException(_))
343    }
344    /// Returns `true` if the error kind is `ListNamespacesError::InternalFailureException`.
345    pub fn is_internal_failure_exception(&self) -> bool {
346        matches!(self, Self::InternalFailureException(_))
347    }
348    /// Returns `true` if the error kind is `ListNamespacesError::InvalidNextTokenException`.
349    pub fn is_invalid_next_token_exception(&self) -> bool {
350        matches!(self, Self::InvalidNextTokenException(_))
351    }
352    /// Returns `true` if the error kind is `ListNamespacesError::InvalidParameterValueException`.
353    pub fn is_invalid_parameter_value_exception(&self) -> bool {
354        matches!(self, Self::InvalidParameterValueException(_))
355    }
356    /// Returns `true` if the error kind is `ListNamespacesError::PreconditionNotMetException`.
357    pub fn is_precondition_not_met_exception(&self) -> bool {
358        matches!(self, Self::PreconditionNotMetException(_))
359    }
360    /// Returns `true` if the error kind is `ListNamespacesError::ResourceNotFoundException`.
361    pub fn is_resource_not_found_exception(&self) -> bool {
362        matches!(self, Self::ResourceNotFoundException(_))
363    }
364    /// Returns `true` if the error kind is `ListNamespacesError::ResourceUnavailableException`.
365    pub fn is_resource_unavailable_exception(&self) -> bool {
366        matches!(self, Self::ResourceUnavailableException(_))
367    }
368    /// Returns `true` if the error kind is `ListNamespacesError::ThrottlingException`.
369    pub fn is_throttling_exception(&self) -> bool {
370        matches!(self, Self::ThrottlingException(_))
371    }
372}
373impl ::std::error::Error for ListNamespacesError {
374    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
375        match self {
376            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
377            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
378            Self::InvalidNextTokenException(_inner) => ::std::option::Option::Some(_inner),
379            Self::InvalidParameterValueException(_inner) => ::std::option::Option::Some(_inner),
380            Self::PreconditionNotMetException(_inner) => ::std::option::Option::Some(_inner),
381            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
382            Self::ResourceUnavailableException(_inner) => ::std::option::Option::Some(_inner),
383            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
384            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
385        }
386    }
387}
388impl ::std::fmt::Display for ListNamespacesError {
389    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
390        match self {
391            Self::AccessDeniedException(_inner) => _inner.fmt(f),
392            Self::InternalFailureException(_inner) => _inner.fmt(f),
393            Self::InvalidNextTokenException(_inner) => _inner.fmt(f),
394            Self::InvalidParameterValueException(_inner) => _inner.fmt(f),
395            Self::PreconditionNotMetException(_inner) => _inner.fmt(f),
396            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
397            Self::ResourceUnavailableException(_inner) => _inner.fmt(f),
398            Self::ThrottlingException(_inner) => _inner.fmt(f),
399            Self::Unhandled(_inner) => {
400                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
401                    write!(f, "unhandled error ({code})")
402                } else {
403                    f.write_str("unhandled error")
404                }
405            }
406        }
407    }
408}
409impl ::aws_smithy_types::retry::ProvideErrorKind for ListNamespacesError {
410    fn code(&self) -> ::std::option::Option<&str> {
411        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
412    }
413    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
414        ::std::option::Option::None
415    }
416}
417impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for ListNamespacesError {
418    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
419        match self {
420            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
421            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::InvalidNextTokenException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::InvalidParameterValueException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::PreconditionNotMetException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
426            Self::ResourceUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
427            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::Unhandled(_inner) => &_inner.meta,
429        }
430    }
431}
432impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for ListNamespacesError {
433    fn create_unhandled_error(
434        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
435        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
436    ) -> Self {
437        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
438            source,
439            meta: meta.unwrap_or_default(),
440        })
441    }
442}
443impl ::aws_types::request_id::RequestId for crate::operation::list_namespaces::ListNamespacesError {
444    fn request_id(&self) -> Option<&str> {
445        self.meta().request_id()
446    }
447}
448
449pub use crate::operation::list_namespaces::_list_namespaces_output::ListNamespacesOutput;
450
451pub use crate::operation::list_namespaces::_list_namespaces_input::ListNamespacesInput;
452
453mod _list_namespaces_input;
454
455mod _list_namespaces_output;
456
457/// Builders
458pub mod builders;
459
460/// Paginator for this operation
461pub mod paginator;