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