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