aws_sdk_gamelift/operation/
create_game_session.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateGameSession`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateGameSession;
6impl CreateGameSession {
7    /// Creates a new `CreateGameSession`
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::create_game_session::CreateGameSessionInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_game_session::CreateGameSessionOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_game_session::CreateGameSessionError,
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::create_game_session::CreateGameSessionError>()
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::create_game_session::CreateGameSessionOutput>()
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::create_game_session::CreateGameSessionInput,
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("GameLift", "CreateGameSession", 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                "GameLift.CreateGameSession",
59                "rpc.service" = "GameLift",
60                "rpc.method" = "CreateGameSession",
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 CreateGameSession {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateGameSession");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            CreateGameSessionRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            CreateGameSessionResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("CreateGameSession")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
106        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
107            "CreateGameSession",
108            "GameLift",
109        ));
110        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
111        signing_options.double_uri_encode = true;
112        signing_options.content_sha256_header = false;
113        signing_options.normalize_uri_path = true;
114        signing_options.payload_override = None;
115
116        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
117            signing_options,
118            ..::std::default::Default::default()
119        });
120
121        ::std::option::Option::Some(cfg.freeze())
122    }
123
124    fn runtime_components(
125        &self,
126        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
127    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
128        #[allow(unused_mut)]
129        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateGameSession")
130            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
131            .with_interceptor(CreateGameSessionEndpointParamsInterceptor)
132            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
133                crate::operation::create_game_session::CreateGameSessionError,
134            >::new())
135            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
136                crate::operation::create_game_session::CreateGameSessionError,
137            >::new())
138            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
139                crate::operation::create_game_session::CreateGameSessionError,
140            >::new());
141
142        ::std::borrow::Cow::Owned(rcb)
143    }
144}
145
146#[derive(Debug)]
147struct CreateGameSessionResponseDeserializer;
148impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateGameSessionResponseDeserializer {
149    fn deserialize_nonstreaming(
150        &self,
151        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
152    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
153        let (success, status) = (response.status().is_success(), response.status().as_u16());
154        let headers = response.headers();
155        let body = response.body().bytes().expect("body loaded");
156        #[allow(unused_mut)]
157        let mut force_error = false;
158        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
159        let parse_result = if !success && status != 200 || force_error {
160            crate::protocol_serde::shape_create_game_session::de_create_game_session_http_error(status, headers, body)
161        } else {
162            crate::protocol_serde::shape_create_game_session::de_create_game_session_http_response(status, headers, body)
163        };
164        crate::protocol_serde::type_erase_result(parse_result)
165    }
166}
167#[derive(Debug)]
168struct CreateGameSessionRequestSerializer;
169impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateGameSessionRequestSerializer {
170    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
171    fn serialize_input(
172        &self,
173        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
174        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
175    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
176        let input = input
177            .downcast::<crate::operation::create_game_session::CreateGameSessionInput>()
178            .expect("correct type");
179        let _header_serialization_settings = _cfg
180            .load::<crate::serialization_settings::HeaderSerializationSettings>()
181            .cloned()
182            .unwrap_or_default();
183        let mut request_builder = {
184            fn uri_base(
185                _input: &crate::operation::create_game_session::CreateGameSessionInput,
186                output: &mut ::std::string::String,
187            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
188                use ::std::fmt::Write as _;
189                ::std::write!(output, "/").expect("formatting should succeed");
190                ::std::result::Result::Ok(())
191            }
192            #[allow(clippy::unnecessary_wraps)]
193            fn update_http_builder(
194                input: &crate::operation::create_game_session::CreateGameSessionInput,
195                builder: ::http::request::Builder,
196            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
197                let mut uri = ::std::string::String::new();
198                uri_base(input, &mut uri)?;
199                ::std::result::Result::Ok(builder.method("POST").uri(uri))
200            }
201            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
202            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.1");
203            builder = _header_serialization_settings.set_default_header(
204                builder,
205                ::http::header::HeaderName::from_static("x-amz-target"),
206                "GameLift.CreateGameSession",
207            );
208            builder
209        };
210        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_game_session::ser_create_game_session_input(&input)?);
211        if let Some(content_length) = body.content_length() {
212            let content_length = content_length.to_string();
213            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
214        }
215        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
216    }
217}
218#[derive(Debug)]
219struct CreateGameSessionEndpointParamsInterceptor;
220
221impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateGameSessionEndpointParamsInterceptor {
222    fn name(&self) -> &'static str {
223        "CreateGameSessionEndpointParamsInterceptor"
224    }
225
226    fn read_before_execution(
227        &self,
228        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
229            '_,
230            ::aws_smithy_runtime_api::client::interceptors::context::Input,
231            ::aws_smithy_runtime_api::client::interceptors::context::Output,
232            ::aws_smithy_runtime_api::client::interceptors::context::Error,
233        >,
234        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
235    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
236        let _input = context
237            .input()
238            .downcast_ref::<CreateGameSessionInput>()
239            .ok_or("failed to downcast to CreateGameSessionInput")?;
240
241        let params = crate::config::endpoint::Params::builder()
242            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
243            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
244            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
245            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
246            .build()
247            .map_err(|err| {
248                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
249            })?;
250        cfg.interceptor_state()
251            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
252        ::std::result::Result::Ok(())
253    }
254}
255
256// The get_* functions below are generated from JMESPath expressions in the
257// operationContextParams trait. They target the operation's input shape.
258
259/// Error type for the `CreateGameSessionError` operation.
260#[non_exhaustive]
261#[derive(::std::fmt::Debug)]
262pub enum CreateGameSessionError {
263    /// <p>The requested operation would cause a conflict with the current state of a service resource associated with the request. Resolve the conflict before retrying this request.</p>
264    /// <p></p>
265    ConflictException(crate::types::error::ConflictException),
266    /// <p>The specified fleet has no available instances to fulfill a <code>CreateGameSession</code> request. Clients can retry such requests immediately or after a waiting period.</p>
267    FleetCapacityExceededException(crate::types::error::FleetCapacityExceededException),
268    /// <p>A game session with this custom ID string already exists in this fleet. Resolve this conflict before retrying this request.</p>
269    IdempotentParameterMismatchException(crate::types::error::IdempotentParameterMismatchException),
270    /// <p>The service encountered an unrecoverable internal failure while processing the request. Clients can retry such requests immediately or after a waiting period.</p>
271    InternalServiceException(crate::types::error::InternalServiceException),
272    /// <p>The requested operation would cause a conflict with the current state of a resource associated with the request and/or the fleet. Resolve the conflict before retrying.</p>
273    InvalidFleetStatusException(crate::types::error::InvalidFleetStatusException),
274    /// <p>One or more parameter values in the request are invalid. Correct the invalid parameter values before retrying.</p>
275    InvalidRequestException(crate::types::error::InvalidRequestException),
276    /// <p>The requested operation would cause the resource to exceed the allowed service limit. Resolve the issue before retrying.</p>
277    LimitExceededException(crate::types::error::LimitExceededException),
278    /// <p>The requested resources was not found. The resource was either not created yet or deleted.</p>
279    NotFoundException(crate::types::error::NotFoundException),
280    /// <p>The service is unable to resolve the routing for a particular alias because it has a terminal <code>RoutingStrategy</code> associated with it. The message returned in this exception is the message defined in the routing strategy itself. Such requests should only be retried if the routing strategy for the specified alias is modified.</p>
281    TerminalRoutingStrategyException(crate::types::error::TerminalRoutingStrategyException),
282    /// <p>The client failed authentication. Clients should not retry such requests.</p>
283    UnauthorizedException(crate::types::error::UnauthorizedException),
284    /// <p>The requested operation is not supported in the Region specified.</p>
285    UnsupportedRegionException(crate::types::error::UnsupportedRegionException),
286    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
287    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
288    variable wildcard pattern and check `.code()`:
289     \
290    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
291     \
292    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateGameSessionError) for what information is available for the error.")]
293    Unhandled(crate::error::sealed_unhandled::Unhandled),
294}
295impl CreateGameSessionError {
296    /// Creates the `CreateGameSessionError::Unhandled` variant from any error type.
297    pub fn unhandled(
298        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
299    ) -> Self {
300        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
301            source: err.into(),
302            meta: ::std::default::Default::default(),
303        })
304    }
305
306    /// Creates the `CreateGameSessionError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
307    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
308        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
309            source: err.clone().into(),
310            meta: err,
311        })
312    }
313    ///
314    /// Returns error metadata, which includes the error code, message,
315    /// request ID, and potentially additional information.
316    ///
317    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
318        match self {
319            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
320            Self::FleetCapacityExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
321            Self::IdempotentParameterMismatchException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
322            Self::InternalServiceException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
323            Self::InvalidFleetStatusException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
324            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
325            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
326            Self::NotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
327            Self::TerminalRoutingStrategyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
328            Self::UnauthorizedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
329            Self::UnsupportedRegionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::Unhandled(e) => &e.meta,
331        }
332    }
333    /// Returns `true` if the error kind is `CreateGameSessionError::ConflictException`.
334    pub fn is_conflict_exception(&self) -> bool {
335        matches!(self, Self::ConflictException(_))
336    }
337    /// Returns `true` if the error kind is `CreateGameSessionError::FleetCapacityExceededException`.
338    pub fn is_fleet_capacity_exceeded_exception(&self) -> bool {
339        matches!(self, Self::FleetCapacityExceededException(_))
340    }
341    /// Returns `true` if the error kind is `CreateGameSessionError::IdempotentParameterMismatchException`.
342    pub fn is_idempotent_parameter_mismatch_exception(&self) -> bool {
343        matches!(self, Self::IdempotentParameterMismatchException(_))
344    }
345    /// Returns `true` if the error kind is `CreateGameSessionError::InternalServiceException`.
346    pub fn is_internal_service_exception(&self) -> bool {
347        matches!(self, Self::InternalServiceException(_))
348    }
349    /// Returns `true` if the error kind is `CreateGameSessionError::InvalidFleetStatusException`.
350    pub fn is_invalid_fleet_status_exception(&self) -> bool {
351        matches!(self, Self::InvalidFleetStatusException(_))
352    }
353    /// Returns `true` if the error kind is `CreateGameSessionError::InvalidRequestException`.
354    pub fn is_invalid_request_exception(&self) -> bool {
355        matches!(self, Self::InvalidRequestException(_))
356    }
357    /// Returns `true` if the error kind is `CreateGameSessionError::LimitExceededException`.
358    pub fn is_limit_exceeded_exception(&self) -> bool {
359        matches!(self, Self::LimitExceededException(_))
360    }
361    /// Returns `true` if the error kind is `CreateGameSessionError::NotFoundException`.
362    pub fn is_not_found_exception(&self) -> bool {
363        matches!(self, Self::NotFoundException(_))
364    }
365    /// Returns `true` if the error kind is `CreateGameSessionError::TerminalRoutingStrategyException`.
366    pub fn is_terminal_routing_strategy_exception(&self) -> bool {
367        matches!(self, Self::TerminalRoutingStrategyException(_))
368    }
369    /// Returns `true` if the error kind is `CreateGameSessionError::UnauthorizedException`.
370    pub fn is_unauthorized_exception(&self) -> bool {
371        matches!(self, Self::UnauthorizedException(_))
372    }
373    /// Returns `true` if the error kind is `CreateGameSessionError::UnsupportedRegionException`.
374    pub fn is_unsupported_region_exception(&self) -> bool {
375        matches!(self, Self::UnsupportedRegionException(_))
376    }
377}
378impl ::std::error::Error for CreateGameSessionError {
379    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
380        match self {
381            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
382            Self::FleetCapacityExceededException(_inner) => ::std::option::Option::Some(_inner),
383            Self::IdempotentParameterMismatchException(_inner) => ::std::option::Option::Some(_inner),
384            Self::InternalServiceException(_inner) => ::std::option::Option::Some(_inner),
385            Self::InvalidFleetStatusException(_inner) => ::std::option::Option::Some(_inner),
386            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
387            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
388            Self::NotFoundException(_inner) => ::std::option::Option::Some(_inner),
389            Self::TerminalRoutingStrategyException(_inner) => ::std::option::Option::Some(_inner),
390            Self::UnauthorizedException(_inner) => ::std::option::Option::Some(_inner),
391            Self::UnsupportedRegionException(_inner) => ::std::option::Option::Some(_inner),
392            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
393        }
394    }
395}
396impl ::std::fmt::Display for CreateGameSessionError {
397    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
398        match self {
399            Self::ConflictException(_inner) => _inner.fmt(f),
400            Self::FleetCapacityExceededException(_inner) => _inner.fmt(f),
401            Self::IdempotentParameterMismatchException(_inner) => _inner.fmt(f),
402            Self::InternalServiceException(_inner) => _inner.fmt(f),
403            Self::InvalidFleetStatusException(_inner) => _inner.fmt(f),
404            Self::InvalidRequestException(_inner) => _inner.fmt(f),
405            Self::LimitExceededException(_inner) => _inner.fmt(f),
406            Self::NotFoundException(_inner) => _inner.fmt(f),
407            Self::TerminalRoutingStrategyException(_inner) => _inner.fmt(f),
408            Self::UnauthorizedException(_inner) => _inner.fmt(f),
409            Self::UnsupportedRegionException(_inner) => _inner.fmt(f),
410            Self::Unhandled(_inner) => {
411                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
412                    write!(f, "unhandled error ({code})")
413                } else {
414                    f.write_str("unhandled error")
415                }
416            }
417        }
418    }
419}
420impl ::aws_smithy_types::retry::ProvideErrorKind for CreateGameSessionError {
421    fn code(&self) -> ::std::option::Option<&str> {
422        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
423    }
424    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
425        ::std::option::Option::None
426    }
427}
428impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateGameSessionError {
429    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
430        match self {
431            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
432            Self::FleetCapacityExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
433            Self::IdempotentParameterMismatchException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
434            Self::InternalServiceException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
435            Self::InvalidFleetStatusException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
436            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
437            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
438            Self::NotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
439            Self::TerminalRoutingStrategyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
440            Self::UnauthorizedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
441            Self::UnsupportedRegionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
442            Self::Unhandled(_inner) => &_inner.meta,
443        }
444    }
445}
446impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateGameSessionError {
447    fn create_unhandled_error(
448        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
449        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
450    ) -> Self {
451        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
452            source,
453            meta: meta.unwrap_or_default(),
454        })
455    }
456}
457impl ::aws_types::request_id::RequestId for crate::operation::create_game_session::CreateGameSessionError {
458    fn request_id(&self) -> Option<&str> {
459        self.meta().request_id()
460    }
461}
462
463pub use crate::operation::create_game_session::_create_game_session_output::CreateGameSessionOutput;
464
465pub use crate::operation::create_game_session::_create_game_session_input::CreateGameSessionInput;
466
467mod _create_game_session_input;
468
469mod _create_game_session_output;
470
471/// Builders
472pub mod builders;