aws_sdk_codecatalyst/operation/
start_workflow_run.rs

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