Skip to main content

aws_sdk_codecatalyst/operation/
verify_session.rs

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