aws_sdk_kms/operation/
verify.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `Verify`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct Verify;
6impl Verify {
7    /// Creates a new `Verify`
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::verify::VerifyInput,
14    ) -> ::std::result::Result<
15        crate::operation::verify::VerifyOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::verify::VerifyError,
18            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
19        >,
20    > {
21        let map_err =
22            |err: ::aws_smithy_runtime_api::client::result::SdkError<
23                ::aws_smithy_runtime_api::client::interceptors::context::Error,
24                ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
25            >| { err.map_service_error(|err| err.downcast::<crate::operation::verify::VerifyError>().expect("correct error type")) };
26        let context = Self::orchestrate_with_stop_point(runtime_plugins, input, ::aws_smithy_runtime::client::orchestrator::StopPoint::None)
27            .await
28            .map_err(map_err)?;
29        let output = context.finalize().map_err(map_err)?;
30        ::std::result::Result::Ok(output.downcast::<crate::operation::verify::VerifyOutput>().expect("correct output type"))
31    }
32
33    pub(crate) async fn orchestrate_with_stop_point(
34        runtime_plugins: &::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
35        input: crate::operation::verify::VerifyInput,
36        stop_point: ::aws_smithy_runtime::client::orchestrator::StopPoint,
37    ) -> ::std::result::Result<
38        ::aws_smithy_runtime_api::client::interceptors::context::InterceptorContext,
39        ::aws_smithy_runtime_api::client::result::SdkError<
40            ::aws_smithy_runtime_api::client::interceptors::context::Error,
41            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
42        >,
43    > {
44        let input = ::aws_smithy_runtime_api::client::interceptors::context::Input::erase(input);
45        use ::tracing::Instrument;
46        ::aws_smithy_runtime::client::orchestrator::invoke_with_stop_point("KMS", "Verify", input, runtime_plugins, stop_point)
47            // Create a parent span for the entire operation. Includes a random, internal-only,
48            // seven-digit ID for the operation orchestration so that it can be correlated in the logs.
49            .instrument(::tracing::debug_span!(
50                "KMS.Verify",
51                "rpc.service" = "KMS",
52                "rpc.method" = "Verify",
53                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
54                "rpc.system" = "aws-api",
55            ))
56            .await
57    }
58
59    pub(crate) fn operation_runtime_plugins(
60        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
61        client_config: &crate::config::Config,
62        config_override: ::std::option::Option<crate::config::Builder>,
63    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
64        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
65
66        if let ::std::option::Option::Some(config_override) = config_override {
67            for plugin in config_override.runtime_plugins.iter().cloned() {
68                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
69            }
70            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
71                config_override,
72                client_config.config.clone(),
73                &client_config.runtime_components,
74            ));
75        }
76        runtime_plugins
77    }
78}
79impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for Verify {
80    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
81        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("Verify");
82
83        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
84            VerifyRequestSerializer,
85        ));
86        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
87            VerifyResponseDeserializer,
88        ));
89
90        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
91            crate::config::auth::Params::builder()
92                .operation_name("Verify")
93                .build()
94                .expect("required fields set"),
95        ));
96
97        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("Verify", "KMS"));
98        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
99        signing_options.double_uri_encode = true;
100        signing_options.content_sha256_header = false;
101        signing_options.normalize_uri_path = true;
102        signing_options.payload_override = None;
103
104        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
105            signing_options,
106            ..::std::default::Default::default()
107        });
108
109        ::std::option::Option::Some(cfg.freeze())
110    }
111
112    fn runtime_components(
113        &self,
114        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
115    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
116        #[allow(unused_mut)]
117        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("Verify")
118            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
119            .with_interceptor(VerifyEndpointParamsInterceptor)
120            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
121                crate::operation::verify::VerifyError,
122            >::new())
123            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
124                crate::operation::verify::VerifyError,
125            >::new())
126            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
127                crate::operation::verify::VerifyError,
128            >::new());
129
130        ::std::borrow::Cow::Owned(rcb)
131    }
132}
133
134#[derive(Debug)]
135struct VerifyResponseDeserializer;
136impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for VerifyResponseDeserializer {
137    fn deserialize_nonstreaming(
138        &self,
139        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
140    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
141        let (success, status) = (response.status().is_success(), response.status().as_u16());
142        let headers = response.headers();
143        let body = response.body().bytes().expect("body loaded");
144        #[allow(unused_mut)]
145        let mut force_error = false;
146        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
147        let parse_result = if !success && status != 200 || force_error {
148            crate::protocol_serde::shape_verify::de_verify_http_error(status, headers, body)
149        } else {
150            crate::protocol_serde::shape_verify::de_verify_http_response(status, headers, body)
151        };
152        crate::protocol_serde::type_erase_result(parse_result)
153    }
154}
155#[derive(Debug)]
156struct VerifyRequestSerializer;
157impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for VerifyRequestSerializer {
158    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
159    fn serialize_input(
160        &self,
161        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
162        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
163    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
164        let input = input.downcast::<crate::operation::verify::VerifyInput>().expect("correct type");
165        let _header_serialization_settings = _cfg
166            .load::<crate::serialization_settings::HeaderSerializationSettings>()
167            .cloned()
168            .unwrap_or_default();
169        let mut request_builder = {
170            fn uri_base(
171                _input: &crate::operation::verify::VerifyInput,
172                output: &mut ::std::string::String,
173            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
174                use ::std::fmt::Write as _;
175                ::std::write!(output, "/").expect("formatting should succeed");
176                ::std::result::Result::Ok(())
177            }
178            #[allow(clippy::unnecessary_wraps)]
179            fn update_http_builder(
180                input: &crate::operation::verify::VerifyInput,
181                builder: ::http::request::Builder,
182            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
183                let mut uri = ::std::string::String::new();
184                uri_base(input, &mut uri)?;
185                ::std::result::Result::Ok(builder.method("POST").uri(uri))
186            }
187            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
188            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.1");
189            builder = _header_serialization_settings.set_default_header(
190                builder,
191                ::http::header::HeaderName::from_static("x-amz-target"),
192                "TrentService.Verify",
193            );
194            builder
195        };
196        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_verify::ser_verify_input(&input)?);
197        if let Some(content_length) = body.content_length() {
198            let content_length = content_length.to_string();
199            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
200        }
201        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
202    }
203}
204#[derive(Debug)]
205struct VerifyEndpointParamsInterceptor;
206
207impl ::aws_smithy_runtime_api::client::interceptors::Intercept for VerifyEndpointParamsInterceptor {
208    fn name(&self) -> &'static str {
209        "VerifyEndpointParamsInterceptor"
210    }
211
212    fn read_before_execution(
213        &self,
214        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
215            '_,
216            ::aws_smithy_runtime_api::client::interceptors::context::Input,
217            ::aws_smithy_runtime_api::client::interceptors::context::Output,
218            ::aws_smithy_runtime_api::client::interceptors::context::Error,
219        >,
220        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
221    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
222        let _input = context.input().downcast_ref::<VerifyInput>().ok_or("failed to downcast to VerifyInput")?;
223
224        let params = crate::config::endpoint::Params::builder()
225            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
226            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
227            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
228            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
229            .build()
230            .map_err(|err| {
231                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
232            })?;
233        cfg.interceptor_state()
234            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
235        ::std::result::Result::Ok(())
236    }
237}
238
239// The get_* functions below are generated from JMESPath expressions in the
240// operationContextParams trait. They target the operation's input shape.
241
242/// Error type for the `VerifyError` operation.
243#[non_exhaustive]
244#[derive(::std::fmt::Debug)]
245pub enum VerifyError {
246    /// <p>The system timed out while trying to fulfill the request. You can retry the request.</p>
247    DependencyTimeoutException(crate::types::error::DependencyTimeoutException),
248    /// <p>The request was rejected because the specified KMS key is not enabled.</p>
249    DisabledException(crate::types::error::DisabledException),
250    /// <p>The request was rejected because the DryRun parameter was specified.</p>
251    DryRunOperationException(crate::types::error::DryRunOperationException),
252    /// <p>The request was rejected because the specified grant token is not valid.</p>
253    InvalidGrantTokenException(crate::types::error::InvalidGrantTokenException),
254    /// <p>The request was rejected for one of the following reasons:</p>
255    /// <ul>
256    /// <li>
257    /// <p>The <code>KeyUsage</code> value of the KMS key is incompatible with the API operation.</p></li>
258    /// <li>
259    /// <p>The encryption algorithm or signing algorithm specified for the operation is incompatible with the type of key material in the KMS key <code>(KeySpec</code>).</p></li>
260    /// </ul>
261    /// <p>For encrypting, decrypting, re-encrypting, and generating data keys, the <code>KeyUsage</code> must be <code>ENCRYPT_DECRYPT</code>. For signing and verifying messages, the <code>KeyUsage</code> must be <code>SIGN_VERIFY</code>. For generating and verifying message authentication codes (MACs), the <code>KeyUsage</code> must be <code>GENERATE_VERIFY_MAC</code>. For deriving key agreement secrets, the <code>KeyUsage</code> must be <code>KEY_AGREEMENT</code>. To find the <code>KeyUsage</code> of a KMS key, use the <code>DescribeKey</code> operation.</p>
262    /// <p>To find the encryption or signing algorithms supported for a particular KMS key, use the <code>DescribeKey</code> operation.</p>
263    InvalidKeyUsageException(crate::types::error::InvalidKeyUsageException),
264    /// <p>The request was rejected because the specified KMS key was not available. You can retry the request.</p>
265    KeyUnavailableException(crate::types::error::KeyUnavailableException),
266    /// <p>The request was rejected because an internal exception occurred. The request can be retried.</p>
267    KmsInternalException(crate::types::error::KmsInternalException),
268    /// <p>The request was rejected because the signature verification failed. Signature verification fails when it cannot confirm that signature was produced by signing the specified message with the specified KMS key and signing algorithm.</p>
269    KmsInvalidSignatureException(crate::types::error::KmsInvalidSignatureException),
270    /// <p>The request was rejected because the state of the specified resource is not valid for this request.</p>
271    /// <p>This exceptions means one of the following:</p>
272    /// <ul>
273    /// <li>
274    /// <p>The key state of the KMS key is not compatible with the operation.</p>
275    /// <p>To find the key state, use the <code>DescribeKey</code> operation. For more information about which key states are compatible with each KMS operation, see <a href="https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">Key states of KMS keys</a> in the <i> <i>Key Management Service Developer Guide</i> </i>.</p></li>
276    /// <li>
277    /// <p>For cryptographic operations on KMS keys in custom key stores, this exception represents a general failure with many possible causes. To identify the cause, see the error message that accompanies the exception.</p></li>
278    /// </ul>
279    KmsInvalidStateException(crate::types::error::KmsInvalidStateException),
280    /// <p>The request was rejected because the specified entity or resource could not be found.</p>
281    NotFoundException(crate::types::error::NotFoundException),
282    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
283    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
284    variable wildcard pattern and check `.code()`:
285     \
286    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
287     \
288    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-VerifyError) for what information is available for the error.")]
289    Unhandled(crate::error::sealed_unhandled::Unhandled),
290}
291impl VerifyError {
292    /// Creates the `VerifyError::Unhandled` variant from any error type.
293    pub fn unhandled(
294        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
295    ) -> Self {
296        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
297            source: err.into(),
298            meta: ::std::default::Default::default(),
299        })
300    }
301
302    /// Creates the `VerifyError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
303    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
304        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
305            source: err.clone().into(),
306            meta: err,
307        })
308    }
309    ///
310    /// Returns error metadata, which includes the error code, message,
311    /// request ID, and potentially additional information.
312    ///
313    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
314        match self {
315            Self::DependencyTimeoutException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
316            Self::DisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
317            Self::DryRunOperationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
318            Self::InvalidGrantTokenException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
319            Self::InvalidKeyUsageException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
320            Self::KeyUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
321            Self::KmsInternalException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
322            Self::KmsInvalidSignatureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
323            Self::KmsInvalidStateException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
324            Self::NotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
325            Self::Unhandled(e) => &e.meta,
326        }
327    }
328    /// Returns `true` if the error kind is `VerifyError::DependencyTimeoutException`.
329    pub fn is_dependency_timeout_exception(&self) -> bool {
330        matches!(self, Self::DependencyTimeoutException(_))
331    }
332    /// Returns `true` if the error kind is `VerifyError::DisabledException`.
333    pub fn is_disabled_exception(&self) -> bool {
334        matches!(self, Self::DisabledException(_))
335    }
336    /// Returns `true` if the error kind is `VerifyError::DryRunOperationException`.
337    pub fn is_dry_run_operation_exception(&self) -> bool {
338        matches!(self, Self::DryRunOperationException(_))
339    }
340    /// Returns `true` if the error kind is `VerifyError::InvalidGrantTokenException`.
341    pub fn is_invalid_grant_token_exception(&self) -> bool {
342        matches!(self, Self::InvalidGrantTokenException(_))
343    }
344    /// Returns `true` if the error kind is `VerifyError::InvalidKeyUsageException`.
345    pub fn is_invalid_key_usage_exception(&self) -> bool {
346        matches!(self, Self::InvalidKeyUsageException(_))
347    }
348    /// Returns `true` if the error kind is `VerifyError::KeyUnavailableException`.
349    pub fn is_key_unavailable_exception(&self) -> bool {
350        matches!(self, Self::KeyUnavailableException(_))
351    }
352    /// Returns `true` if the error kind is `VerifyError::KmsInternalException`.
353    pub fn is_kms_internal_exception(&self) -> bool {
354        matches!(self, Self::KmsInternalException(_))
355    }
356    /// Returns `true` if the error kind is `VerifyError::KmsInvalidSignatureException`.
357    pub fn is_kms_invalid_signature_exception(&self) -> bool {
358        matches!(self, Self::KmsInvalidSignatureException(_))
359    }
360    /// Returns `true` if the error kind is `VerifyError::KmsInvalidStateException`.
361    pub fn is_kms_invalid_state_exception(&self) -> bool {
362        matches!(self, Self::KmsInvalidStateException(_))
363    }
364    /// Returns `true` if the error kind is `VerifyError::NotFoundException`.
365    pub fn is_not_found_exception(&self) -> bool {
366        matches!(self, Self::NotFoundException(_))
367    }
368}
369impl ::std::error::Error for VerifyError {
370    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
371        match self {
372            Self::DependencyTimeoutException(_inner) => ::std::option::Option::Some(_inner),
373            Self::DisabledException(_inner) => ::std::option::Option::Some(_inner),
374            Self::DryRunOperationException(_inner) => ::std::option::Option::Some(_inner),
375            Self::InvalidGrantTokenException(_inner) => ::std::option::Option::Some(_inner),
376            Self::InvalidKeyUsageException(_inner) => ::std::option::Option::Some(_inner),
377            Self::KeyUnavailableException(_inner) => ::std::option::Option::Some(_inner),
378            Self::KmsInternalException(_inner) => ::std::option::Option::Some(_inner),
379            Self::KmsInvalidSignatureException(_inner) => ::std::option::Option::Some(_inner),
380            Self::KmsInvalidStateException(_inner) => ::std::option::Option::Some(_inner),
381            Self::NotFoundException(_inner) => ::std::option::Option::Some(_inner),
382            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
383        }
384    }
385}
386impl ::std::fmt::Display for VerifyError {
387    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
388        match self {
389            Self::DependencyTimeoutException(_inner) => _inner.fmt(f),
390            Self::DisabledException(_inner) => _inner.fmt(f),
391            Self::DryRunOperationException(_inner) => _inner.fmt(f),
392            Self::InvalidGrantTokenException(_inner) => _inner.fmt(f),
393            Self::InvalidKeyUsageException(_inner) => _inner.fmt(f),
394            Self::KeyUnavailableException(_inner) => _inner.fmt(f),
395            Self::KmsInternalException(_inner) => _inner.fmt(f),
396            Self::KmsInvalidSignatureException(_inner) => _inner.fmt(f),
397            Self::KmsInvalidStateException(_inner) => _inner.fmt(f),
398            Self::NotFoundException(_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 VerifyError {
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 VerifyError {
418    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
419        match self {
420            Self::DependencyTimeoutException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
421            Self::DisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::DryRunOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::InvalidGrantTokenException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::InvalidKeyUsageException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::KeyUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
426            Self::KmsInternalException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
427            Self::KmsInvalidSignatureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::KmsInvalidStateException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
429            Self::NotFoundException(_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 VerifyError {
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::verify::VerifyError {
446    fn request_id(&self) -> Option<&str> {
447        self.meta().request_id()
448    }
449}
450
451pub use crate::operation::verify::_verify_output::VerifyOutput;
452
453pub use crate::operation::verify::_verify_input::VerifyInput;
454
455mod _verify_input;
456
457mod _verify_output;
458
459/// Builders
460pub mod builders;