Skip to main content

aws_sdk_codecatalyst/operation/
list_dev_environment_sessions.rs

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