aws_sdk_iotsitewise/operation/
update_gateway_capability_configuration.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `UpdateGatewayCapabilityConfiguration`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct UpdateGatewayCapabilityConfiguration;
6impl UpdateGatewayCapabilityConfiguration {
7    /// Creates a new `UpdateGatewayCapabilityConfiguration`
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::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationInput,
14    ) -> ::std::result::Result<
15        crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationError,
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::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationError>()
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::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationOutput>()
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::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationInput,
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            "IoTSiteWise",
56            "UpdateGatewayCapabilityConfiguration",
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            "IoTSiteWise.UpdateGatewayCapabilityConfiguration",
65            "rpc.service" = "IoTSiteWise",
66            "rpc.method" = "UpdateGatewayCapabilityConfiguration",
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 UpdateGatewayCapabilityConfiguration {
94    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
95        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("UpdateGatewayCapabilityConfiguration");
96
97        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
98            UpdateGatewayCapabilityConfigurationRequestSerializer,
99        ));
100        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
101            UpdateGatewayCapabilityConfigurationResponseDeserializer,
102        ));
103
104        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
105            crate::config::auth::Params::builder()
106                .operation_name("UpdateGatewayCapabilityConfiguration")
107                .build()
108                .expect("required fields set"),
109        ));
110
111        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
112            "UpdateGatewayCapabilityConfiguration",
113            "IoTSiteWise",
114        ));
115        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
116        signing_options.double_uri_encode = true;
117        signing_options.content_sha256_header = false;
118        signing_options.normalize_uri_path = true;
119        signing_options.payload_override = None;
120
121        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
122            signing_options,
123            ..::std::default::Default::default()
124        });
125
126        ::std::option::Option::Some(cfg.freeze())
127    }
128
129    fn runtime_components(
130        &self,
131        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
132    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
133        #[allow(unused_mut)]
134        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("UpdateGatewayCapabilityConfiguration")
135            .with_interceptor(::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default())
136            .with_interceptor(UpdateGatewayCapabilityConfigurationEndpointParamsInterceptor)
137            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
138                crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationError,
139            >::new())
140            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
141                crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationError,
142            >::new())
143            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
144                crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationError,
145            >::new());
146
147        ::std::borrow::Cow::Owned(rcb)
148    }
149}
150
151#[derive(Debug)]
152struct UpdateGatewayCapabilityConfigurationResponseDeserializer;
153impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for UpdateGatewayCapabilityConfigurationResponseDeserializer {
154    fn deserialize_nonstreaming(
155        &self,
156        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
157    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
158        let (success, status) = (response.status().is_success(), response.status().as_u16());
159        let headers = response.headers();
160        let body = response.body().bytes().expect("body loaded");
161        #[allow(unused_mut)]
162        let mut force_error = false;
163        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
164        let parse_result = if !success && status != 201 || force_error {
165            crate::protocol_serde::shape_update_gateway_capability_configuration::de_update_gateway_capability_configuration_http_error(
166                status, headers, body,
167            )
168        } else {
169            crate::protocol_serde::shape_update_gateway_capability_configuration::de_update_gateway_capability_configuration_http_response(
170                status, headers, body,
171            )
172        };
173        crate::protocol_serde::type_erase_result(parse_result)
174    }
175}
176#[derive(Debug)]
177struct UpdateGatewayCapabilityConfigurationRequestSerializer;
178impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for UpdateGatewayCapabilityConfigurationRequestSerializer {
179    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
180    fn serialize_input(
181        &self,
182        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
183        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
184    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
185        let input = input
186            .downcast::<crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationInput>()
187            .expect("correct type");
188        let _header_serialization_settings = _cfg
189            .load::<crate::serialization_settings::HeaderSerializationSettings>()
190            .cloned()
191            .unwrap_or_default();
192        let mut request_builder = {
193            #[allow(clippy::uninlined_format_args)]
194            fn uri_base(
195                _input: &crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationInput,
196                output: &mut ::std::string::String,
197            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
198                use ::std::fmt::Write as _;
199                let input_1 = &_input.gateway_id;
200                let input_1 = input_1
201                    .as_ref()
202                    .ok_or_else(|| ::aws_smithy_types::error::operation::BuildError::missing_field("gateway_id", "cannot be empty or unset"))?;
203                let gateway_id = ::aws_smithy_http::label::fmt_string(input_1, ::aws_smithy_http::label::EncodingStrategy::Default);
204                if gateway_id.is_empty() {
205                    return ::std::result::Result::Err(::aws_smithy_types::error::operation::BuildError::missing_field(
206                        "gateway_id",
207                        "cannot be empty or unset",
208                    ));
209                }
210                ::std::write!(output, "/20200301/gateways/{gatewayId}/capability", gatewayId = gateway_id).expect("formatting should succeed");
211                ::std::result::Result::Ok(())
212            }
213            #[allow(clippy::unnecessary_wraps)]
214            fn update_http_builder(
215                input: &crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationInput,
216                builder: ::http::request::Builder,
217            ) -> ::std::result::Result<::http::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
218                let mut uri = ::std::string::String::new();
219                uri_base(input, &mut uri)?;
220                ::std::result::Result::Ok(builder.method("POST").uri(uri))
221            }
222            let mut builder = update_http_builder(&input, ::http::request::Builder::new())?;
223            builder = _header_serialization_settings.set_default_header(builder, ::http::header::CONTENT_TYPE, "application/json");
224            builder
225        };
226        let body = ::aws_smithy_types::body::SdkBody::from(
227            crate::protocol_serde::shape_update_gateway_capability_configuration::ser_update_gateway_capability_configuration_input(&input)?,
228        );
229        if let Some(content_length) = body.content_length() {
230            let content_length = content_length.to_string();
231            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http::header::CONTENT_LENGTH, &content_length);
232        }
233        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
234    }
235}
236#[derive(Debug)]
237struct UpdateGatewayCapabilityConfigurationEndpointParamsInterceptor;
238
239impl ::aws_smithy_runtime_api::client::interceptors::Intercept for UpdateGatewayCapabilityConfigurationEndpointParamsInterceptor {
240    fn name(&self) -> &'static str {
241        "UpdateGatewayCapabilityConfigurationEndpointParamsInterceptor"
242    }
243
244    fn read_before_execution(
245        &self,
246        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
247            '_,
248            ::aws_smithy_runtime_api::client::interceptors::context::Input,
249            ::aws_smithy_runtime_api::client::interceptors::context::Output,
250            ::aws_smithy_runtime_api::client::interceptors::context::Error,
251        >,
252        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
253    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
254        let _input = context
255            .input()
256            .downcast_ref::<UpdateGatewayCapabilityConfigurationInput>()
257            .ok_or("failed to downcast to UpdateGatewayCapabilityConfigurationInput")?;
258
259        let endpoint_prefix = ::aws_smithy_runtime_api::client::endpoint::EndpointPrefix::new("api.").map_err(|err| {
260            ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint prefix could not be built", err)
261        })?;
262        cfg.interceptor_state().store_put(endpoint_prefix);
263
264        let params = crate::config::endpoint::Params::builder()
265            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
266            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
267            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
268            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
269            .build()
270            .map_err(|err| {
271                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
272            })?;
273        cfg.interceptor_state()
274            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
275        ::std::result::Result::Ok(())
276    }
277}
278
279// The get_* functions below are generated from JMESPath expressions in the
280// operationContextParams trait. They target the operation's input shape.
281
282/// Error type for the `UpdateGatewayCapabilityConfigurationError` operation.
283#[non_exhaustive]
284#[derive(::std::fmt::Debug)]
285pub enum UpdateGatewayCapabilityConfigurationError {
286    /// <p>Your request has conflicting operations. This can occur if you're trying to perform more than one operation on the same resource at the same time.</p>
287    ConflictingOperationException(crate::types::error::ConflictingOperationException),
288    /// <p>IoT SiteWise can't process your request right now. Try again later.</p>
289    InternalFailureException(crate::types::error::InternalFailureException),
290    /// <p>The request isn't valid. This can occur if your request contains malformed JSON or unsupported characters. Check your request and try again.</p>
291    InvalidRequestException(crate::types::error::InvalidRequestException),
292    /// <p>You've reached the quota for a resource. For example, this can occur if you're trying to associate more than the allowed number of child assets or attempting to create more than the allowed number of properties for an asset model.</p>
293    /// <p>For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>.</p>
294    LimitExceededException(crate::types::error::LimitExceededException),
295    /// <p>The requested resource can't be found.</p>
296    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
297    /// <p>Your request exceeded a rate limit. For example, you might have exceeded the number of IoT SiteWise assets that can be created per second, the allowed number of messages per second, and so on.</p>
298    /// <p>For more information, see <a href="https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html">Quotas</a> in the <i>IoT SiteWise User Guide</i>.</p>
299    ThrottlingException(crate::types::error::ThrottlingException),
300    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
301    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
302    variable wildcard pattern and check `.code()`:
303     \
304    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
305     \
306    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-UpdateGatewayCapabilityConfigurationError) for what information is available for the error.")]
307    Unhandled(crate::error::sealed_unhandled::Unhandled),
308}
309impl UpdateGatewayCapabilityConfigurationError {
310    /// Creates the `UpdateGatewayCapabilityConfigurationError::Unhandled` variant from any error type.
311    pub fn unhandled(
312        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
313    ) -> Self {
314        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
315            source: err.into(),
316            meta: ::std::default::Default::default(),
317        })
318    }
319
320    /// Creates the `UpdateGatewayCapabilityConfigurationError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
321    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
322        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
323            source: err.clone().into(),
324            meta: err,
325        })
326    }
327    ///
328    /// Returns error metadata, which includes the error code, message,
329    /// request ID, and potentially additional information.
330    ///
331    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
332        match self {
333            Self::ConflictingOperationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
334            Self::InternalFailureException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
335            Self::InvalidRequestException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
336            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
337            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
338            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
339            Self::Unhandled(e) => &e.meta,
340        }
341    }
342    /// Returns `true` if the error kind is `UpdateGatewayCapabilityConfigurationError::ConflictingOperationException`.
343    pub fn is_conflicting_operation_exception(&self) -> bool {
344        matches!(self, Self::ConflictingOperationException(_))
345    }
346    /// Returns `true` if the error kind is `UpdateGatewayCapabilityConfigurationError::InternalFailureException`.
347    pub fn is_internal_failure_exception(&self) -> bool {
348        matches!(self, Self::InternalFailureException(_))
349    }
350    /// Returns `true` if the error kind is `UpdateGatewayCapabilityConfigurationError::InvalidRequestException`.
351    pub fn is_invalid_request_exception(&self) -> bool {
352        matches!(self, Self::InvalidRequestException(_))
353    }
354    /// Returns `true` if the error kind is `UpdateGatewayCapabilityConfigurationError::LimitExceededException`.
355    pub fn is_limit_exceeded_exception(&self) -> bool {
356        matches!(self, Self::LimitExceededException(_))
357    }
358    /// Returns `true` if the error kind is `UpdateGatewayCapabilityConfigurationError::ResourceNotFoundException`.
359    pub fn is_resource_not_found_exception(&self) -> bool {
360        matches!(self, Self::ResourceNotFoundException(_))
361    }
362    /// Returns `true` if the error kind is `UpdateGatewayCapabilityConfigurationError::ThrottlingException`.
363    pub fn is_throttling_exception(&self) -> bool {
364        matches!(self, Self::ThrottlingException(_))
365    }
366}
367impl ::std::error::Error for UpdateGatewayCapabilityConfigurationError {
368    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
369        match self {
370            Self::ConflictingOperationException(_inner) => ::std::option::Option::Some(_inner),
371            Self::InternalFailureException(_inner) => ::std::option::Option::Some(_inner),
372            Self::InvalidRequestException(_inner) => ::std::option::Option::Some(_inner),
373            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
374            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
375            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
376            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
377        }
378    }
379}
380impl ::std::fmt::Display for UpdateGatewayCapabilityConfigurationError {
381    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
382        match self {
383            Self::ConflictingOperationException(_inner) => _inner.fmt(f),
384            Self::InternalFailureException(_inner) => _inner.fmt(f),
385            Self::InvalidRequestException(_inner) => _inner.fmt(f),
386            Self::LimitExceededException(_inner) => _inner.fmt(f),
387            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
388            Self::ThrottlingException(_inner) => _inner.fmt(f),
389            Self::Unhandled(_inner) => {
390                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
391                    write!(f, "unhandled error ({code})")
392                } else {
393                    f.write_str("unhandled error")
394                }
395            }
396        }
397    }
398}
399impl ::aws_smithy_types::retry::ProvideErrorKind for UpdateGatewayCapabilityConfigurationError {
400    fn code(&self) -> ::std::option::Option<&str> {
401        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
402    }
403    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
404        ::std::option::Option::None
405    }
406}
407impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for UpdateGatewayCapabilityConfigurationError {
408    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
409        match self {
410            Self::ConflictingOperationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
411            Self::InternalFailureException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
412            Self::InvalidRequestException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
413            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
414            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
415            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
416            Self::Unhandled(_inner) => &_inner.meta,
417        }
418    }
419}
420impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for UpdateGatewayCapabilityConfigurationError {
421    fn create_unhandled_error(
422        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
423        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
424    ) -> Self {
425        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
426            source,
427            meta: meta.unwrap_or_default(),
428        })
429    }
430}
431impl ::aws_types::request_id::RequestId for crate::operation::update_gateway_capability_configuration::UpdateGatewayCapabilityConfigurationError {
432    fn request_id(&self) -> Option<&str> {
433        self.meta().request_id()
434    }
435}
436
437pub use crate::operation::update_gateway_capability_configuration::_update_gateway_capability_configuration_output::UpdateGatewayCapabilityConfigurationOutput;
438
439pub use crate::operation::update_gateway_capability_configuration::_update_gateway_capability_configuration_input::UpdateGatewayCapabilityConfigurationInput;
440
441mod _update_gateway_capability_configuration_input;
442
443mod _update_gateway_capability_configuration_output;
444
445/// Builders
446pub mod builders;