aws_sdk_codecatalyst/operation/
stop_dev_environment_session.rs

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