aws_sdk_verifiedpermissions/operation/
is_authorized_with_token.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `IsAuthorizedWithToken`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct IsAuthorizedWithToken;
6impl IsAuthorizedWithToken {
7    /// Creates a new `IsAuthorizedWithToken`
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::is_authorized_with_token::IsAuthorizedWithTokenInput,
14    ) -> ::std::result::Result<
15        crate::operation::is_authorized_with_token::IsAuthorizedWithTokenOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::is_authorized_with_token::IsAuthorizedWithTokenError,
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::is_authorized_with_token::IsAuthorizedWithTokenError>()
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::is_authorized_with_token::IsAuthorizedWithTokenOutput>()
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::is_authorized_with_token::IsAuthorizedWithTokenInput,
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            "VerifiedPermissions",
56            "IsAuthorizedWithToken",
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            "VerifiedPermissions.IsAuthorizedWithToken",
65            "rpc.service" = "VerifiedPermissions",
66            "rpc.method" = "IsAuthorizedWithToken",
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 IsAuthorizedWithToken {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("IsAuthorizedWithToken");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            IsAuthorizedWithTokenRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            IsAuthorizedWithTokenResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("IsAuthorizedWithToken")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "IsAuthorizedWithToken",
114            "VerifiedPermissions",
115        ));
116        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
117        signing_options.double_uri_encode = true;
118        signing_options.content_sha256_header = false;
119        signing_options.normalize_uri_path = true;
120        signing_options.payload_override = None;
121
122        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
123            signing_options,
124            ..::std::default::Default::default()
125        });
126
127        ::std::option::Option::Some(cfg.freeze())
128    }
129
130    fn runtime_components(
131        &self,
132        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
133    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
134        #[allow(unused_mut)]
135        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("IsAuthorizedWithToken")
136            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
137            .with_interceptor(IsAuthorizedWithTokenEndpointParamsInterceptor)
138            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
139                crate::operation::is_authorized_with_token::IsAuthorizedWithTokenError,
140            >::new())
141            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
142                crate::operation::is_authorized_with_token::IsAuthorizedWithTokenError,
143            >::new())
144            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
145                crate::operation::is_authorized_with_token::IsAuthorizedWithTokenError,
146            >::new());
147
148        ::std::borrow::Cow::Owned(rcb)
149    }
150}
151
152#[derive(Debug)]
153struct IsAuthorizedWithTokenResponseDeserializer;
154impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for IsAuthorizedWithTokenResponseDeserializer {
155    fn deserialize_nonstreaming(
156        &self,
157        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
158    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
159        let (success, status) = (response.status().is_success(), response.status().as_u16());
160        let headers = response.headers();
161        let body = response.body().bytes().expect("body loaded");
162        #[allow(unused_mut)]
163        let mut force_error = false;
164        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
165        let parse_result = if !success && status != 200 || force_error {
166            crate::protocol_serde::shape_is_authorized_with_token::de_is_authorized_with_token_http_error(status, headers, body)
167        } else {
168            crate::protocol_serde::shape_is_authorized_with_token::de_is_authorized_with_token_http_response(status, headers, body)
169        };
170        crate::protocol_serde::type_erase_result(parse_result)
171    }
172}
173#[derive(Debug)]
174struct IsAuthorizedWithTokenRequestSerializer;
175impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for IsAuthorizedWithTokenRequestSerializer {
176    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
177    fn serialize_input(
178        &self,
179        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
180        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
181    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
182        let input = input
183            .downcast::<crate::operation::is_authorized_with_token::IsAuthorizedWithTokenInput>()
184            .expect("correct type");
185        let _header_serialization_settings = _cfg
186            .load::<crate::serialization_settings::HeaderSerializationSettings>()
187            .cloned()
188            .unwrap_or_default();
189        let mut request_builder = {
190            fn uri_base(
191                _input: &crate::operation::is_authorized_with_token::IsAuthorizedWithTokenInput,
192                output: &mut ::std::string::String,
193            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
194                use ::std::fmt::Write as _;
195                ::std::write!(output, "/").expect("formatting should succeed");
196                ::std::result::Result::Ok(())
197            }
198            #[allow(clippy::unnecessary_wraps)]
199            fn update_http_builder(
200                input: &crate::operation::is_authorized_with_token::IsAuthorizedWithTokenInput,
201                builder: ::http::request::Builder,
202            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
203                let mut uri = ::std::string::String::new();
204                uri_base(input, &mut uri)?;
205                ::std::result::Result::Ok(builder.method("POST").uri(uri))
206            }
207            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
208            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.0");
209            builder = _header_serialization_settings.set_default_header(
210                builder,
211                ::http::header::HeaderName::from_static("x-amz-target"),
212                "VerifiedPermissions.IsAuthorizedWithToken",
213            );
214            builder
215        };
216        let body = ::aws_smithy_types::body::SdkBody::from(
217            crate::protocol_serde::shape_is_authorized_with_token::ser_is_authorized_with_token_input(&input)?,
218        );
219        if let Some(content_length) = body.content_length() {
220            let content_length = content_length.to_string();
221            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
222        }
223        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
224    }
225}
226#[derive(Debug)]
227struct IsAuthorizedWithTokenEndpointParamsInterceptor;
228
229impl ::aws_smithy_runtime_api::client::interceptors::Intercept for IsAuthorizedWithTokenEndpointParamsInterceptor {
230    fn name(&self) -> &'static str {
231        "IsAuthorizedWithTokenEndpointParamsInterceptor"
232    }
233
234    fn read_before_execution(
235        &self,
236        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
237            '_,
238            ::aws_smithy_runtime_api::client::interceptors::context::Input,
239            ::aws_smithy_runtime_api::client::interceptors::context::Output,
240            ::aws_smithy_runtime_api::client::interceptors::context::Error,
241        >,
242        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
243    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
244        let _input = context
245            .input()
246            .downcast_ref::<IsAuthorizedWithTokenInput>()
247            .ok_or("failed to downcast to IsAuthorizedWithTokenInput")?;
248
249        let params = crate::config::endpoint::Params::builder()
250            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
251            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
252            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
253            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
254            .build()
255            .map_err(|err| {
256                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
257            })?;
258        cfg.interceptor_state()
259            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
260        ::std::result::Result::Ok(())
261    }
262}
263
264// The get_* functions below are generated from JMESPath expressions in the
265// operationContextParams trait. They target the operation's input shape.
266
267/// Error type for the `IsAuthorizedWithTokenError` operation.
268#[non_exhaustive]
269#[derive(::std::fmt::Debug)]
270pub enum IsAuthorizedWithTokenError {
271    /// <p>The request failed because it references a resource that doesn't exist.</p>
272    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
273    /// <p>You don't have sufficient access to perform this action.</p>
274    AccessDeniedException(crate::types::error::AccessDeniedException),
275    /// <p>The request failed because of an internal error. Try your request again later</p>
276    InternalServerException(crate::types::error::InternalServerException),
277    /// <p>The request failed because it exceeded a throttling quota.</p>
278    ThrottlingException(crate::types::error::ThrottlingException),
279    /// <p>The request failed because one or more input parameters don't satisfy their constraint requirements. The output is provided as a list of fields and a reason for each field that isn't valid.</p>
280    /// <p>The possible reasons include the following:</p>
281    /// <ul>
282    /// <li>
283    /// <p><b>UnrecognizedEntityType</b></p>
284    /// <p>The policy includes an entity type that isn't found in the schema.</p></li>
285    /// <li>
286    /// <p><b>UnrecognizedActionId</b></p>
287    /// <p>The policy includes an action id that isn't found in the schema.</p></li>
288    /// <li>
289    /// <p><b>InvalidActionApplication</b></p>
290    /// <p>The policy includes an action that, according to the schema, doesn't support the specified principal and resource.</p></li>
291    /// <li>
292    /// <p><b>UnexpectedType</b></p>
293    /// <p>The policy included an operand that isn't a valid type for the specified operation.</p></li>
294    /// <li>
295    /// <p><b>IncompatibleTypes</b></p>
296    /// <p>The types of elements included in a <code>set</code>, or the types of expressions used in an <code>if...then...else</code> clause aren't compatible in this context.</p></li>
297    /// <li>
298    /// <p><b>MissingAttribute</b></p>
299    /// <p>The policy attempts to access a record or entity attribute that isn't specified in the schema. Test for the existence of the attribute first before attempting to access its value. For more information, see the <a href="https://docs.cedarpolicy.com/policies/syntax-operators.html#has-presence-of-attribute-test">has (presence of attribute test) operator</a> in the <i>Cedar Policy Language Guide</i>.</p></li>
300    /// <li>
301    /// <p><b>UnsafeOptionalAttributeAccess</b></p>
302    /// <p>The policy attempts to access a record or entity attribute that is optional and isn't guaranteed to be present. Test for the existence of the attribute first before attempting to access its value. For more information, see the <a href="https://docs.cedarpolicy.com/policies/syntax-operators.html#has-presence-of-attribute-test">has (presence of attribute test) operator</a> in the <i>Cedar Policy Language Guide</i>.</p></li>
303    /// <li>
304    /// <p><b>ImpossiblePolicy</b></p>
305    /// <p>Cedar has determined that a policy condition always evaluates to false. If the policy is always false, it can never apply to any query, and so it can never affect an authorization decision.</p></li>
306    /// <li>
307    /// <p><b>WrongNumberArguments</b></p>
308    /// <p>The policy references an extension type with the wrong number of arguments.</p></li>
309    /// <li>
310    /// <p><b>FunctionArgumentValidationError</b></p>
311    /// <p>Cedar couldn't parse the argument passed to an extension type. For example, a string that is to be parsed as an IPv4 address can contain only digits and the period character.</p></li>
312    /// </ul>
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-IsAuthorizedWithTokenError) for what information is available for the error.")]
321    Unhandled(crate::error::sealed_unhandled::Unhandled),
322}
323impl IsAuthorizedWithTokenError {
324    /// Creates the `IsAuthorizedWithTokenError::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 `IsAuthorizedWithTokenError::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::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
348            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
349            Self::InternalServerException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
350            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
351            Self::ValidationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
352            Self::Unhandled(e) => &e.meta,
353        }
354    }
355    /// Returns `true` if the error kind is `IsAuthorizedWithTokenError::ResourceNotFoundException`.
356    pub fn is_resource_not_found_exception(&self) -> bool {
357        matches!(self, Self::ResourceNotFoundException(_))
358    }
359    /// Returns `true` if the error kind is `IsAuthorizedWithTokenError::AccessDeniedException`.
360    pub fn is_access_denied_exception(&self) -> bool {
361        matches!(self, Self::AccessDeniedException(_))
362    }
363    /// Returns `true` if the error kind is `IsAuthorizedWithTokenError::InternalServerException`.
364    pub fn is_internal_server_exception(&self) -> bool {
365        matches!(self, Self::InternalServerException(_))
366    }
367    /// Returns `true` if the error kind is `IsAuthorizedWithTokenError::ThrottlingException`.
368    pub fn is_throttling_exception(&self) -> bool {
369        matches!(self, Self::ThrottlingException(_))
370    }
371    /// Returns `true` if the error kind is `IsAuthorizedWithTokenError::ValidationException`.
372    pub fn is_validation_exception(&self) -> bool {
373        matches!(self, Self::ValidationException(_))
374    }
375}
376impl ::std::error::Error for IsAuthorizedWithTokenError {
377    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
378        match self {
379            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
380            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
381            Self::InternalServerException(_inner) => ::std::option::Option::Some(_inner),
382            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
383            Self::ValidationException(_inner) => ::std::option::Option::Some(_inner),
384            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
385        }
386    }
387}
388impl ::std::fmt::Display for IsAuthorizedWithTokenError {
389    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
390        match self {
391            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
392            Self::AccessDeniedException(_inner) => _inner.fmt(f),
393            Self::InternalServerException(_inner) => _inner.fmt(f),
394            Self::ThrottlingException(_inner) => _inner.fmt(f),
395            Self::ValidationException(_inner) => _inner.fmt(f),
396            Self::Unhandled(_inner) => {
397                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
398                    write!(f, "unhandled error ({code})")
399                } else {
400                    f.write_str("unhandled error")
401                }
402            }
403        }
404    }
405}
406impl ::aws_smithy_types::retry::ProvideErrorKind for IsAuthorizedWithTokenError {
407    fn code(&self) -> ::std::option::Option<&str> {
408        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
409    }
410    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
411        match self {
412            Self::InternalServerException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
413            Self::ThrottlingException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
414            _ => ::std::option::Option::None,
415        }
416    }
417}
418impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for IsAuthorizedWithTokenError {
419    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
420        match self {
421            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::InternalServerException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::ValidationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
426            Self::Unhandled(_inner) => &_inner.meta,
427        }
428    }
429}
430impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for IsAuthorizedWithTokenError {
431    fn create_unhandled_error(
432        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
433        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
434    ) -> Self {
435        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
436            source,
437            meta: meta.unwrap_or_default(),
438        })
439    }
440}
441impl ::aws_types::request_id::RequestId for crate::operation::is_authorized_with_token::IsAuthorizedWithTokenError {
442    fn request_id(&self) -> Option<&str> {
443        self.meta().request_id()
444    }
445}
446
447pub use crate::operation::is_authorized_with_token::_is_authorized_with_token_output::IsAuthorizedWithTokenOutput;
448
449pub use crate::operation::is_authorized_with_token::_is_authorized_with_token_input::IsAuthorizedWithTokenInput;
450
451mod _is_authorized_with_token_input;
452
453mod _is_authorized_with_token_output;
454
455/// Builders
456pub mod builders;