aws_sdk_docdb/operation/restore_db_cluster_from_snapshot/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::restore_db_cluster_from_snapshot::_restore_db_cluster_from_snapshot_output::RestoreDbClusterFromSnapshotOutputBuilder;
3
4pub use crate::operation::restore_db_cluster_from_snapshot::_restore_db_cluster_from_snapshot_input::RestoreDbClusterFromSnapshotInputBuilder;
5
6impl crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDbClusterFromSnapshotInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.restore_db_cluster_from_snapshot();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `RestoreDBClusterFromSnapshot`.
24///
25/// <p>Creates a new cluster from a snapshot or cluster snapshot.</p>
26/// <p>If a snapshot is specified, the target cluster is created from the source DB snapshot with a default configuration and default security group.</p>
27/// <p>If a cluster snapshot is specified, the target cluster is created from the source cluster restore point with the same configuration as the original source DB cluster, except that the new cluster is created with the default security group.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct RestoreDBClusterFromSnapshotFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDbClusterFromSnapshotInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
37        crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
38    > for RestoreDBClusterFromSnapshotFluentBuilder
39{
40    fn send(
41        self,
42        config_override: crate::config::Builder,
43    ) -> crate::client::customize::internal::BoxFuture<
44        crate::client::customize::internal::SendResult<
45            crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
46            crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl RestoreDBClusterFromSnapshotFluentBuilder {
53    /// Creates a new `RestoreDBClusterFromSnapshotFluentBuilder`.
54    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
55        Self {
56            handle,
57            inner: ::std::default::Default::default(),
58            config_override: ::std::option::Option::None,
59        }
60    }
61    /// Access the RestoreDBClusterFromSnapshot as a reference.
62    pub fn as_input(&self) -> &crate::operation::restore_db_cluster_from_snapshot::builders::RestoreDbClusterFromSnapshotInputBuilder {
63        &self.inner
64    }
65    /// Sends the request and returns the response.
66    ///
67    /// If an error occurs, an `SdkError` will be returned with additional details that
68    /// can be matched against.
69    ///
70    /// By default, any retryable failures will be retried twice. Retry behavior
71    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
72    /// set when configuring the client.
73    pub async fn send(
74        self,
75    ) -> ::std::result::Result<
76        crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
79            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
80        >,
81    > {
82        let input = self
83            .inner
84            .build()
85            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
86        let runtime_plugins = crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshot::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshot::orchestrate(&runtime_plugins, input).await
92    }
93
94    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
95    pub fn customize(
96        self,
97    ) -> crate::client::customize::CustomizableOperation<
98        crate::operation::restore_db_cluster_from_snapshot::RestoreDbClusterFromSnapshotOutput,
99        crate::operation::restore_db_cluster_from_snapshot::RestoreDBClusterFromSnapshotError,
100        Self,
101    > {
102        crate::client::customize::CustomizableOperation::new(self)
103    }
104    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
105        self.set_config_override(::std::option::Option::Some(config_override.into()));
106        self
107    }
108
109    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
110        self.config_override = config_override;
111        self
112    }
113    ///
114    /// Appends an item to `AvailabilityZones`.
115    ///
116    /// To override the contents of this collection use [`set_availability_zones`](Self::set_availability_zones).
117    ///
118    /// <p>Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.</p>
119    pub fn availability_zones(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
120        self.inner = self.inner.availability_zones(input.into());
121        self
122    }
123    /// <p>Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.</p>
124    pub fn set_availability_zones(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
125        self.inner = self.inner.set_availability_zones(input);
126        self
127    }
128    /// <p>Provides the list of Amazon EC2 Availability Zones that instances in the restored DB cluster can be created in.</p>
129    pub fn get_availability_zones(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
130        self.inner.get_availability_zones()
131    }
132    /// <p>The name of the cluster to create from the snapshot or cluster snapshot. This parameter isn't case sensitive.</p>
133    /// <p>Constraints:</p>
134    /// <ul>
135    /// <li>
136    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
137    /// <li>
138    /// <p>The first character must be a letter.</p></li>
139    /// <li>
140    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
141    /// </ul>
142    /// <p>Example: <code>my-snapshot-id</code></p>
143    pub fn db_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
144        self.inner = self.inner.db_cluster_identifier(input.into());
145        self
146    }
147    /// <p>The name of the cluster to create from the snapshot or cluster snapshot. This parameter isn't case sensitive.</p>
148    /// <p>Constraints:</p>
149    /// <ul>
150    /// <li>
151    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
152    /// <li>
153    /// <p>The first character must be a letter.</p></li>
154    /// <li>
155    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
156    /// </ul>
157    /// <p>Example: <code>my-snapshot-id</code></p>
158    pub fn set_db_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
159        self.inner = self.inner.set_db_cluster_identifier(input);
160        self
161    }
162    /// <p>The name of the cluster to create from the snapshot or cluster snapshot. This parameter isn't case sensitive.</p>
163    /// <p>Constraints:</p>
164    /// <ul>
165    /// <li>
166    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
167    /// <li>
168    /// <p>The first character must be a letter.</p></li>
169    /// <li>
170    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
171    /// </ul>
172    /// <p>Example: <code>my-snapshot-id</code></p>
173    pub fn get_db_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
174        self.inner.get_db_cluster_identifier()
175    }
176    /// <p>The identifier for the snapshot or cluster snapshot to restore from.</p>
177    /// <p>You can use either the name or the Amazon Resource Name (ARN) to specify a cluster snapshot. However, you can use only the ARN to specify a snapshot.</p>
178    /// <p>Constraints:</p>
179    /// <ul>
180    /// <li>
181    /// <p>Must match the identifier of an existing snapshot.</p></li>
182    /// </ul>
183    pub fn snapshot_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
184        self.inner = self.inner.snapshot_identifier(input.into());
185        self
186    }
187    /// <p>The identifier for the snapshot or cluster snapshot to restore from.</p>
188    /// <p>You can use either the name or the Amazon Resource Name (ARN) to specify a cluster snapshot. However, you can use only the ARN to specify a snapshot.</p>
189    /// <p>Constraints:</p>
190    /// <ul>
191    /// <li>
192    /// <p>Must match the identifier of an existing snapshot.</p></li>
193    /// </ul>
194    pub fn set_snapshot_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
195        self.inner = self.inner.set_snapshot_identifier(input);
196        self
197    }
198    /// <p>The identifier for the snapshot or cluster snapshot to restore from.</p>
199    /// <p>You can use either the name or the Amazon Resource Name (ARN) to specify a cluster snapshot. However, you can use only the ARN to specify a snapshot.</p>
200    /// <p>Constraints:</p>
201    /// <ul>
202    /// <li>
203    /// <p>Must match the identifier of an existing snapshot.</p></li>
204    /// </ul>
205    pub fn get_snapshot_identifier(&self) -> &::std::option::Option<::std::string::String> {
206        self.inner.get_snapshot_identifier()
207    }
208    /// <p>The database engine to use for the new cluster.</p>
209    /// <p>Default: The same as source.</p>
210    /// <p>Constraint: Must be compatible with the engine of the source.</p>
211    pub fn engine(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
212        self.inner = self.inner.engine(input.into());
213        self
214    }
215    /// <p>The database engine to use for the new cluster.</p>
216    /// <p>Default: The same as source.</p>
217    /// <p>Constraint: Must be compatible with the engine of the source.</p>
218    pub fn set_engine(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
219        self.inner = self.inner.set_engine(input);
220        self
221    }
222    /// <p>The database engine to use for the new cluster.</p>
223    /// <p>Default: The same as source.</p>
224    /// <p>Constraint: Must be compatible with the engine of the source.</p>
225    pub fn get_engine(&self) -> &::std::option::Option<::std::string::String> {
226        self.inner.get_engine()
227    }
228    /// <p>The version of the database engine to use for the new cluster.</p>
229    pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.inner = self.inner.engine_version(input.into());
231        self
232    }
233    /// <p>The version of the database engine to use for the new cluster.</p>
234    pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
235        self.inner = self.inner.set_engine_version(input);
236        self
237    }
238    /// <p>The version of the database engine to use for the new cluster.</p>
239    pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
240        self.inner.get_engine_version()
241    }
242    /// <p>The port number on which the new cluster accepts connections.</p>
243    /// <p>Constraints: Must be a value from <code>1150</code> to <code>65535</code>.</p>
244    /// <p>Default: The same port as the original cluster.</p>
245    pub fn port(mut self, input: i32) -> Self {
246        self.inner = self.inner.port(input);
247        self
248    }
249    /// <p>The port number on which the new cluster accepts connections.</p>
250    /// <p>Constraints: Must be a value from <code>1150</code> to <code>65535</code>.</p>
251    /// <p>Default: The same port as the original cluster.</p>
252    pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
253        self.inner = self.inner.set_port(input);
254        self
255    }
256    /// <p>The port number on which the new cluster accepts connections.</p>
257    /// <p>Constraints: Must be a value from <code>1150</code> to <code>65535</code>.</p>
258    /// <p>Default: The same port as the original cluster.</p>
259    pub fn get_port(&self) -> &::std::option::Option<i32> {
260        self.inner.get_port()
261    }
262    /// <p>The name of the subnet group to use for the new cluster.</p>
263    /// <p>Constraints: If provided, must match the name of an existing <code>DBSubnetGroup</code>.</p>
264    /// <p>Example: <code>mySubnetgroup</code></p>
265    pub fn db_subnet_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
266        self.inner = self.inner.db_subnet_group_name(input.into());
267        self
268    }
269    /// <p>The name of the subnet group to use for the new cluster.</p>
270    /// <p>Constraints: If provided, must match the name of an existing <code>DBSubnetGroup</code>.</p>
271    /// <p>Example: <code>mySubnetgroup</code></p>
272    pub fn set_db_subnet_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
273        self.inner = self.inner.set_db_subnet_group_name(input);
274        self
275    }
276    /// <p>The name of the subnet group to use for the new cluster.</p>
277    /// <p>Constraints: If provided, must match the name of an existing <code>DBSubnetGroup</code>.</p>
278    /// <p>Example: <code>mySubnetgroup</code></p>
279    pub fn get_db_subnet_group_name(&self) -> &::std::option::Option<::std::string::String> {
280        self.inner.get_db_subnet_group_name()
281    }
282    ///
283    /// Appends an item to `VpcSecurityGroupIds`.
284    ///
285    /// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
286    ///
287    /// <p>A list of virtual private cloud (VPC) security groups that the new cluster will belong to.</p>
288    pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
289        self.inner = self.inner.vpc_security_group_ids(input.into());
290        self
291    }
292    /// <p>A list of virtual private cloud (VPC) security groups that the new cluster will belong to.</p>
293    pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
294        self.inner = self.inner.set_vpc_security_group_ids(input);
295        self
296    }
297    /// <p>A list of virtual private cloud (VPC) security groups that the new cluster will belong to.</p>
298    pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
299        self.inner.get_vpc_security_group_ids()
300    }
301    ///
302    /// Appends an item to `Tags`.
303    ///
304    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
305    ///
306    /// <p>The tags to be assigned to the restored cluster.</p>
307    pub fn tags(mut self, input: crate::types::Tag) -> Self {
308        self.inner = self.inner.tags(input);
309        self
310    }
311    /// <p>The tags to be assigned to the restored cluster.</p>
312    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
313        self.inner = self.inner.set_tags(input);
314        self
315    }
316    /// <p>The tags to be assigned to the restored cluster.</p>
317    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
318        self.inner.get_tags()
319    }
320    /// <p>The KMS key identifier to use when restoring an encrypted cluster from a DB snapshot or cluster snapshot.</p>
321    /// <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a cluster with the same Amazon Web Services account that owns the KMS encryption key used to encrypt the new cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p>
322    /// <p>If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p>
323    /// <ul>
324    /// <li>
325    /// <p>If the snapshot or cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the snapshot or the cluster snapshot.</p></li>
326    /// <li>
327    /// <p>If the snapshot or the cluster snapshot in <code>SnapshotIdentifier</code> is not encrypted, then the restored DB cluster is not encrypted.</p></li>
328    /// </ul>
329    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
330        self.inner = self.inner.kms_key_id(input.into());
331        self
332    }
333    /// <p>The KMS key identifier to use when restoring an encrypted cluster from a DB snapshot or cluster snapshot.</p>
334    /// <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a cluster with the same Amazon Web Services account that owns the KMS encryption key used to encrypt the new cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p>
335    /// <p>If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p>
336    /// <ul>
337    /// <li>
338    /// <p>If the snapshot or cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the snapshot or the cluster snapshot.</p></li>
339    /// <li>
340    /// <p>If the snapshot or the cluster snapshot in <code>SnapshotIdentifier</code> is not encrypted, then the restored DB cluster is not encrypted.</p></li>
341    /// </ul>
342    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
343        self.inner = self.inner.set_kms_key_id(input);
344        self
345    }
346    /// <p>The KMS key identifier to use when restoring an encrypted cluster from a DB snapshot or cluster snapshot.</p>
347    /// <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are restoring a cluster with the same Amazon Web Services account that owns the KMS encryption key used to encrypt the new cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p>
348    /// <p>If you do not specify a value for the <code>KmsKeyId</code> parameter, then the following occurs:</p>
349    /// <ul>
350    /// <li>
351    /// <p>If the snapshot or cluster snapshot in <code>SnapshotIdentifier</code> is encrypted, then the restored cluster is encrypted using the KMS key that was used to encrypt the snapshot or the cluster snapshot.</p></li>
352    /// <li>
353    /// <p>If the snapshot or the cluster snapshot in <code>SnapshotIdentifier</code> is not encrypted, then the restored DB cluster is not encrypted.</p></li>
354    /// </ul>
355    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
356        self.inner.get_kms_key_id()
357    }
358    ///
359    /// Appends an item to `EnableCloudwatchLogsExports`.
360    ///
361    /// To override the contents of this collection use [`set_enable_cloudwatch_logs_exports`](Self::set_enable_cloudwatch_logs_exports).
362    ///
363    /// <p>A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.</p>
364    pub fn enable_cloudwatch_logs_exports(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
365        self.inner = self.inner.enable_cloudwatch_logs_exports(input.into());
366        self
367    }
368    /// <p>A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.</p>
369    pub fn set_enable_cloudwatch_logs_exports(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
370        self.inner = self.inner.set_enable_cloudwatch_logs_exports(input);
371        self
372    }
373    /// <p>A list of log types that must be enabled for exporting to Amazon CloudWatch Logs.</p>
374    pub fn get_enable_cloudwatch_logs_exports(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
375        self.inner.get_enable_cloudwatch_logs_exports()
376    }
377    /// <p>Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.</p>
378    pub fn deletion_protection(mut self, input: bool) -> Self {
379        self.inner = self.inner.deletion_protection(input);
380        self
381    }
382    /// <p>Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.</p>
383    pub fn set_deletion_protection(mut self, input: ::std::option::Option<bool>) -> Self {
384        self.inner = self.inner.set_deletion_protection(input);
385        self
386    }
387    /// <p>Specifies whether this cluster can be deleted. If <code>DeletionProtection</code> is enabled, the cluster cannot be deleted unless it is modified and <code>DeletionProtection</code> is disabled. <code>DeletionProtection</code> protects clusters from being accidentally deleted.</p>
388    pub fn get_deletion_protection(&self) -> &::std::option::Option<bool> {
389        self.inner.get_deletion_protection()
390    }
391    /// <p>The name of the DB cluster parameter group to associate with this DB cluster.</p>
392    /// <p><i>Type:</i> String. &nbsp; &nbsp; &nbsp; <i>Required:</i> No.</p>
393    /// <p>If this argument is omitted, the default DB cluster parameter group is used. If supplied, must match the name of an existing default DB cluster parameter group. The string must consist of from 1 to 255 letters, numbers or hyphens. Its first character must be a letter, and it cannot end with a hyphen or contain two consecutive hyphens.</p>
394    pub fn db_cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395        self.inner = self.inner.db_cluster_parameter_group_name(input.into());
396        self
397    }
398    /// <p>The name of the DB cluster parameter group to associate with this DB cluster.</p>
399    /// <p><i>Type:</i> String. &nbsp; &nbsp; &nbsp; <i>Required:</i> No.</p>
400    /// <p>If this argument is omitted, the default DB cluster parameter group is used. If supplied, must match the name of an existing default DB cluster parameter group. The string must consist of from 1 to 255 letters, numbers or hyphens. Its first character must be a letter, and it cannot end with a hyphen or contain two consecutive hyphens.</p>
401    pub fn set_db_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
402        self.inner = self.inner.set_db_cluster_parameter_group_name(input);
403        self
404    }
405    /// <p>The name of the DB cluster parameter group to associate with this DB cluster.</p>
406    /// <p><i>Type:</i> String. &nbsp; &nbsp; &nbsp; <i>Required:</i> No.</p>
407    /// <p>If this argument is omitted, the default DB cluster parameter group is used. If supplied, must match the name of an existing default DB cluster parameter group. The string must consist of from 1 to 255 letters, numbers or hyphens. Its first character must be a letter, and it cannot end with a hyphen or contain two consecutive hyphens.</p>
408    pub fn get_db_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
409        self.inner.get_db_cluster_parameter_group_name()
410    }
411    /// <p>Contains the scaling configuration of an Amazon DocumentDB Serverless cluster.</p>
412    pub fn serverless_v2_scaling_configuration(mut self, input: crate::types::ServerlessV2ScalingConfiguration) -> Self {
413        self.inner = self.inner.serverless_v2_scaling_configuration(input);
414        self
415    }
416    /// <p>Contains the scaling configuration of an Amazon DocumentDB Serverless cluster.</p>
417    pub fn set_serverless_v2_scaling_configuration(mut self, input: ::std::option::Option<crate::types::ServerlessV2ScalingConfiguration>) -> Self {
418        self.inner = self.inner.set_serverless_v2_scaling_configuration(input);
419        self
420    }
421    /// <p>Contains the scaling configuration of an Amazon DocumentDB Serverless cluster.</p>
422    pub fn get_serverless_v2_scaling_configuration(&self) -> &::std::option::Option<crate::types::ServerlessV2ScalingConfiguration> {
423        self.inner.get_serverless_v2_scaling_configuration()
424    }
425    /// <p>The storage type to associate with the DB cluster.</p>
426    /// <p>For information on storage types for Amazon DocumentDB clusters, see Cluster storage configurations in the <i>Amazon DocumentDB Developer Guide</i>.</p>
427    /// <p>Valid values for storage type - <code>standard | iopt1</code></p>
428    /// <p>Default value is <code>standard </code></p>
429    pub fn storage_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
430        self.inner = self.inner.storage_type(input.into());
431        self
432    }
433    /// <p>The storage type to associate with the DB cluster.</p>
434    /// <p>For information on storage types for Amazon DocumentDB clusters, see Cluster storage configurations in the <i>Amazon DocumentDB Developer Guide</i>.</p>
435    /// <p>Valid values for storage type - <code>standard | iopt1</code></p>
436    /// <p>Default value is <code>standard </code></p>
437    pub fn set_storage_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
438        self.inner = self.inner.set_storage_type(input);
439        self
440    }
441    /// <p>The storage type to associate with the DB cluster.</p>
442    /// <p>For information on storage types for Amazon DocumentDB clusters, see Cluster storage configurations in the <i>Amazon DocumentDB Developer Guide</i>.</p>
443    /// <p>Valid values for storage type - <code>standard | iopt1</code></p>
444    /// <p>Default value is <code>standard </code></p>
445    pub fn get_storage_type(&self) -> &::std::option::Option<::std::string::String> {
446        self.inner.get_storage_type()
447    }
448    /// <p>The network type of the cluster.</p>
449    /// <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the cluster. A <code>DBSubnetGroup</code> can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (<code>DUAL</code>).</p>
450    /// <p>For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/vpc-clusters.html">DocumentDB clusters in a VPC</a> in the Amazon DocumentDB Developer Guide.</p>
451    /// <p>Valid Values: <code>IPV4</code> | <code>DUAL</code></p>
452    pub fn network_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
453        self.inner = self.inner.network_type(input.into());
454        self
455    }
456    /// <p>The network type of the cluster.</p>
457    /// <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the cluster. A <code>DBSubnetGroup</code> can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (<code>DUAL</code>).</p>
458    /// <p>For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/vpc-clusters.html">DocumentDB clusters in a VPC</a> in the Amazon DocumentDB Developer Guide.</p>
459    /// <p>Valid Values: <code>IPV4</code> | <code>DUAL</code></p>
460    pub fn set_network_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
461        self.inner = self.inner.set_network_type(input);
462        self
463    }
464    /// <p>The network type of the cluster.</p>
465    /// <p>The network type is determined by the <code>DBSubnetGroup</code> specified for the cluster. A <code>DBSubnetGroup</code> can support only the IPv4 protocol or the IPv4 and the IPv6 protocols (<code>DUAL</code>).</p>
466    /// <p>For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/vpc-clusters.html">DocumentDB clusters in a VPC</a> in the Amazon DocumentDB Developer Guide.</p>
467    /// <p>Valid Values: <code>IPV4</code> | <code>DUAL</code></p>
468    pub fn get_network_type(&self) -> &::std::option::Option<::std::string::String> {
469        self.inner.get_network_type()
470    }
471}