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            #[allow(clippy::uninlined_format_args)]
185            fn uri_base(
186                _input: &crate::operation::create_game_session::CreateGameSessionInput,
187                output: &mut ::std::string::String,
188            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
189                use ::std::fmt::Write as _;
190                ::std::write!(output, "/").expect("formatting should succeed");
191                ::std::result::Result::Ok(())
192            }
193            #[allow(clippy::unnecessary_wraps)]
194            fn update_http_builder(
195                input: &crate::operation::create_game_session::CreateGameSessionInput,
196                builder: ::http::request::Builder,
197            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
198                let mut uri = ::std::string::String::new();
199                uri_base(input, &mut uri)?;
200                ::std::result::Result::Ok(builder.method("POST").uri(uri))
201            }
202            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
203            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/x-amz-json-1.1");
204            builder = _header_serialization_settings.set_default_header(
205                builder,
206                ::http::header::HeaderName::from_static("x-amz-target"),
207                "GameLift.CreateGameSession",
208            );
209            builder
210        };
211        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_game_session::ser_create_game_session_input(&input)?);
212        if let Some(content_length) = body.content_length() {
213            let content_length = content_length.to_string();
214            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
215        }
216        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
217    }
218}
219#[derive(Debug)]
220struct CreateGameSessionEndpointParamsInterceptor;
221
222impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateGameSessionEndpointParamsInterceptor {
223    fn name(&self) -> &'static str {
224        "CreateGameSessionEndpointParamsInterceptor"
225    }
226
227    fn read_before_execution(
228        &self,
229        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
230            '_,
231            ::aws_smithy_runtime_api::client::interceptors::context::Input,
232            ::aws_smithy_runtime_api::client::interceptors::context::Output,
233            ::aws_smithy_runtime_api::client::interceptors::context::Error,
234        >,
235        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
236    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
237        let _input = context
238            .input()
239            .downcast_ref::<CreateGameSessionInput>()
240            .ok_or("failed to downcast to CreateGameSessionInput")?;
241
242        let params = crate::config::endpoint::Params::builder()
243            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
244            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
245            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
246            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
247            .build()
248            .map_err(|err| {
249                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
250            })?;
251        cfg.interceptor_state()
252            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
253        ::std::result::Result::Ok(())
254    }
255}
256
257// The get_* functions below are generated from JMESPath expressions in the
258// operationContextParams trait. They target the operation's input shape.
259
260/// Error type for the `CreateGameSessionError` operation.
261#[non_exhaustive]
262#[derive(::std::fmt::Debug)]
263pub enum CreateGameSessionError {
264    /// <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>
265    /// <p></p>
266    ConflictException(crate::types::error::ConflictException),
267    /// <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>
268    FleetCapacityExceededException(crate::types::error::FleetCapacityExceededException),
269    /// <p>A game session with this custom ID string already exists in this fleet. Resolve this conflict before retrying this request.</p>
270    IdempotentParameterMismatchException(crate::types::error::IdempotentParameterMismatchException),
271    /// <p>The service encountered an unrecoverable internal failure while processing the request. Clients can retry such requests immediately or after a waiting period.</p>
272    InternalServiceException(crate::types::error::InternalServiceException),
273    /// <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>
274    InvalidFleetStatusException(crate::types::error::InvalidFleetStatusException),
275    /// <p>One or more parameter values in the request are invalid. Correct the invalid parameter values before retrying.</p>
276    InvalidRequestException(crate::types::error::InvalidRequestException),
277    /// <p>The requested operation would cause the resource to exceed the allowed service limit. Resolve the issue before retrying.</p>
278    LimitExceededException(crate::types::error::LimitExceededException),
279    /// <p>The requested resources was not found. The resource was either not created yet or deleted.</p>
280    NotFoundException(crate::types::error::NotFoundException),
281    /// <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>
282    TerminalRoutingStrategyException(crate::types::error::TerminalRoutingStrategyException),
283    /// <p>The client failed authentication. Clients should not retry such requests.</p>
284    UnauthorizedException(crate::types::error::UnauthorizedException),
285    /// <p>The requested operation is not supported in the Region specified.</p>
286    UnsupportedRegionException(crate::types::error::UnsupportedRegionException),
287    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
288    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
289    variable wildcard pattern and check `.code()`:
290     \
291    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
292     \
293    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateGameSessionError) for what information is available for the error.")]
294    Unhandled(crate::error::sealed_unhandled::Unhandled),
295}
296impl CreateGameSessionError {
297    /// Creates the `CreateGameSessionError::Unhandled` variant from any error type.
298    pub fn unhandled(
299        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
300    ) -> Self {
301        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
302            source: err.into(),
303            meta: ::std::default::Default::default(),
304        })
305    }
306
307    /// Creates the `CreateGameSessionError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
308    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
309        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
310            source: err.clone().into(),
311            meta: err,
312        })
313    }
314    ///
315    /// Returns error metadata, which includes the error code, message,
316    /// request ID, and potentially additional information.
317    ///
318    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
319        match self {
320            Self::ConflictException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
321            Self::FleetCapacityExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
322            Self::IdempotentParameterMismatchException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
323            Self::InternalServiceException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
324            Self::InvalidFleetStatusException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
325            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
326            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
327            Self::NotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
328            Self::TerminalRoutingStrategyException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
329            Self::UnauthorizedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
330            Self::UnsupportedRegionException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
331            Self::Unhandled(e) => &e.meta,
332        }
333    }
334    /// Returns `true` if the error kind is `CreateGameSessionError::ConflictException`.
335    pub fn is_conflict_exception(&self) -> bool {
336        matches!(self, Self::ConflictException(_))
337    }
338    /// Returns `true` if the error kind is `CreateGameSessionError::FleetCapacityExceededException`.
339    pub fn is_fleet_capacity_exceeded_exception(&self) -> bool {
340        matches!(self, Self::FleetCapacityExceededException(_))
341    }
342    /// Returns `true` if the error kind is `CreateGameSessionError::IdempotentParameterMismatchException`.
343    pub fn is_idempotent_parameter_mismatch_exception(&self) -> bool {
344        matches!(self, Self::IdempotentParameterMismatchException(_))
345    }
346    /// Returns `true` if the error kind is `CreateGameSessionError::InternalServiceException`.
347    pub fn is_internal_service_exception(&self) -> bool {
348        matches!(self, Self::InternalServiceException(_))
349    }
350    /// Returns `true` if the error kind is `CreateGameSessionError::InvalidFleetStatusException`.
351    pub fn is_invalid_fleet_status_exception(&self) -> bool {
352        matches!(self, Self::InvalidFleetStatusException(_))
353    }
354    /// Returns `true` if the error kind is `CreateGameSessionError::InvalidRequestException`.
355    pub fn is_invalid_request_exception(&self) -> bool {
356        matches!(self, Self::InvalidRequestException(_))
357    }
358    /// Returns `true` if the error kind is `CreateGameSessionError::LimitExceededException`.
359    pub fn is_limit_exceeded_exception(&self) -> bool {
360        matches!(self, Self::LimitExceededException(_))
361    }
362    /// Returns `true` if the error kind is `CreateGameSessionError::NotFoundException`.
363    pub fn is_not_found_exception(&self) -> bool {
364        matches!(self, Self::NotFoundException(_))
365    }
366    /// Returns `true` if the error kind is `CreateGameSessionError::TerminalRoutingStrategyException`.
367    pub fn is_terminal_routing_strategy_exception(&self) -> bool {
368        matches!(self, Self::TerminalRoutingStrategyException(_))
369    }
370    /// Returns `true` if the error kind is `CreateGameSessionError::UnauthorizedException`.
371    pub fn is_unauthorized_exception(&self) -> bool {
372        matches!(self, Self::UnauthorizedException(_))
373    }
374    /// Returns `true` if the error kind is `CreateGameSessionError::UnsupportedRegionException`.
375    pub fn is_unsupported_region_exception(&self) -> bool {
376        matches!(self, Self::UnsupportedRegionException(_))
377    }
378}
379impl ::std::error::Error for CreateGameSessionError {
380    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
381        match self {
382            Self::ConflictException(_inner) => ::std::option::Option::Some(_inner),
383            Self::FleetCapacityExceededException(_inner) => ::std::option::Option::Some(_inner),
384            Self::IdempotentParameterMismatchException(_inner) => ::std::option::Option::Some(_inner),
385            Self::InternalServiceException(_inner) => ::std::option::Option::Some(_inner),
386            Self::InvalidFleetStatusException(_inner) => ::std::option::Option::Some(_inner),
387            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
388            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
389            Self::NotFoundException(_inner) => ::std::option::Option::Some(_inner),
390            Self::TerminalRoutingStrategyException(_inner) => ::std::option::Option::Some(_inner),
391            Self::UnauthorizedException(_inner) => ::std::option::Option::Some(_inner),
392            Self::UnsupportedRegionException(_inner) => ::std::option::Option::Some(_inner),
393            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
394        }
395    }
396}
397impl ::std::fmt::Display for CreateGameSessionError {
398    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
399        match self {
400            Self::ConflictException(_inner) => _inner.fmt(f),
401            Self::FleetCapacityExceededException(_inner) => _inner.fmt(f),
402            Self::IdempotentParameterMismatchException(_inner) => _inner.fmt(f),
403            Self::InternalServiceException(_inner) => _inner.fmt(f),
404            Self::InvalidFleetStatusException(_inner) => _inner.fmt(f),
405            Self::InvalidRequestException(_inner) => _inner.fmt(f),
406            Self::LimitExceededException(_inner) => _inner.fmt(f),
407            Self::NotFoundException(_inner) => _inner.fmt(f),
408            Self::TerminalRoutingStrategyException(_inner) => _inner.fmt(f),
409            Self::UnauthorizedException(_inner) => _inner.fmt(f),
410            Self::UnsupportedRegionException(_inner) => _inner.fmt(f),
411            Self::Unhandled(_inner) => {
412                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
413                    write!(f, "unhandled error ({code})")
414                } else {
415                    f.write_str("unhandled error")
416                }
417            }
418        }
419    }
420}
421impl ::aws_smithy_types::retry::ProvideErrorKind for CreateGameSessionError {
422    fn code(&self) -> ::std::option::Option<&str> {
423        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
424    }
425    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
426        ::std::option::Option::None
427    }
428}
429impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateGameSessionError {
430    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
431        match self {
432            Self::ConflictException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
433            Self::FleetCapacityExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
434            Self::IdempotentParameterMismatchException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
435            Self::InternalServiceException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
436            Self::InvalidFleetStatusException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
437            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
438            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
439            Self::NotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
440            Self::TerminalRoutingStrategyException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
441            Self::UnauthorizedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
442            Self::UnsupportedRegionException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
443            Self::Unhandled(_inner) => &_inner.meta,
444        }
445    }
446}
447impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateGameSessionError {
448    fn create_unhandled_error(
449        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
450        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
451    ) -> Self {
452        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
453            source,
454            meta: meta.unwrap_or_default(),
455        })
456    }
457}
458impl ::aws_types::request_id::RequestId for crate::operation::create_game_session::CreateGameSessionError {
459    fn request_id(&self) -> Option<&str> {
460        self.meta().request_id()
461    }
462}
463
464pub use crate::operation::create_game_session::_create_game_session_output::CreateGameSessionOutput;
465
466pub use crate::operation::create_game_session::_create_game_session_input::CreateGameSessionInput;
467
468mod _create_game_session_input;
469
470mod _create_game_session_output;
471
472/// Builders
473pub mod builders;