Skip to main content

aws_sdk_eventbridgev2/operation/
create_event_source.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateEventSource`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateEventSource;
6impl CreateEventSource {
7    /// Creates a new `CreateEventSource`
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_event_source::CreateEventSourceInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_event_source::CreateEventSourceOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_event_source::CreateEventSourceError,
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_event_source::CreateEventSourceError>()
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_event_source::CreateEventSourceOutput>()
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_event_source::CreateEventSourceInput,
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("EventBridgeV2", "CreateEventSource", 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                "EventBridgeV2.CreateEventSource",
59                "rpc.service" = "EventBridgeV2",
60                "rpc.method" = "CreateEventSource",
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.with_operation_plugin(crate::client_idempotency_token::IdempotencyTokenRuntimePlugin::new(
74            |token_provider, input| {
75                let input: &mut crate::operation::create_event_source::CreateEventSourceInput = input.downcast_mut().expect("correct type");
76                if input.client_token.is_none() {
77                    input.client_token = ::std::option::Option::Some(token_provider.make_idempotency_token());
78                }
79            },
80        ));
81        if let ::std::option::Option::Some(config_override) = config_override {
82            for plugin in config_override.runtime_plugins.iter().cloned() {
83                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
84            }
85            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
86                config_override,
87                client_config.config.clone(),
88                &client_config.runtime_components,
89            ));
90        }
91        runtime_plugins
92    }
93}
94impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateEventSource {
95    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
96        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateEventSource");
97
98        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
99            CreateEventSourceRequestSerializer,
100        ));
101        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
102            CreateEventSourceResponseDeserializer,
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
106            crate::config::auth::Params::builder()
107                .operation_name("CreateEventSource")
108                .build()
109                .expect("required fields set"),
110        ));
111
112        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new(
113            "CreateEventSource",
114            "EventBridgeV2",
115        ));
116        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
117        signing_options.double_uri_encode = true;
118        signing_options.content_sha256_header = false;
119        signing_options.normalize_uri_path = true;
120        signing_options.payload_override = None;
121
122        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
123            signing_options,
124            ..::std::default::Default::default()
125        });
126
127        ::std::option::Option::Some(cfg.freeze())
128    }
129
130    fn runtime_components(
131        &self,
132        _: &::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder,
133    ) -> ::std::borrow::Cow<'_, ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder> {
134        #[allow(unused_mut)]
135        let mut rcb = ::aws_smithy_runtime_api::client::runtime_components::RuntimeComponentsBuilder::new("CreateEventSource")
136            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
137                CreateEventSourceTelemetryInputCaptureInterceptor,
138            ))
139            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
140                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
141            ))
142            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
143                CreateEventSourceEndpointParamsInterceptor,
144            ))
145            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
146                crate::operation::create_event_source::CreateEventSourceError,
147            >::new())
148            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
149                crate::operation::create_event_source::CreateEventSourceError,
150            >::new())
151            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
152                crate::operation::create_event_source::CreateEventSourceError,
153            >::new())
154            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
155                crate::operation::create_event_source::CreateEventSourceError,
156            >::new());
157
158        ::std::borrow::Cow::Owned(rcb)
159    }
160}
161
162#[derive(Debug)]
163struct CreateEventSourceTelemetryInputCaptureInterceptor;
164
165#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
166impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateEventSourceTelemetryInputCaptureInterceptor {
167    fn name(&self) -> &'static str {
168        "CreateEventSourceTelemetryInputCaptureInterceptor"
169    }
170
171    fn read_before_execution(
172        &self,
173        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
174            '_,
175            ::aws_smithy_runtime_api::client::interceptors::context::Input,
176            ::aws_smithy_runtime_api::client::interceptors::context::Output,
177            ::aws_smithy_runtime_api::client::interceptors::context::Error,
178        >,
179        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
180    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
181        // Nothing to do unless the customer opted in by naming members to record.
182        let ::std::option::Option::Some(requested) = cfg
183            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
184            .filter(|r| !r.is_empty())
185        else {
186            return ::std::result::Result::Ok(());
187        };
188
189        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateEventSourceInput>() else {
190            // A mismatched input is not this interceptor's concern; skip quietly.
191            return ::std::result::Result::Ok(());
192        };
193
194        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
195        if requested.should_capture("Name") {
196            if let ::std::option::Option::Some(value) = input.name.as_deref() {
197                captured.insert("Name", value);
198            }
199        }
200        if requested.should_capture("EventBusArn") {
201            if let ::std::option::Option::Some(value) = input.event_bus_arn.as_deref() {
202                captured.insert("EventBusArn", value);
203            }
204        }
205        if requested.should_capture("Description") {
206            if let ::std::option::Option::Some(value) = input.description.as_deref() {
207                captured.insert("Description", value);
208            }
209        }
210        if requested.should_capture("ClientToken") {
211            if let ::std::option::Option::Some(value) = input.client_token.as_deref() {
212                captured.insert("ClientToken", value);
213            }
214        }
215
216        cfg.interceptor_state().store_put(captured);
217        ::std::result::Result::Ok(())
218    }
219}
220#[derive(Debug)]
221struct CreateEventSourceResponseDeserializer;
222impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateEventSourceResponseDeserializer {
223    fn deserialize_nonstreaming_with_config(
224        &self,
225        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
226        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
227    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
228        let (success, status) = (response.status().is_success(), response.status().as_u16());
229        let headers = response.headers();
230        let body = response.body().bytes().expect("body loaded");
231        #[allow(unused_mut)]
232        let mut force_error = false;
233        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
234        let parse_result = if !success && status != 200 || force_error {
235            crate::protocol_serde::shape_create_event_source::de_create_event_source_http_error(status, headers, body, _cfg)
236        } else {
237            crate::protocol_serde::shape_create_event_source::de_create_event_source_http_response(status, headers, body, _cfg)
238        };
239        crate::protocol_serde::type_erase_result(parse_result)
240    }
241}
242#[derive(Debug)]
243struct CreateEventSourceRequestSerializer;
244impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateEventSourceRequestSerializer {
245    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
246    fn serialize_input(
247        &self,
248        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
249        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
250    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
251        let input = input
252            .downcast::<crate::operation::create_event_source::CreateEventSourceInput>()
253            .expect("correct type");
254        let _header_serialization_settings = _cfg
255            .load::<crate::serialization_settings::HeaderSerializationSettings>()
256            .cloned()
257            .unwrap_or_default();
258        let mut request_builder = {
259            #[allow(clippy::uninlined_format_args)]
260            fn uri_base(
261                _input: &crate::operation::create_event_source::CreateEventSourceInput,
262                output: &mut ::std::string::String,
263            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
264                use ::std::fmt::Write as _;
265                ::std::write!(output, "/service/AWSEventsV2/operation/CreateEventSource").expect("formatting should succeed");
266                ::std::result::Result::Ok(())
267            }
268            #[allow(clippy::unnecessary_wraps)]
269            fn update_http_builder(
270                input: &crate::operation::create_event_source::CreateEventSourceInput,
271                builder: ::http_1x::request::Builder,
272            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
273                let mut uri = ::std::string::String::new();
274                uri_base(input, &mut uri)?;
275                ::std::result::Result::Ok(builder.method("POST").uri(uri))
276            }
277            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
278            builder = _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/cbor");
279            builder = _header_serialization_settings.set_default_header(
280                builder,
281                ::http_1x::header::HeaderName::from_static("smithy-protocol"),
282                "rpc-v2-cbor",
283            );
284            builder =
285                _header_serialization_settings.set_default_header(builder, ::http_1x::header::HeaderName::from_static("accept"), "application/cbor");
286            builder
287        };
288        let body = ::aws_smithy_types::body::SdkBody::from(crate::protocol_serde::shape_create_event_source::ser_create_event_source_input(&input)?);
289        if let Some(content_length) = body.content_length() {
290            let content_length = content_length.to_string();
291            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
292        }
293        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
294    }
295}
296#[derive(Debug)]
297struct CreateEventSourceEndpointParamsInterceptor;
298
299#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
300impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateEventSourceEndpointParamsInterceptor {
301    fn name(&self) -> &'static str {
302        "CreateEventSourceEndpointParamsInterceptor"
303    }
304
305    fn read_before_execution(
306        &self,
307        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
308            '_,
309            ::aws_smithy_runtime_api::client::interceptors::context::Input,
310            ::aws_smithy_runtime_api::client::interceptors::context::Output,
311            ::aws_smithy_runtime_api::client::interceptors::context::Error,
312        >,
313        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
314    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
315        let _input = context
316            .input()
317            .downcast_ref::<CreateEventSourceInput>()
318            .ok_or("failed to downcast to CreateEventSourceInput")?;
319
320        let params = crate::config::endpoint::Params::builder()
321            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
322            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
323            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
324            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
325            .set_event_bus_arn(Some(
326                _input
327                    .event_bus_arn
328                    .clone()
329                    .filter(|f| !AsRef::<str>::as_ref(f).trim().is_empty())
330                    .ok_or_else(|| {
331                        ::aws_smithy_types::error::operation::BuildError::missing_field("event_bus_arn", "A required field was not set")
332                    })?,
333            ))
334            .build()
335            .map_err(|err| {
336                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
337            })?;
338        cfg.interceptor_state()
339            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
340        ::std::result::Result::Ok(())
341    }
342}
343
344// The get_* functions below are generated from JMESPath expressions in the
345// operationContextParams trait. They target the operation's input shape.
346
347/// Error type for the `CreateEventSourceError` operation.
348#[non_exhaustive]
349#[derive(::std::fmt::Debug)]
350pub enum CreateEventSourceError {
351    /// Another change to the resource is already in progress. Retry the request.
352    ConcurrentModificationException(crate::types::error::ConcurrentModificationException),
353    /// The request reuses the client token of an earlier request with different parameters. Use a new client token, or resend the earlier request unchanged.
354    IdempotentParameterMismatchException(crate::types::error::IdempotentParameterMismatchException),
355    /// The resource is not in a state that allows the operation. For example, an event bus that is still being created cannot accept events.
356    InvalidStateException(crate::types::error::InvalidStateException),
357    /// The request would exceed a service quota for the account.
358    LimitExceededException(crate::types::error::LimitExceededException),
359    /// A resource with the same name already exists.
360    ResourceAlreadyExistsException(crate::types::error::ResourceAlreadyExistsException),
361    /// The resource does not exist.
362    ResourceNotFoundException(crate::types::error::ResourceNotFoundException),
363    /// The caller does not have the permissions required to perform the operation. This error is also returned when the operation cannot use the AWS KMS key for the event bus.
364    AccessDeniedException(crate::types::error::AccessDeniedException),
365    /// The request failed because of an internal service error. Retry the request.
366    InternalException(crate::types::error::InternalException),
367    /// A request parameter is missing or not valid.
368    InvalidInputException(crate::types::error::InvalidInputException),
369    /// The request was throttled because it exceeds a request rate limit. Retry the request with backoff.
370    ThrottlingException(crate::types::error::ThrottlingException),
371    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
372    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
373    variable wildcard pattern and check `.code()`:
374     \
375    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
376     \
377    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateEventSourceError) for what information is available for the error.")]
378    Unhandled(crate::error::sealed_unhandled::Unhandled),
379}
380impl CreateEventSourceError {
381    /// Creates the `CreateEventSourceError::Unhandled` variant from any error type.
382    pub fn unhandled(
383        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
384    ) -> Self {
385        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
386            source: err.into(),
387            meta: ::std::default::Default::default(),
388        })
389    }
390
391    /// Creates the `CreateEventSourceError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
392    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
393        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
394            source: err.clone().into(),
395            meta: err,
396        })
397    }
398    ///
399    /// Returns error metadata, which includes the error code, message,
400    /// request ID, and potentially additional information.
401    ///
402    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
403        match self {
404            Self::ConcurrentModificationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
405            Self::IdempotentParameterMismatchException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
406            Self::InvalidStateException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
407            Self::LimitExceededException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
408            Self::ResourceAlreadyExistsException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
409            Self::ResourceNotFoundException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
410            Self::AccessDeniedException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
411            Self::InternalException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
412            Self::InvalidInputException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
413            Self::ThrottlingException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
414            Self::Unhandled(e) => &e.meta,
415        }
416    }
417    /// Returns `true` if the error kind is `CreateEventSourceError::ConcurrentModificationException`.
418    pub fn is_concurrent_modification_exception(&self) -> bool {
419        matches!(self, Self::ConcurrentModificationException(_))
420    }
421    /// Returns `true` if the error kind is `CreateEventSourceError::IdempotentParameterMismatchException`.
422    pub fn is_idempotent_parameter_mismatch_exception(&self) -> bool {
423        matches!(self, Self::IdempotentParameterMismatchException(_))
424    }
425    /// Returns `true` if the error kind is `CreateEventSourceError::InvalidStateException`.
426    pub fn is_invalid_state_exception(&self) -> bool {
427        matches!(self, Self::InvalidStateException(_))
428    }
429    /// Returns `true` if the error kind is `CreateEventSourceError::LimitExceededException`.
430    pub fn is_limit_exceeded_exception(&self) -> bool {
431        matches!(self, Self::LimitExceededException(_))
432    }
433    /// Returns `true` if the error kind is `CreateEventSourceError::ResourceAlreadyExistsException`.
434    pub fn is_resource_already_exists_exception(&self) -> bool {
435        matches!(self, Self::ResourceAlreadyExistsException(_))
436    }
437    /// Returns `true` if the error kind is `CreateEventSourceError::ResourceNotFoundException`.
438    pub fn is_resource_not_found_exception(&self) -> bool {
439        matches!(self, Self::ResourceNotFoundException(_))
440    }
441    /// Returns `true` if the error kind is `CreateEventSourceError::AccessDeniedException`.
442    pub fn is_access_denied_exception(&self) -> bool {
443        matches!(self, Self::AccessDeniedException(_))
444    }
445    /// Returns `true` if the error kind is `CreateEventSourceError::InternalException`.
446    pub fn is_internal_exception(&self) -> bool {
447        matches!(self, Self::InternalException(_))
448    }
449    /// Returns `true` if the error kind is `CreateEventSourceError::InvalidInputException`.
450    pub fn is_invalid_input_exception(&self) -> bool {
451        matches!(self, Self::InvalidInputException(_))
452    }
453    /// Returns `true` if the error kind is `CreateEventSourceError::ThrottlingException`.
454    pub fn is_throttling_exception(&self) -> bool {
455        matches!(self, Self::ThrottlingException(_))
456    }
457}
458impl ::std::error::Error for CreateEventSourceError {
459    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
460        match self {
461            Self::ConcurrentModificationException(_inner) => ::std::option::Option::Some(_inner),
462            Self::IdempotentParameterMismatchException(_inner) => ::std::option::Option::Some(_inner),
463            Self::InvalidStateException(_inner) => ::std::option::Option::Some(_inner),
464            Self::LimitExceededException(_inner) => ::std::option::Option::Some(_inner),
465            Self::ResourceAlreadyExistsException(_inner) => ::std::option::Option::Some(_inner),
466            Self::ResourceNotFoundException(_inner) => ::std::option::Option::Some(_inner),
467            Self::AccessDeniedException(_inner) => ::std::option::Option::Some(_inner),
468            Self::InternalException(_inner) => ::std::option::Option::Some(_inner),
469            Self::InvalidInputException(_inner) => ::std::option::Option::Some(_inner),
470            Self::ThrottlingException(_inner) => ::std::option::Option::Some(_inner),
471            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
472        }
473    }
474}
475impl ::std::fmt::Display for CreateEventSourceError {
476    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
477        match self {
478            Self::ConcurrentModificationException(_inner) => _inner.fmt(f),
479            Self::IdempotentParameterMismatchException(_inner) => _inner.fmt(f),
480            Self::InvalidStateException(_inner) => _inner.fmt(f),
481            Self::LimitExceededException(_inner) => _inner.fmt(f),
482            Self::ResourceAlreadyExistsException(_inner) => _inner.fmt(f),
483            Self::ResourceNotFoundException(_inner) => _inner.fmt(f),
484            Self::AccessDeniedException(_inner) => _inner.fmt(f),
485            Self::InternalException(_inner) => _inner.fmt(f),
486            Self::InvalidInputException(_inner) => _inner.fmt(f),
487            Self::ThrottlingException(_inner) => _inner.fmt(f),
488            Self::Unhandled(_inner) => {
489                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
490                    write!(f, "unhandled error ({code})")
491                } else {
492                    f.write_str("unhandled error")
493                }
494            }
495        }
496    }
497}
498impl ::aws_smithy_types::retry::ProvideErrorKind for CreateEventSourceError {
499    fn code(&self) -> ::std::option::Option<&str> {
500        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
501    }
502    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
503        match self {
504            Self::ConcurrentModificationException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
505            Self::InternalException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
506            Self::ThrottlingException(inner) => ::std::option::Option::Some(inner.retryable_error_kind()),
507            _ => ::std::option::Option::None,
508        }
509    }
510}
511impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateEventSourceError {
512    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
513        match self {
514            Self::ConcurrentModificationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
515            Self::IdempotentParameterMismatchException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
516            Self::InvalidStateException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
517            Self::LimitExceededException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
518            Self::ResourceAlreadyExistsException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
519            Self::ResourceNotFoundException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
520            Self::AccessDeniedException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
521            Self::InternalException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
522            Self::InvalidInputException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
523            Self::ThrottlingException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
524            Self::Unhandled(_inner) => &_inner.meta,
525        }
526    }
527}
528impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateEventSourceError {
529    fn create_unhandled_error(
530        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
531        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
532    ) -> Self {
533        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
534            source,
535            meta: meta.unwrap_or_default(),
536        })
537    }
538}
539impl ::aws_types::request_id::RequestId for crate::operation::create_event_source::CreateEventSourceError {
540    fn request_id(&self) -> Option<&str> {
541        self.meta().request_id()
542    }
543}
544
545pub use crate::operation::create_event_source::_create_event_source_input::CreateEventSourceInput;
546
547pub use crate::operation::create_event_source::_create_event_source_output::CreateEventSourceOutput;
548
549mod _create_event_source_input;
550
551mod _create_event_source_output;
552
553/// Builders
554pub mod builders;