Skip to main content

aws_sdk_rds/operation/
create_db_cluster.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2/// Orchestration and serialization glue logic for `CreateDBCluster`.
3#[derive(::std::clone::Clone, ::std::default::Default, ::std::fmt::Debug)]
4#[non_exhaustive]
5pub struct CreateDBCluster;
6impl CreateDBCluster {
7    /// Creates a new `CreateDBCluster`
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_db_cluster::CreateDbClusterInput,
14    ) -> ::std::result::Result<
15        crate::operation::create_db_cluster::CreateDbClusterOutput,
16        ::aws_smithy_runtime_api::client::result::SdkError<
17            crate::operation::create_db_cluster::CreateDBClusterError,
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_db_cluster::CreateDBClusterError>()
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_db_cluster::CreateDbClusterOutput>()
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_db_cluster::CreateDbClusterInput,
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("RDS", "CreateDBCluster", 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                "RDS.CreateDBCluster",
59                "rpc.service" = "RDS",
60                "rpc.method" = "CreateDBCluster",
61                "sdk_invocation_id" = ::fastrand::u32(1_000_000..10_000_000),
62                "rpc.system" = "aws-api",
63            ))
64            .await
65    }
66
67    pub(crate) fn operation_runtime_plugins(
68        client_runtime_plugins: ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins,
69        client_config: &crate::config::Config,
70        config_override: ::std::option::Option<crate::config::Builder>,
71    ) -> ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugins {
72        let mut runtime_plugins = client_runtime_plugins.with_operation_plugin(Self::new());
73
74        if let ::std::option::Option::Some(config_override) = config_override {
75            for plugin in config_override.runtime_plugins.iter().cloned() {
76                runtime_plugins = runtime_plugins.with_operation_plugin(plugin);
77            }
78            runtime_plugins = runtime_plugins.with_operation_plugin(crate::config::ConfigOverrideRuntimePlugin::new(
79                config_override,
80                client_config.config.clone(),
81                &client_config.runtime_components,
82            ));
83        }
84        runtime_plugins
85    }
86}
87impl ::aws_smithy_runtime_api::client::runtime_plugin::RuntimePlugin for CreateDBCluster {
88    fn config(&self) -> ::std::option::Option<::aws_smithy_types::config_bag::FrozenLayer> {
89        let mut cfg = ::aws_smithy_types::config_bag::Layer::new("CreateDBCluster");
90
91        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedRequestSerializer::new(
92            CreateDBClusterRequestSerializer,
93        ));
94        cfg.store_put(::aws_smithy_runtime_api::client::ser_de::SharedResponseDeserializer::new(
95            CreateDBClusterResponseDeserializer,
96        ));
97
98        cfg.store_put(::aws_smithy_runtime_api::client::auth::AuthSchemeOptionResolverParams::new(
99            crate::config::auth::Params::builder()
100                .operation_name("CreateDBCluster")
101                .build()
102                .expect("required fields set"),
103        ));
104
105        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::SensitiveOutput);
106        cfg.store_put(::aws_smithy_runtime_api::client::orchestrator::Metadata::new("CreateDBCluster", "RDS"));
107        let mut signing_options = ::aws_runtime::auth::SigningOptions::default();
108        signing_options.double_uri_encode = true;
109        signing_options.content_sha256_header = false;
110        signing_options.normalize_uri_path = true;
111        signing_options.payload_override = None;
112
113        cfg.store_put(::aws_runtime::auth::SigV4OperationSigningConfig {
114            signing_options,
115            ..::std::default::Default::default()
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("CreateDBCluster")
127            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
128                CreateDBClusterTelemetryInputCaptureInterceptor,
129            ))
130            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
131                ::aws_smithy_runtime::client::stalled_stream_protection::StalledStreamProtectionInterceptor::default(),
132            ))
133            .with_interceptor(::aws_smithy_runtime_api::client::interceptors::SharedInterceptor::permanent(
134                CreateDBClusterEndpointParamsInterceptor,
135            ))
136            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::TransientErrorClassifier::<
137                crate::operation::create_db_cluster::CreateDBClusterError,
138            >::new())
139            .with_retry_classifier(::aws_smithy_runtime::client::retries::classifiers::ModeledAsRetryableClassifier::<
140                crate::operation::create_db_cluster::CreateDBClusterError,
141            >::new())
142            .with_retry_classifier(::aws_runtime::retries::classifiers::AwsErrorCodeClassifier::<
143                crate::operation::create_db_cluster::CreateDBClusterError,
144            >::new())
145            .with_retry_classifier(::aws_runtime::service_clock_skew::ServiceClockSkewClassifier::<
146                crate::operation::create_db_cluster::CreateDBClusterError,
147            >::new());
148
149        ::std::borrow::Cow::Owned(rcb)
150    }
151}
152
153#[derive(Debug)]
154struct CreateDBClusterTelemetryInputCaptureInterceptor;
155
156#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
157impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateDBClusterTelemetryInputCaptureInterceptor {
158    fn name(&self) -> &'static str {
159        "CreateDBClusterTelemetryInputCaptureInterceptor"
160    }
161
162    fn read_before_execution(
163        &self,
164        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
165            '_,
166            ::aws_smithy_runtime_api::client::interceptors::context::Input,
167            ::aws_smithy_runtime_api::client::interceptors::context::Output,
168            ::aws_smithy_runtime_api::client::interceptors::context::Error,
169        >,
170        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
171    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
172        // Nothing to do unless the customer opted in by naming members to record.
173        let ::std::option::Option::Some(requested) = cfg
174            .load::<::aws_smithy_types::telemetry::RequestedTelemetryAttributes>()
175            .filter(|r| !r.is_empty())
176        else {
177            return ::std::result::Result::Ok(());
178        };
179
180        let ::std::option::Option::Some(input) = context.input().downcast_ref::<CreateDbClusterInput>() else {
181            // A mismatched input is not this interceptor's concern; skip quietly.
182            return ::std::result::Result::Ok(());
183        };
184
185        let mut captured = ::aws_smithy_types::telemetry::CapturedTelemetryAttributes::default();
186        if requested.should_capture("CharacterSetName") {
187            if let ::std::option::Option::Some(value) = input.character_set_name.as_deref() {
188                captured.insert("CharacterSetName", value);
189            }
190        }
191        if requested.should_capture("DatabaseName") {
192            if let ::std::option::Option::Some(value) = input.database_name.as_deref() {
193                captured.insert("DatabaseName", value);
194            }
195        }
196        if requested.should_capture("DBClusterIdentifier") {
197            if let ::std::option::Option::Some(value) = input.db_cluster_identifier.as_deref() {
198                captured.insert("DBClusterIdentifier", value);
199            }
200        }
201        if requested.should_capture("DBClusterParameterGroupName") {
202            if let ::std::option::Option::Some(value) = input.db_cluster_parameter_group_name.as_deref() {
203                captured.insert("DBClusterParameterGroupName", value);
204            }
205        }
206        if requested.should_capture("DBSubnetGroupName") {
207            if let ::std::option::Option::Some(value) = input.db_subnet_group_name.as_deref() {
208                captured.insert("DBSubnetGroupName", value);
209            }
210        }
211        if requested.should_capture("Engine") {
212            if let ::std::option::Option::Some(value) = input.engine.as_deref() {
213                captured.insert("Engine", value);
214            }
215        }
216        if requested.should_capture("EngineVersion") {
217            if let ::std::option::Option::Some(value) = input.engine_version.as_deref() {
218                captured.insert("EngineVersion", value);
219            }
220        }
221        if requested.should_capture("MasterUsername") {
222            if let ::std::option::Option::Some(value) = input.master_username.as_deref() {
223                captured.insert("MasterUsername", value);
224            }
225        }
226        if requested.should_capture("OptionGroupName") {
227            if let ::std::option::Option::Some(value) = input.option_group_name.as_deref() {
228                captured.insert("OptionGroupName", value);
229            }
230        }
231        if requested.should_capture("PreferredBackupWindow") {
232            if let ::std::option::Option::Some(value) = input.preferred_backup_window.as_deref() {
233                captured.insert("PreferredBackupWindow", value);
234            }
235        }
236        if requested.should_capture("PreferredMaintenanceWindow") {
237            if let ::std::option::Option::Some(value) = input.preferred_maintenance_window.as_deref() {
238                captured.insert("PreferredMaintenanceWindow", value);
239            }
240        }
241        if requested.should_capture("ReplicationSourceIdentifier") {
242            if let ::std::option::Option::Some(value) = input.replication_source_identifier.as_deref() {
243                captured.insert("ReplicationSourceIdentifier", value);
244            }
245        }
246        if requested.should_capture("KmsKeyId") {
247            if let ::std::option::Option::Some(value) = input.kms_key_id.as_deref() {
248                captured.insert("KmsKeyId", value);
249            }
250        }
251        if requested.should_capture("EngineMode") {
252            if let ::std::option::Option::Some(value) = input.engine_mode.as_deref() {
253                captured.insert("EngineMode", value);
254            }
255        }
256        if requested.should_capture("DBClusterInstanceClass") {
257            if let ::std::option::Option::Some(value) = input.db_cluster_instance_class.as_deref() {
258                captured.insert("DBClusterInstanceClass", value);
259            }
260        }
261        if requested.should_capture("StorageType") {
262            if let ::std::option::Option::Some(value) = input.storage_type.as_deref() {
263                captured.insert("StorageType", value);
264            }
265        }
266        if requested.should_capture("GlobalClusterIdentifier") {
267            if let ::std::option::Option::Some(value) = input.global_cluster_identifier.as_deref() {
268                captured.insert("GlobalClusterIdentifier", value);
269            }
270        }
271        if requested.should_capture("Domain") {
272            if let ::std::option::Option::Some(value) = input.domain.as_deref() {
273                captured.insert("Domain", value);
274            }
275        }
276        if requested.should_capture("DomainIAMRoleName") {
277            if let ::std::option::Option::Some(value) = input.domain_iam_role_name.as_deref() {
278                captured.insert("DomainIAMRoleName", value);
279            }
280        }
281        if requested.should_capture("NetworkType") {
282            if let ::std::option::Option::Some(value) = input.network_type.as_deref() {
283                captured.insert("NetworkType", value);
284            }
285        }
286        if requested.should_capture("MonitoringRoleArn") {
287            if let ::std::option::Option::Some(value) = input.monitoring_role_arn.as_deref() {
288                captured.insert("MonitoringRoleArn", value);
289            }
290        }
291        if requested.should_capture("PerformanceInsightsKMSKeyId") {
292            if let ::std::option::Option::Some(value) = input.performance_insights_kms_key_id.as_deref() {
293                captured.insert("PerformanceInsightsKMSKeyId", value);
294            }
295        }
296        if requested.should_capture("DBSystemId") {
297            if let ::std::option::Option::Some(value) = input.db_system_id.as_deref() {
298                captured.insert("DBSystemId", value);
299            }
300        }
301        if requested.should_capture("MasterUserSecretKmsKeyId") {
302            if let ::std::option::Option::Some(value) = input.master_user_secret_kms_key_id.as_deref() {
303                captured.insert("MasterUserSecretKmsKeyId", value);
304            }
305        }
306        if requested.should_capture("CACertificateIdentifier") {
307            if let ::std::option::Option::Some(value) = input.ca_certificate_identifier.as_deref() {
308                captured.insert("CACertificateIdentifier", value);
309            }
310        }
311        if requested.should_capture("EngineLifecycleSupport") {
312            if let ::std::option::Option::Some(value) = input.engine_lifecycle_support.as_deref() {
313                captured.insert("EngineLifecycleSupport", value);
314            }
315        }
316
317        cfg.interceptor_state().store_put(captured);
318        ::std::result::Result::Ok(())
319    }
320}
321#[derive(Debug)]
322struct CreateDBClusterResponseDeserializer;
323impl ::aws_smithy_runtime_api::client::ser_de::DeserializeResponse for CreateDBClusterResponseDeserializer {
324    fn deserialize_nonstreaming_with_config(
325        &self,
326        response: &::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
327        _cfg: &::aws_smithy_types::config_bag::ConfigBag,
328    ) -> ::aws_smithy_runtime_api::client::interceptors::context::OutputOrError {
329        let (success, status) = (response.status().is_success(), response.status().as_u16());
330        let headers = response.headers();
331        let body = response.body().bytes().expect("body loaded");
332        #[allow(unused_mut)]
333        let mut force_error = false;
334        ::tracing::debug!(request_id = ?::aws_types::request_id::RequestId::request_id(response));
335        let parse_result = if !success && status != 200 || force_error {
336            crate::protocol_serde::shape_create_db_cluster::de_create_db_cluster_http_error(status, headers, body)
337        } else {
338            crate::protocol_serde::shape_create_db_cluster::de_create_db_cluster_http_response(status, headers, body)
339        };
340        crate::protocol_serde::type_erase_result(parse_result)
341    }
342}
343#[derive(Debug)]
344struct CreateDBClusterRequestSerializer;
345impl ::aws_smithy_runtime_api::client::ser_de::SerializeRequest for CreateDBClusterRequestSerializer {
346    #[allow(unused_mut, clippy::let_and_return, clippy::needless_borrow, clippy::useless_conversion)]
347    fn serialize_input(
348        &self,
349        input: ::aws_smithy_runtime_api::client::interceptors::context::Input,
350        _cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
351    ) -> ::std::result::Result<::aws_smithy_runtime_api::client::orchestrator::HttpRequest, ::aws_smithy_runtime_api::box_error::BoxError> {
352        let input = input
353            .downcast::<crate::operation::create_db_cluster::CreateDbClusterInput>()
354            .expect("correct type");
355        let _header_serialization_settings = _cfg
356            .load::<crate::serialization_settings::HeaderSerializationSettings>()
357            .cloned()
358            .unwrap_or_default();
359        let mut request_builder = {
360            #[allow(clippy::uninlined_format_args)]
361            fn uri_base(
362                _input: &crate::operation::create_db_cluster::CreateDbClusterInput,
363                output: &mut ::std::string::String,
364            ) -> ::std::result::Result<(), ::aws_smithy_types::error::operation::BuildError> {
365                use ::std::fmt::Write as _;
366                ::std::write!(output, "/").expect("formatting should succeed");
367                ::std::result::Result::Ok(())
368            }
369            #[allow(clippy::unnecessary_wraps)]
370            fn update_http_builder(
371                input: &crate::operation::create_db_cluster::CreateDbClusterInput,
372                builder: ::http_1x::request::Builder,
373            ) -> ::std::result::Result<::http_1x::request::Builder, ::aws_smithy_types::error::operation::BuildError> {
374                let mut uri = ::std::string::String::new();
375                uri_base(input, &mut uri)?;
376                ::std::result::Result::Ok(builder.method("POST").uri(uri))
377            }
378            let mut builder = update_http_builder(&input, ::http_1x::request::Builder::new())?;
379            builder =
380                _header_serialization_settings.set_default_header(builder, ::http_1x::header::CONTENT_TYPE, "application/x-www-form-urlencoded");
381            builder
382        };
383        let body = ::aws_smithy_types::body::SdkBody::from(
384            crate::protocol_serde::shape_create_db_cluster_input::ser_create_db_cluster_input_input_input(&input)?,
385        );
386        if let Some(content_length) = body.content_length() {
387            let content_length = content_length.to_string();
388            request_builder = _header_serialization_settings.set_default_header(request_builder, ::http_1x::header::CONTENT_LENGTH, &content_length);
389        }
390        ::std::result::Result::Ok(request_builder.body(body).expect("valid request").try_into().unwrap())
391    }
392}
393#[derive(Debug)]
394struct CreateDBClusterEndpointParamsInterceptor;
395
396#[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
397impl ::aws_smithy_runtime_api::client::interceptors::Intercept for CreateDBClusterEndpointParamsInterceptor {
398    fn name(&self) -> &'static str {
399        "CreateDBClusterEndpointParamsInterceptor"
400    }
401
402    fn read_before_execution(
403        &self,
404        context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<
405            '_,
406            ::aws_smithy_runtime_api::client::interceptors::context::Input,
407            ::aws_smithy_runtime_api::client::interceptors::context::Output,
408            ::aws_smithy_runtime_api::client::interceptors::context::Error,
409        >,
410        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
411    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
412        let _input = context
413            .input()
414            .downcast_ref::<CreateDbClusterInput>()
415            .ok_or("failed to downcast to CreateDbClusterInput")?;
416
417        let params = crate::config::endpoint::Params::builder()
418            .set_region(cfg.load::<::aws_types::region::Region>().map(|r| r.as_ref().to_owned()))
419            .set_use_dual_stack(cfg.load::<::aws_types::endpoint_config::UseDualStack>().map(|ty| ty.0))
420            .set_use_fips(cfg.load::<::aws_types::endpoint_config::UseFips>().map(|ty| ty.0))
421            .set_endpoint(cfg.load::<::aws_types::endpoint_config::EndpointUrl>().map(|ty| ty.0.clone()))
422            .build()
423            .map_err(|err| {
424                ::aws_smithy_runtime_api::client::interceptors::error::ContextAttachedError::new("endpoint params could not be built", err)
425            })?;
426        cfg.interceptor_state()
427            .store_put(::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams::new(params));
428        ::std::result::Result::Ok(())
429    }
430}
431
432// The get_* functions below are generated from JMESPath expressions in the
433// operationContextParams trait. They target the operation's input shape.
434
435/// Error type for the `CreateDBClusterError` operation.
436#[non_exhaustive]
437#[derive(::std::fmt::Debug)]
438pub enum CreateDBClusterError {
439    /// <p>The user already has a DB cluster with the given identifier.</p>
440    DbClusterAlreadyExistsFault(crate::types::error::DbClusterAlreadyExistsFault),
441    /// <p><code>DBClusterIdentifier</code> doesn't refer to an existing DB cluster.</p>
442    DbClusterNotFoundFault(crate::types::error::DbClusterNotFoundFault),
443    /// <p><code>DBClusterParameterGroupName</code> doesn't refer to an existing DB cluster parameter group.</p>
444    DbClusterParameterGroupNotFoundFault(crate::types::error::DbClusterParameterGroupNotFoundFault),
445    /// <p>The user attempted to create a new DB cluster and the user has already reached the maximum allowed DB cluster quota.</p>
446    DbClusterQuotaExceededFault(crate::types::error::DbClusterQuotaExceededFault),
447    /// <p>You have exceeded the maximum number of IAM roles that can be associated with the specified DB cluster.</p>
448    DbClusterRoleQuotaExceededFault(crate::types::error::DbClusterRoleQuotaExceededFault),
449    /// <p><code>DBInstanceIdentifier</code> doesn't refer to an existing DB instance.</p>
450    DbInstanceNotFoundFault(crate::types::error::DbInstanceNotFoundFault),
451    /// <p>Subnets in the DB subnet group should cover at least two Availability Zones unless there is only one Availability Zone.</p>
452    DbSubnetGroupDoesNotCoverEnoughAZs(crate::types::error::DbSubnetGroupDoesNotCoverEnoughAZs),
453    /// <p><code>DBSubnetGroupName</code> doesn't refer to an existing DB subnet group.</p>
454    DbSubnetGroupNotFoundFault(crate::types::error::DbSubnetGroupNotFoundFault),
455    /// <p><code>Domain</code> doesn't refer to an existing Active Directory domain.</p>
456    DomainNotFoundFault(crate::types::error::DomainNotFoundFault),
457    /// <p>The <code>GlobalClusterIdentifier</code> doesn't refer to an existing global database cluster.</p>
458    GlobalClusterNotFoundFault(crate::types::error::GlobalClusterNotFoundFault),
459    /// <p>The specified DB instance class isn't available in the specified Availability Zone.</p>
460    InsufficientDbInstanceCapacityFault(crate::types::error::InsufficientDbInstanceCapacityFault),
461    /// <p>There is insufficient storage available for the current action. You might be able to resolve this error by updating your subnet group to use different Availability Zones that have more storage available.</p>
462    InsufficientStorageClusterCapacityFault(crate::types::error::InsufficientStorageClusterCapacityFault),
463    /// <p>The requested operation can't be performed while the cluster is in this state.</p>
464    InvalidDbClusterStateFault(crate::types::error::InvalidDbClusterStateFault),
465    /// <p>The DB instance isn't in a valid state.</p>
466    InvalidDbInstanceStateFault(crate::types::error::InvalidDbInstanceStateFault),
467    /// <p>The DBSubnetGroup doesn't belong to the same VPC as that of an existing cross-region read replica of the same source instance.</p>
468    InvalidDbSubnetGroupFault(crate::types::error::InvalidDbSubnetGroupFault),
469    /// <p>The DB subnet group cannot be deleted because it's in use.</p>
470    InvalidDbSubnetGroupStateFault(crate::types::error::InvalidDbSubnetGroupStateFault),
471    /// <p>The global cluster is in an invalid state and can't perform the requested operation.</p>
472    InvalidGlobalClusterStateFault(crate::types::error::InvalidGlobalClusterStateFault),
473    /// <p>The requested subnet is invalid, or multiple subnets were requested that are not all in a common VPC.</p>
474    InvalidSubnet(crate::types::error::InvalidSubnet),
475    /// <p>The DB subnet group doesn't cover all Availability Zones after it's created because of users' change.</p>
476    InvalidVpcNetworkStateFault(crate::types::error::InvalidVpcNetworkStateFault),
477    /// <p>An error occurred accessing an Amazon Web Services KMS key.</p>
478    KmsKeyNotAccessibleFault(crate::types::error::KmsKeyNotAccessibleFault),
479    /// <p>The network type is invalid for the DB instance. Valid nework type values are <code>IPV4</code> and <code>DUAL</code>.</p>
480    NetworkTypeNotSupported(crate::types::error::NetworkTypeNotSupported),
481    /// <p>The specified option group could not be found.</p>
482    OptionGroupNotFoundFault(crate::types::error::OptionGroupNotFoundFault),
483    /// <p>The request would result in the user exceeding the allowed amount of storage available across all DB instances.</p>
484    StorageQuotaExceededFault(crate::types::error::StorageQuotaExceededFault),
485    /// <p>The specified <code>StorageType</code> can't be associated with the DB instance.</p>
486    StorageTypeNotSupportedFault(crate::types::error::StorageTypeNotSupportedFault),
487    /// <p>The operation violates VPC encryption control settings. Make sure that your DB instance type supports the Nitro encryption-in-transit capability, or modify your VPC's encryption controls to not enforce encryption-in-transit.</p>
488    VpcEncryptionControlViolationException(crate::types::error::VpcEncryptionControlViolationException),
489    /// An unexpected error occurred (e.g., invalid JSON returned by the service or an unknown error code).
490    #[deprecated(note = "Matching `Unhandled` directly is not forwards compatible. Instead, match using a \
491    variable wildcard pattern and check `.code()`:
492     \
493    &nbsp;&nbsp;&nbsp;`err if err.code() == Some(\"SpecificExceptionCode\") => { /* handle the error */ }`
494     \
495    See [`ProvideErrorMetadata`](#impl-ProvideErrorMetadata-for-CreateDBClusterError) for what information is available for the error.")]
496    Unhandled(crate::error::sealed_unhandled::Unhandled),
497}
498impl CreateDBClusterError {
499    /// Creates the `CreateDBClusterError::Unhandled` variant from any error type.
500    pub fn unhandled(
501        err: impl ::std::convert::Into<::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>>,
502    ) -> Self {
503        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
504            source: err.into(),
505            meta: ::std::default::Default::default(),
506        })
507    }
508
509    /// Creates the `CreateDBClusterError::Unhandled` variant from an [`ErrorMetadata`](::aws_smithy_types::error::ErrorMetadata).
510    pub fn generic(err: ::aws_smithy_types::error::ErrorMetadata) -> Self {
511        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
512            source: err.clone().into(),
513            meta: err,
514        })
515    }
516    ///
517    /// Returns error metadata, which includes the error code, message,
518    /// request ID, and potentially additional information.
519    ///
520    pub fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
521        match self {
522            Self::DbClusterAlreadyExistsFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
523            Self::DbClusterNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
524            Self::DbClusterParameterGroupNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
525            Self::DbClusterQuotaExceededFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
526            Self::DbClusterRoleQuotaExceededFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
527            Self::DbInstanceNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
528            Self::DbSubnetGroupDoesNotCoverEnoughAZs(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
529            Self::DbSubnetGroupNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
530            Self::DomainNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
531            Self::GlobalClusterNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
532            Self::InsufficientDbInstanceCapacityFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
533            Self::InsufficientStorageClusterCapacityFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
534            Self::InvalidDbClusterStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
535            Self::InvalidDbInstanceStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
536            Self::InvalidDbSubnetGroupFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
537            Self::InvalidDbSubnetGroupStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
538            Self::InvalidGlobalClusterStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
539            Self::InvalidSubnet(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
540            Self::InvalidVpcNetworkStateFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
541            Self::KmsKeyNotAccessibleFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
542            Self::NetworkTypeNotSupported(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
543            Self::OptionGroupNotFoundFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
544            Self::StorageQuotaExceededFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
545            Self::StorageTypeNotSupportedFault(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
546            Self::VpcEncryptionControlViolationException(e) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(e),
547            Self::Unhandled(e) => &e.meta,
548        }
549    }
550    /// Returns `true` if the error kind is `CreateDBClusterError::DbClusterAlreadyExistsFault`.
551    pub fn is_db_cluster_already_exists_fault(&self) -> bool {
552        matches!(self, Self::DbClusterAlreadyExistsFault(_))
553    }
554    /// Returns `true` if the error kind is `CreateDBClusterError::DbClusterNotFoundFault`.
555    pub fn is_db_cluster_not_found_fault(&self) -> bool {
556        matches!(self, Self::DbClusterNotFoundFault(_))
557    }
558    /// Returns `true` if the error kind is `CreateDBClusterError::DbClusterParameterGroupNotFoundFault`.
559    pub fn is_db_cluster_parameter_group_not_found_fault(&self) -> bool {
560        matches!(self, Self::DbClusterParameterGroupNotFoundFault(_))
561    }
562    /// Returns `true` if the error kind is `CreateDBClusterError::DbClusterQuotaExceededFault`.
563    pub fn is_db_cluster_quota_exceeded_fault(&self) -> bool {
564        matches!(self, Self::DbClusterQuotaExceededFault(_))
565    }
566    /// Returns `true` if the error kind is `CreateDBClusterError::DbClusterRoleQuotaExceededFault`.
567    pub fn is_db_cluster_role_quota_exceeded_fault(&self) -> bool {
568        matches!(self, Self::DbClusterRoleQuotaExceededFault(_))
569    }
570    /// Returns `true` if the error kind is `CreateDBClusterError::DbInstanceNotFoundFault`.
571    pub fn is_db_instance_not_found_fault(&self) -> bool {
572        matches!(self, Self::DbInstanceNotFoundFault(_))
573    }
574    /// Returns `true` if the error kind is `CreateDBClusterError::DbSubnetGroupDoesNotCoverEnoughAZs`.
575    pub fn is_db_subnet_group_does_not_cover_enough_azs(&self) -> bool {
576        matches!(self, Self::DbSubnetGroupDoesNotCoverEnoughAZs(_))
577    }
578    /// Returns `true` if the error kind is `CreateDBClusterError::DbSubnetGroupNotFoundFault`.
579    pub fn is_db_subnet_group_not_found_fault(&self) -> bool {
580        matches!(self, Self::DbSubnetGroupNotFoundFault(_))
581    }
582    /// Returns `true` if the error kind is `CreateDBClusterError::DomainNotFoundFault`.
583    pub fn is_domain_not_found_fault(&self) -> bool {
584        matches!(self, Self::DomainNotFoundFault(_))
585    }
586    /// Returns `true` if the error kind is `CreateDBClusterError::GlobalClusterNotFoundFault`.
587    pub fn is_global_cluster_not_found_fault(&self) -> bool {
588        matches!(self, Self::GlobalClusterNotFoundFault(_))
589    }
590    /// Returns `true` if the error kind is `CreateDBClusterError::InsufficientDbInstanceCapacityFault`.
591    pub fn is_insufficient_db_instance_capacity_fault(&self) -> bool {
592        matches!(self, Self::InsufficientDbInstanceCapacityFault(_))
593    }
594    /// Returns `true` if the error kind is `CreateDBClusterError::InsufficientStorageClusterCapacityFault`.
595    pub fn is_insufficient_storage_cluster_capacity_fault(&self) -> bool {
596        matches!(self, Self::InsufficientStorageClusterCapacityFault(_))
597    }
598    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidDbClusterStateFault`.
599    pub fn is_invalid_db_cluster_state_fault(&self) -> bool {
600        matches!(self, Self::InvalidDbClusterStateFault(_))
601    }
602    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidDbInstanceStateFault`.
603    pub fn is_invalid_db_instance_state_fault(&self) -> bool {
604        matches!(self, Self::InvalidDbInstanceStateFault(_))
605    }
606    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidDbSubnetGroupFault`.
607    pub fn is_invalid_db_subnet_group_fault(&self) -> bool {
608        matches!(self, Self::InvalidDbSubnetGroupFault(_))
609    }
610    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidDbSubnetGroupStateFault`.
611    pub fn is_invalid_db_subnet_group_state_fault(&self) -> bool {
612        matches!(self, Self::InvalidDbSubnetGroupStateFault(_))
613    }
614    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidGlobalClusterStateFault`.
615    pub fn is_invalid_global_cluster_state_fault(&self) -> bool {
616        matches!(self, Self::InvalidGlobalClusterStateFault(_))
617    }
618    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidSubnet`.
619    pub fn is_invalid_subnet(&self) -> bool {
620        matches!(self, Self::InvalidSubnet(_))
621    }
622    /// Returns `true` if the error kind is `CreateDBClusterError::InvalidVpcNetworkStateFault`.
623    pub fn is_invalid_vpc_network_state_fault(&self) -> bool {
624        matches!(self, Self::InvalidVpcNetworkStateFault(_))
625    }
626    /// Returns `true` if the error kind is `CreateDBClusterError::KmsKeyNotAccessibleFault`.
627    pub fn is_kms_key_not_accessible_fault(&self) -> bool {
628        matches!(self, Self::KmsKeyNotAccessibleFault(_))
629    }
630    /// Returns `true` if the error kind is `CreateDBClusterError::NetworkTypeNotSupported`.
631    pub fn is_network_type_not_supported(&self) -> bool {
632        matches!(self, Self::NetworkTypeNotSupported(_))
633    }
634    /// Returns `true` if the error kind is `CreateDBClusterError::OptionGroupNotFoundFault`.
635    pub fn is_option_group_not_found_fault(&self) -> bool {
636        matches!(self, Self::OptionGroupNotFoundFault(_))
637    }
638    /// Returns `true` if the error kind is `CreateDBClusterError::StorageQuotaExceededFault`.
639    pub fn is_storage_quota_exceeded_fault(&self) -> bool {
640        matches!(self, Self::StorageQuotaExceededFault(_))
641    }
642    /// Returns `true` if the error kind is `CreateDBClusterError::StorageTypeNotSupportedFault`.
643    pub fn is_storage_type_not_supported_fault(&self) -> bool {
644        matches!(self, Self::StorageTypeNotSupportedFault(_))
645    }
646    /// Returns `true` if the error kind is `CreateDBClusterError::VpcEncryptionControlViolationException`.
647    pub fn is_vpc_encryption_control_violation_exception(&self) -> bool {
648        matches!(self, Self::VpcEncryptionControlViolationException(_))
649    }
650}
651impl ::std::error::Error for CreateDBClusterError {
652    fn source(&self) -> ::std::option::Option<&(dyn ::std::error::Error + 'static)> {
653        match self {
654            Self::DbClusterAlreadyExistsFault(_inner) => ::std::option::Option::Some(_inner),
655            Self::DbClusterNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
656            Self::DbClusterParameterGroupNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
657            Self::DbClusterQuotaExceededFault(_inner) => ::std::option::Option::Some(_inner),
658            Self::DbClusterRoleQuotaExceededFault(_inner) => ::std::option::Option::Some(_inner),
659            Self::DbInstanceNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
660            Self::DbSubnetGroupDoesNotCoverEnoughAZs(_inner) => ::std::option::Option::Some(_inner),
661            Self::DbSubnetGroupNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
662            Self::DomainNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
663            Self::GlobalClusterNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
664            Self::InsufficientDbInstanceCapacityFault(_inner) => ::std::option::Option::Some(_inner),
665            Self::InsufficientStorageClusterCapacityFault(_inner) => ::std::option::Option::Some(_inner),
666            Self::InvalidDbClusterStateFault(_inner) => ::std::option::Option::Some(_inner),
667            Self::InvalidDbInstanceStateFault(_inner) => ::std::option::Option::Some(_inner),
668            Self::InvalidDbSubnetGroupFault(_inner) => ::std::option::Option::Some(_inner),
669            Self::InvalidDbSubnetGroupStateFault(_inner) => ::std::option::Option::Some(_inner),
670            Self::InvalidGlobalClusterStateFault(_inner) => ::std::option::Option::Some(_inner),
671            Self::InvalidSubnet(_inner) => ::std::option::Option::Some(_inner),
672            Self::InvalidVpcNetworkStateFault(_inner) => ::std::option::Option::Some(_inner),
673            Self::KmsKeyNotAccessibleFault(_inner) => ::std::option::Option::Some(_inner),
674            Self::NetworkTypeNotSupported(_inner) => ::std::option::Option::Some(_inner),
675            Self::OptionGroupNotFoundFault(_inner) => ::std::option::Option::Some(_inner),
676            Self::StorageQuotaExceededFault(_inner) => ::std::option::Option::Some(_inner),
677            Self::StorageTypeNotSupportedFault(_inner) => ::std::option::Option::Some(_inner),
678            Self::VpcEncryptionControlViolationException(_inner) => ::std::option::Option::Some(_inner),
679            Self::Unhandled(_inner) => ::std::option::Option::Some(&*_inner.source),
680        }
681    }
682}
683impl ::std::fmt::Display for CreateDBClusterError {
684    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
685        match self {
686            Self::DbClusterAlreadyExistsFault(_inner) => _inner.fmt(f),
687            Self::DbClusterNotFoundFault(_inner) => _inner.fmt(f),
688            Self::DbClusterParameterGroupNotFoundFault(_inner) => _inner.fmt(f),
689            Self::DbClusterQuotaExceededFault(_inner) => _inner.fmt(f),
690            Self::DbClusterRoleQuotaExceededFault(_inner) => _inner.fmt(f),
691            Self::DbInstanceNotFoundFault(_inner) => _inner.fmt(f),
692            Self::DbSubnetGroupDoesNotCoverEnoughAZs(_inner) => _inner.fmt(f),
693            Self::DbSubnetGroupNotFoundFault(_inner) => _inner.fmt(f),
694            Self::DomainNotFoundFault(_inner) => _inner.fmt(f),
695            Self::GlobalClusterNotFoundFault(_inner) => _inner.fmt(f),
696            Self::InsufficientDbInstanceCapacityFault(_inner) => _inner.fmt(f),
697            Self::InsufficientStorageClusterCapacityFault(_inner) => _inner.fmt(f),
698            Self::InvalidDbClusterStateFault(_inner) => _inner.fmt(f),
699            Self::InvalidDbInstanceStateFault(_inner) => _inner.fmt(f),
700            Self::InvalidDbSubnetGroupFault(_inner) => _inner.fmt(f),
701            Self::InvalidDbSubnetGroupStateFault(_inner) => _inner.fmt(f),
702            Self::InvalidGlobalClusterStateFault(_inner) => _inner.fmt(f),
703            Self::InvalidSubnet(_inner) => _inner.fmt(f),
704            Self::InvalidVpcNetworkStateFault(_inner) => _inner.fmt(f),
705            Self::KmsKeyNotAccessibleFault(_inner) => _inner.fmt(f),
706            Self::NetworkTypeNotSupported(_inner) => _inner.fmt(f),
707            Self::OptionGroupNotFoundFault(_inner) => _inner.fmt(f),
708            Self::StorageQuotaExceededFault(_inner) => _inner.fmt(f),
709            Self::StorageTypeNotSupportedFault(_inner) => _inner.fmt(f),
710            Self::VpcEncryptionControlViolationException(_inner) => _inner.fmt(f),
711            Self::Unhandled(_inner) => {
712                if let ::std::option::Option::Some(code) = ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self) {
713                    write!(f, "unhandled error ({code})")
714                } else {
715                    f.write_str("unhandled error")
716                }
717            }
718        }
719    }
720}
721impl ::aws_smithy_types::retry::ProvideErrorKind for CreateDBClusterError {
722    fn code(&self) -> ::std::option::Option<&str> {
723        ::aws_smithy_types::error::metadata::ProvideErrorMetadata::code(self)
724    }
725    fn retryable_error_kind(&self) -> ::std::option::Option<::aws_smithy_types::retry::ErrorKind> {
726        ::std::option::Option::None
727    }
728}
729impl ::aws_smithy_types::error::metadata::ProvideErrorMetadata for CreateDBClusterError {
730    fn meta(&self) -> &::aws_smithy_types::error::ErrorMetadata {
731        match self {
732            Self::DbClusterAlreadyExistsFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
733            Self::DbClusterNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
734            Self::DbClusterParameterGroupNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
735            Self::DbClusterQuotaExceededFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
736            Self::DbClusterRoleQuotaExceededFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
737            Self::DbInstanceNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
738            Self::DbSubnetGroupDoesNotCoverEnoughAZs(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
739            Self::DbSubnetGroupNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
740            Self::DomainNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
741            Self::GlobalClusterNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
742            Self::InsufficientDbInstanceCapacityFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
743            Self::InsufficientStorageClusterCapacityFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
744            Self::InvalidDbClusterStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
745            Self::InvalidDbInstanceStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
746            Self::InvalidDbSubnetGroupFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
747            Self::InvalidDbSubnetGroupStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
748            Self::InvalidGlobalClusterStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
749            Self::InvalidSubnet(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
750            Self::InvalidVpcNetworkStateFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
751            Self::KmsKeyNotAccessibleFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
752            Self::NetworkTypeNotSupported(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
753            Self::OptionGroupNotFoundFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
754            Self::StorageQuotaExceededFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
755            Self::StorageTypeNotSupportedFault(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
756            Self::VpcEncryptionControlViolationException(_inner) => ::aws_smithy_types::error::metadata::ProvideErrorMetadata::meta(_inner),
757            Self::Unhandled(_inner) => &_inner.meta,
758        }
759    }
760}
761impl ::aws_smithy_runtime_api::client::result::CreateUnhandledError for CreateDBClusterError {
762    fn create_unhandled_error(
763        source: ::std::boxed::Box<dyn ::std::error::Error + ::std::marker::Send + ::std::marker::Sync + 'static>,
764        meta: ::std::option::Option<::aws_smithy_types::error::ErrorMetadata>,
765    ) -> Self {
766        Self::Unhandled(crate::error::sealed_unhandled::Unhandled {
767            source,
768            meta: meta.unwrap_or_default(),
769        })
770    }
771}
772impl ::aws_types::request_id::RequestId for crate::operation::create_db_cluster::CreateDBClusterError {
773    fn request_id(&self) -> Option<&str> {
774        self.meta().request_id()
775    }
776}
777
778pub use crate::operation::create_db_cluster::_create_db_cluster_input::CreateDbClusterInput;
779
780pub use crate::operation::create_db_cluster::_create_db_cluster_output::CreateDbClusterOutput;
781
782mod _create_db_cluster_input;
783
784mod _create_db_cluster_output;
785
786/// Builders
787pub mod builders;