aws_sdk_iotsitewise/operation/
update_computation_model.rs

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