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            #[allow(clippy::uninlined_format_args)]
171            fn uri_base(
172                _input: &crate::operation::verify::VerifyInput,
173                output: &mut ::std::string::String,
174            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
175                use ::std::fmt::Write as _;
176                ::std::write!(output, "/").expect("formatting should succeed");
177                ::std::result::Result::Ok(())
178            }
179            #[allow(clippy::unnecessary_wraps)]
180            fn update_http_builder(
181                input: &crate::operation::verify::VerifyInput,
182                builder: ::http::request::Builder,
183            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
184                let mut uri = ::std::string::String::new();
185                uri_base(input, &mut uri)?;
186                ::std::result::Result::Ok(builder.method("POST").uri(uri))
187            }
188            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
189            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.1");
190            builder = _header_serialization_settings.set_default_header(
191                builder,
192                ::http::header::HeaderName::from_static("x-amz-target"),
193                "TrentService.Verify",
194            );
195            builder
196        };
197        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_verify::ser_verify_input(&input)?);
198        if let Some(content_length) = body.content_length() {
199            let content_length = content_length.to_string();
200            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
201        }
202        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
203    }
204}
205#[derive(Debug)]
206struct VerifyEndpointParamsInterceptor;
207
208impl ::aws_smithy_runtime_api::client::interceptors::Intercept for VerifyEndpointParamsInterceptor {
209    fn name(&self) -> &'static str {
210        "VerifyEndpointParamsInterceptor"
211    }
212
213    fn read_before_execution(
214        &self,
215        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
216            '_,
217            ::aws_smithy_runtime_api::client::interceptors::context::Input,
218            ::aws_smithy_runtime_api::client::interceptors::context::Output,
219            ::aws_smithy_runtime_api::client::interceptors::context::Error,
220        >,
221        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
222    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
223        let _input = context.input().downcast_ref::<VerifyInput>().ok_or("failed to downcast to VerifyInput")?;
224
225        let params = crate::config::endpoint::Params::builder()
226            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
227            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
228            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
229            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
230            .build()
231            .map_err(|err| {
232                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
233            })?;
234        cfg.interceptor_state()
235            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
236        ::std::result::Result::Ok(())
237    }
238}
239
240// The get_* functions below are generated from JMESPath expressions in the
241// operationContextParams trait. They target the operation's input shape.
242
243/// Error type for the `VerifyError` operation.
244#[non_exhaustive]
245#[derive(::std::fmt::Debug)]
246pub enum VerifyError {
247    /// <p>The system timed out while trying to fulfill the request. You can retry the request.</p>
248    DependencyTimeoutException(crate::types::error::DependencyTimeoutException),
249    /// <p>The request was rejected because the specified KMS key is not enabled.</p>
250    DisabledException(crate::types::error::DisabledException),
251    /// <p>The request was rejected because the DryRun parameter was specified.</p>
252    DryRunOperationException(crate::types::error::DryRunOperationException),
253    /// <p>The request was rejected because the specified grant token is not valid.</p>
254    InvalidGrantTokenException(crate::types::error::InvalidGrantTokenException),
255    /// <p>The request was rejected for one of the following reasons:</p>
256    /// <ul>
257    /// <li>
258    /// <p>The <code>KeyUsage</code> value of the KMS key is incompatible with the API operation.</p></li>
259    /// <li>
260    /// <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>
261    /// </ul>
262    /// <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>
263    /// <p>To find the encryption or signing algorithms supported for a particular KMS key, use the <code>DescribeKey</code> operation.</p>
264    InvalidKeyUsageException(crate::types::error::InvalidKeyUsageException),
265    /// <p>The request was rejected because the specified KMS key was not available. You can retry the request.</p>
266    KeyUnavailableException(crate::types::error::KeyUnavailableException),
267    /// <p>The request was rejected because an internal exception occurred. The request can be retried.</p>
268    KmsInternalException(crate::types::error::KmsInternalException),
269    /// <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>
270    KmsInvalidSignatureException(crate::types::error::KmsInvalidSignatureException),
271    /// <p>The request was rejected because the state of the specified resource is not valid for this request.</p>
272    /// <p>This exceptions means one of the following:</p>
273    /// <ul>
274    /// <li>
275    /// <p>The key state of the KMS key is not compatible with the operation.</p>
276    /// <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>
277    /// <li>
278    /// <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>
279    /// </ul>
280    KmsInvalidStateException(crate::types::error::KmsInvalidStateException),
281    /// <p>The request was rejected because the specified entity or resource could not be found.</p>
282    NotFoundException(crate::types::error::NotFoundException),
283    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
284    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
285    variable wildcard pattern and check `.code()`:
286     \
287    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
288     \
289    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-VerifyError) for what information is available for the error.")]
290    Unhandled(crate::error::sealed_unhandled::Unhandled),
291}
292impl VerifyError {
293    /// Creates the `VerifyError::Unhandled` variant from any error type.
294    pub fn unhandled(
295        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
296    ) -> Self {
297        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
298            source: err.into(),
299            meta: ::std::default::Default::default(),
300        })
301    }
302
303    /// Creates the `VerifyError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
304    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
305        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
306            source: err.clone().into(),
307            meta: err,
308        })
309    }
310    ///
311    /// Returns error metadata, which includes the error code, message,
312    /// request ID, and potentially additional information.
313    ///
314    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
315        match self {
316            Self::DependencyTimeoutException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
317            Self::DisabledException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
318            Self::DryRunOperationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
319            Self::InvalidGrantTokenException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
320            Self::InvalidKeyUsageException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
321            Self::KeyUnavailableException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
322            Self::KmsInternalException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
323            Self::KmsInvalidSignatureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
324            Self::KmsInvalidStateException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
325            Self::NotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
326            Self::Unhandled(e) => &e.meta,
327        }
328    }
329    /// Returns `true` if the error kind is `VerifyError::DependencyTimeoutException`.
330    pub fn is_dependency_timeout_exception(&self) -> bool {
331        matches!(self, Self::DependencyTimeoutException(_))
332    }
333    /// Returns `true` if the error kind is `VerifyError::DisabledException`.
334    pub fn is_disabled_exception(&self) -> bool {
335        matches!(self, Self::DisabledException(_))
336    }
337    /// Returns `true` if the error kind is `VerifyError::DryRunOperationException`.
338    pub fn is_dry_run_operation_exception(&self) -> bool {
339        matches!(self, Self::DryRunOperationException(_))
340    }
341    /// Returns `true` if the error kind is `VerifyError::InvalidGrantTokenException`.
342    pub fn is_invalid_grant_token_exception(&self) -> bool {
343        matches!(self, Self::InvalidGrantTokenException(_))
344    }
345    /// Returns `true` if the error kind is `VerifyError::InvalidKeyUsageException`.
346    pub fn is_invalid_key_usage_exception(&self) -> bool {
347        matches!(self, Self::InvalidKeyUsageException(_))
348    }
349    /// Returns `true` if the error kind is `VerifyError::KeyUnavailableException`.
350    pub fn is_key_unavailable_exception(&self) -> bool {
351        matches!(self, Self::KeyUnavailableException(_))
352    }
353    /// Returns `true` if the error kind is `VerifyError::KmsInternalException`.
354    pub fn is_kms_internal_exception(&self) -> bool {
355        matches!(self, Self::KmsInternalException(_))
356    }
357    /// Returns `true` if the error kind is `VerifyError::KmsInvalidSignatureException`.
358    pub fn is_kms_invalid_signature_exception(&self) -> bool {
359        matches!(self, Self::KmsInvalidSignatureException(_))
360    }
361    /// Returns `true` if the error kind is `VerifyError::KmsInvalidStateException`.
362    pub fn is_kms_invalid_state_exception(&self) -> bool {
363        matches!(self, Self::KmsInvalidStateException(_))
364    }
365    /// Returns `true` if the error kind is `VerifyError::NotFoundException`.
366    pub fn is_not_found_exception(&self) -> bool {
367        matches!(self, Self::NotFoundException(_))
368    }
369}
370impl ::std::error::Error for VerifyError {
371    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
372        match self {
373            Self::DependencyTimeoutException(_inner) => ::std::option::Option::Some(_inner),
374            Self::DisabledException(_inner) => ::std::option::Option::Some(_inner),
375            Self::DryRunOperationException(_inner) => ::std::option::Option::Some(_inner),
376            Self::InvalidGrantTokenException(_inner) => ::std::option::Option::Some(_inner),
377            Self::InvalidKeyUsageException(_inner) => ::std::option::Option::Some(_inner),
378            Self::KeyUnavailableException(_inner) => ::std::option::Option::Some(_inner),
379            Self::KmsInternalException(_inner) => ::std::option::Option::Some(_inner),
380            Self::KmsInvalidSignatureException(_inner) => ::std::option::Option::Some(_inner),
381            Self::KmsInvalidStateException(_inner) => ::std::option::Option::Some(_inner),
382            Self::NotFoundException(_inner) => ::std::option::Option::Some(_inner),
383            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
384        }
385    }
386}
387impl ::std::fmt::Display for VerifyError {
388    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
389        match self {
390            Self::DependencyTimeoutException(_inner) => _inner.fmt(f),
391            Self::DisabledException(_inner) => _inner.fmt(f),
392            Self::DryRunOperationException(_inner) => _inner.fmt(f),
393            Self::InvalidGrantTokenException(_inner) => _inner.fmt(f),
394            Self::InvalidKeyUsageException(_inner) => _inner.fmt(f),
395            Self::KeyUnavailableException(_inner) => _inner.fmt(f),
396            Self::KmsInternalException(_inner) => _inner.fmt(f),
397            Self::KmsInvalidSignatureException(_inner) => _inner.fmt(f),
398            Self::KmsInvalidStateException(_inner) => _inner.fmt(f),
399            Self::NotFoundException(_inner) => _inner.fmt(f),
400            Self::Unhandled(_inner) => {
401                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
402                    write!(f, "unhandled error ({code})")
403                } else {
404                    f.write_str("unhandled error")
405                }
406            }
407        }
408    }
409}
410impl ::aws_smithy_types::retry::ProvideErrorKind for VerifyError {
411    fn code(&self) -> ::std::option::Option<&str> {
412        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
413    }
414    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
415        ::std::option::Option::None
416    }
417}
418impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for VerifyError {
419    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
420        match self {
421            Self::DependencyTimeoutException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
422            Self::DisabledException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
423            Self::DryRunOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
424            Self::InvalidGrantTokenException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
425            Self::InvalidKeyUsageException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
426            Self::KeyUnavailableException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
427            Self::KmsInternalException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
428            Self::KmsInvalidSignatureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
429            Self::KmsInvalidStateException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
430            Self::NotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
431            Self::Unhandled(_inner) => &_inner.meta,
432        }
433    }
434}
435impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for VerifyError {
436    fn create_unhandled_error(
437        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
438        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
439    ) -> Self {
440        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
441            source,
442            meta: meta.unwrap_or_default(),
443        })
444    }
445}
446impl ::aws_types::request_id::RequestId for crate::operation::verify::VerifyError {
447    fn request_id(&self) -> Option<&str> {
448        self.meta().request_id()
449    }
450}
451
452pub use crate::operation::verify::_verify_output::VerifyOutput;
453
454pub use crate::operation::verify::_verify_input::VerifyInput;
455
456mod _verify_input;
457
458mod _verify_output;
459
460/// Builders
461pub mod builders;