Skip to main content

aws_sdk_codecatalyst/operation/
list_access_tokens.rs

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