aws_sdk_neptune/operation/create_db_cluster/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_db_cluster::_create_db_cluster_output::CreateDbClusterOutputBuilder;
3
4pub use crate::operation::create_db_cluster::_create_db_cluster_input::CreateDbClusterInputBuilder;
5
6impl crate::operation::create_db_cluster::builders::CreateDbClusterInputBuilder {
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::create_db_cluster::CreateDbClusterOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_db_cluster::CreateDBClusterError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_db_cluster();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateDBCluster`.
24///
25/// <p>Creates a new Amazon Neptune DB cluster.</p>
26/// <p>You can use the <code>ReplicationSourceIdentifier</code> parameter to create the DB cluster as a Read Replica of another DB cluster or Amazon Neptune DB instance.</p>
27/// <p>Note that when you create a new cluster using <code>CreateDBCluster</code> directly, deletion protection is disabled by default (when you create a new production cluster in the console, deletion protection is enabled by default). You can only delete a DB cluster if its <code>DeletionProtection</code> field is set to <code>false</code>.</p>
28#[derive(::std::clone::Clone, ::std::fmt::Debug)]
29pub struct CreateDBClusterFluentBuilder {
30    handle: ::std::sync::Arc<crate::client::Handle>,
31    inner: crate::operation::create_db_cluster::builders::CreateDbClusterInputBuilder,
32    config_override: ::std::option::Option<crate::config::Builder>,
33}
34impl
35    crate::client::customize::internal::CustomizableSend<
36        crate::operation::create_db_cluster::CreateDbClusterOutput,
37        crate::operation::create_db_cluster::CreateDBClusterError,
38    > for CreateDBClusterFluentBuilder
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::create_db_cluster::CreateDbClusterOutput,
46            crate::operation::create_db_cluster::CreateDBClusterError,
47        >,
48    > {
49        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
50    }
51}
52impl CreateDBClusterFluentBuilder {
53    /// Creates a new `CreateDBClusterFluentBuilder`.
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 CreateDBCluster as a reference.
62    pub fn as_input(&self) -> &crate::operation::create_db_cluster::builders::CreateDbClusterInputBuilder {
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::create_db_cluster::CreateDbClusterOutput,
77        ::aws_smithy_runtime_api::client::result::SdkError<
78            crate::operation::create_db_cluster::CreateDBClusterError,
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::create_db_cluster::CreateDBCluster::operation_runtime_plugins(
87            self.handle.runtime_plugins.clone(),
88            &self.handle.conf,
89            self.config_override,
90        );
91        crate::operation::create_db_cluster::CreateDBCluster::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::create_db_cluster::CreateDbClusterOutput,
99        crate::operation::create_db_cluster::CreateDBClusterError,
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>A list of EC2 Availability Zones that instances in the 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>A list of EC2 Availability Zones that instances in the 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>A list of EC2 Availability Zones that instances in the 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 number of days for which automated backups are retained. You must specify a minimum value of 1.</p>
133    /// <p>Default: 1</p>
134    /// <p>Constraints:</p>
135    /// <ul>
136    /// <li>
137    /// <p>Must be a value from 1 to 35</p></li>
138    /// </ul>
139    pub fn backup_retention_period(mut self, input: i32) -> Self {
140        self.inner = self.inner.backup_retention_period(input);
141        self
142    }
143    /// <p>The number of days for which automated backups are retained. You must specify a minimum value of 1.</p>
144    /// <p>Default: 1</p>
145    /// <p>Constraints:</p>
146    /// <ul>
147    /// <li>
148    /// <p>Must be a value from 1 to 35</p></li>
149    /// </ul>
150    pub fn set_backup_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
151        self.inner = self.inner.set_backup_retention_period(input);
152        self
153    }
154    /// <p>The number of days for which automated backups are retained. You must specify a minimum value of 1.</p>
155    /// <p>Default: 1</p>
156    /// <p>Constraints:</p>
157    /// <ul>
158    /// <li>
159    /// <p>Must be a value from 1 to 35</p></li>
160    /// </ul>
161    pub fn get_backup_retention_period(&self) -> &::std::option::Option<i32> {
162        self.inner.get_backup_retention_period()
163    }
164    /// <p><i>(Not supported by Neptune)</i></p>
165    pub fn character_set_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
166        self.inner = self.inner.character_set_name(input.into());
167        self
168    }
169    /// <p><i>(Not supported by Neptune)</i></p>
170    pub fn set_character_set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
171        self.inner = self.inner.set_character_set_name(input);
172        self
173    }
174    /// <p><i>(Not supported by Neptune)</i></p>
175    pub fn get_character_set_name(&self) -> &::std::option::Option<::std::string::String> {
176        self.inner.get_character_set_name()
177    }
178    /// <p><i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i></p>
179    pub fn copy_tags_to_snapshot(mut self, input: bool) -> Self {
180        self.inner = self.inner.copy_tags_to_snapshot(input);
181        self
182    }
183    /// <p><i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i></p>
184    pub fn set_copy_tags_to_snapshot(mut self, input: ::std::option::Option<bool>) -> Self {
185        self.inner = self.inner.set_copy_tags_to_snapshot(input);
186        self
187    }
188    /// <p><i>If set to <code>true</code>, tags are copied to any snapshot of the DB cluster that is created.</i></p>
189    pub fn get_copy_tags_to_snapshot(&self) -> &::std::option::Option<bool> {
190        self.inner.get_copy_tags_to_snapshot()
191    }
192    /// <p>The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon Neptune will not create a database in the DB cluster you are creating.</p>
193    pub fn database_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
194        self.inner = self.inner.database_name(input.into());
195        self
196    }
197    /// <p>The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon Neptune will not create a database in the DB cluster you are creating.</p>
198    pub fn set_database_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
199        self.inner = self.inner.set_database_name(input);
200        self
201    }
202    /// <p>The name for your database of up to 64 alpha-numeric characters. If you do not provide a name, Amazon Neptune will not create a database in the DB cluster you are creating.</p>
203    pub fn get_database_name(&self) -> &::std::option::Option<::std::string::String> {
204        self.inner.get_database_name()
205    }
206    /// <p>The DB cluster identifier. This parameter is stored as a lowercase string.</p>
207    /// <p>Constraints:</p>
208    /// <ul>
209    /// <li>
210    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
211    /// <li>
212    /// <p>First character must be a letter.</p></li>
213    /// <li>
214    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
215    /// </ul>
216    /// <p>Example: <code>my-cluster1</code></p>
217    pub fn db_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
218        self.inner = self.inner.db_cluster_identifier(input.into());
219        self
220    }
221    /// <p>The DB cluster identifier. This parameter is stored as a lowercase string.</p>
222    /// <p>Constraints:</p>
223    /// <ul>
224    /// <li>
225    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
226    /// <li>
227    /// <p>First character must be a letter.</p></li>
228    /// <li>
229    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
230    /// </ul>
231    /// <p>Example: <code>my-cluster1</code></p>
232    pub fn set_db_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
233        self.inner = self.inner.set_db_cluster_identifier(input);
234        self
235    }
236    /// <p>The DB cluster identifier. This parameter is stored as a lowercase string.</p>
237    /// <p>Constraints:</p>
238    /// <ul>
239    /// <li>
240    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
241    /// <li>
242    /// <p>First character must be a letter.</p></li>
243    /// <li>
244    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
245    /// </ul>
246    /// <p>Example: <code>my-cluster1</code></p>
247    pub fn get_db_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
248        self.inner.get_db_cluster_identifier()
249    }
250    /// <p>The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default is used.</p>
251    /// <p>Constraints:</p>
252    /// <ul>
253    /// <li>
254    /// <p>If supplied, must match the name of an existing DBClusterParameterGroup.</p></li>
255    /// </ul>
256    pub fn db_cluster_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
257        self.inner = self.inner.db_cluster_parameter_group_name(input.into());
258        self
259    }
260    /// <p>The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default is used.</p>
261    /// <p>Constraints:</p>
262    /// <ul>
263    /// <li>
264    /// <p>If supplied, must match the name of an existing DBClusterParameterGroup.</p></li>
265    /// </ul>
266    pub fn set_db_cluster_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
267        self.inner = self.inner.set_db_cluster_parameter_group_name(input);
268        self
269    }
270    /// <p>The name of the DB cluster parameter group to associate with this DB cluster. If this argument is omitted, the default is used.</p>
271    /// <p>Constraints:</p>
272    /// <ul>
273    /// <li>
274    /// <p>If supplied, must match the name of an existing DBClusterParameterGroup.</p></li>
275    /// </ul>
276    pub fn get_db_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
277        self.inner.get_db_cluster_parameter_group_name()
278    }
279    ///
280    /// Appends an item to `VpcSecurityGroupIds`.
281    ///
282    /// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
283    ///
284    /// <p>A list of EC2 VPC security groups to associate with this DB cluster.</p>
285    pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286        self.inner = self.inner.vpc_security_group_ids(input.into());
287        self
288    }
289    /// <p>A list of EC2 VPC security groups to associate with this DB cluster.</p>
290    pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
291        self.inner = self.inner.set_vpc_security_group_ids(input);
292        self
293    }
294    /// <p>A list of EC2 VPC security groups to associate with this DB cluster.</p>
295    pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
296        self.inner.get_vpc_security_group_ids()
297    }
298    /// <p>A DB subnet group to associate with this DB cluster.</p>
299    /// <p>Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.</p>
300    /// <p>Example: <code>mySubnetgroup</code></p>
301    pub fn db_subnet_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
302        self.inner = self.inner.db_subnet_group_name(input.into());
303        self
304    }
305    /// <p>A DB subnet group to associate with this DB cluster.</p>
306    /// <p>Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.</p>
307    /// <p>Example: <code>mySubnetgroup</code></p>
308    pub fn set_db_subnet_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
309        self.inner = self.inner.set_db_subnet_group_name(input);
310        self
311    }
312    /// <p>A DB subnet group to associate with this DB cluster.</p>
313    /// <p>Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.</p>
314    /// <p>Example: <code>mySubnetgroup</code></p>
315    pub fn get_db_subnet_group_name(&self) -> &::std::option::Option<::std::string::String> {
316        self.inner.get_db_subnet_group_name()
317    }
318    /// <p>The name of the database engine to be used for this DB cluster.</p>
319    /// <p>Valid Values: <code>neptune</code></p>
320    pub fn engine(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
321        self.inner = self.inner.engine(input.into());
322        self
323    }
324    /// <p>The name of the database engine to be used for this DB cluster.</p>
325    /// <p>Valid Values: <code>neptune</code></p>
326    pub fn set_engine(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
327        self.inner = self.inner.set_engine(input);
328        self
329    }
330    /// <p>The name of the database engine to be used for this DB cluster.</p>
331    /// <p>Valid Values: <code>neptune</code></p>
332    pub fn get_engine(&self) -> &::std::option::Option<::std::string::String> {
333        self.inner.get_engine()
334    }
335    /// <p>The version number of the database engine to use for the new DB cluster.</p>
336    /// <p>Example: <code>1.2.1.0</code></p>
337    pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
338        self.inner = self.inner.engine_version(input.into());
339        self
340    }
341    /// <p>The version number of the database engine to use for the new DB cluster.</p>
342    /// <p>Example: <code>1.2.1.0</code></p>
343    pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
344        self.inner = self.inner.set_engine_version(input);
345        self
346    }
347    /// <p>The version number of the database engine to use for the new DB cluster.</p>
348    /// <p>Example: <code>1.2.1.0</code></p>
349    pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
350        self.inner.get_engine_version()
351    }
352    /// <p>The port number on which the instances in the DB cluster accept connections.</p>
353    /// <p>Default: <code>8182</code></p>
354    pub fn port(mut self, input: i32) -> Self {
355        self.inner = self.inner.port(input);
356        self
357    }
358    /// <p>The port number on which the instances in the DB cluster accept connections.</p>
359    /// <p>Default: <code>8182</code></p>
360    pub fn set_port(mut self, input: ::std::option::Option<i32>) -> Self {
361        self.inner = self.inner.set_port(input);
362        self
363    }
364    /// <p>The port number on which the instances in the DB cluster accept connections.</p>
365    /// <p>Default: <code>8182</code></p>
366    pub fn get_port(&self) -> &::std::option::Option<i32> {
367        self.inner.get_port()
368    }
369    /// <p>Not supported by Neptune.</p>
370    pub fn master_username(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
371        self.inner = self.inner.master_username(input.into());
372        self
373    }
374    /// <p>Not supported by Neptune.</p>
375    pub fn set_master_username(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
376        self.inner = self.inner.set_master_username(input);
377        self
378    }
379    /// <p>Not supported by Neptune.</p>
380    pub fn get_master_username(&self) -> &::std::option::Option<::std::string::String> {
381        self.inner.get_master_username()
382    }
383    /// <p>Not supported by Neptune.</p>
384    pub fn master_user_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
385        self.inner = self.inner.master_user_password(input.into());
386        self
387    }
388    /// <p>Not supported by Neptune.</p>
389    pub fn set_master_user_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
390        self.inner = self.inner.set_master_user_password(input);
391        self
392    }
393    /// <p>Not supported by Neptune.</p>
394    pub fn get_master_user_password(&self) -> &::std::option::Option<::std::string::String> {
395        self.inner.get_master_user_password()
396    }
397    /// <p><i>(Not supported by Neptune)</i></p>
398    pub fn option_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
399        self.inner = self.inner.option_group_name(input.into());
400        self
401    }
402    /// <p><i>(Not supported by Neptune)</i></p>
403    pub fn set_option_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
404        self.inner = self.inner.set_option_group_name(input);
405        self
406    }
407    /// <p><i>(Not supported by Neptune)</i></p>
408    pub fn get_option_group_name(&self) -> &::std::option::Option<::std::string::String> {
409        self.inner.get_option_group_name()
410    }
411    /// <p>The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter.</p>
412    /// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region. To see the time blocks available, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-maintaining.html#manage-console-maintaining-window">Neptune Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i></p>
413    /// <p>Constraints:</p>
414    /// <ul>
415    /// <li>
416    /// <p>Must be in the format <code>hh24:mi-hh24:mi</code>.</p></li>
417    /// <li>
418    /// <p>Must be in Universal Coordinated Time (UTC).</p></li>
419    /// <li>
420    /// <p>Must not conflict with the preferred maintenance window.</p></li>
421    /// <li>
422    /// <p>Must be at least 30 minutes.</p></li>
423    /// </ul>
424    pub fn preferred_backup_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
425        self.inner = self.inner.preferred_backup_window(input.into());
426        self
427    }
428    /// <p>The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter.</p>
429    /// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region. To see the time blocks available, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-maintaining.html#manage-console-maintaining-window">Neptune Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i></p>
430    /// <p>Constraints:</p>
431    /// <ul>
432    /// <li>
433    /// <p>Must be in the format <code>hh24:mi-hh24:mi</code>.</p></li>
434    /// <li>
435    /// <p>Must be in Universal Coordinated Time (UTC).</p></li>
436    /// <li>
437    /// <p>Must not conflict with the preferred maintenance window.</p></li>
438    /// <li>
439    /// <p>Must be at least 30 minutes.</p></li>
440    /// </ul>
441    pub fn set_preferred_backup_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
442        self.inner = self.inner.set_preferred_backup_window(input);
443        self
444    }
445    /// <p>The daily time range during which automated backups are created if automated backups are enabled using the <code>BackupRetentionPeriod</code> parameter.</p>
446    /// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region. To see the time blocks available, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-maintaining.html#manage-console-maintaining-window">Neptune Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i></p>
447    /// <p>Constraints:</p>
448    /// <ul>
449    /// <li>
450    /// <p>Must be in the format <code>hh24:mi-hh24:mi</code>.</p></li>
451    /// <li>
452    /// <p>Must be in Universal Coordinated Time (UTC).</p></li>
453    /// <li>
454    /// <p>Must not conflict with the preferred maintenance window.</p></li>
455    /// <li>
456    /// <p>Must be at least 30 minutes.</p></li>
457    /// </ul>
458    pub fn get_preferred_backup_window(&self) -> &::std::option::Option<::std::string::String> {
459        self.inner.get_preferred_backup_window()
460    }
461    /// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
462    /// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
463    /// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-maintaining.html#manage-console-maintaining-window">Neptune Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i></p>
464    /// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.</p>
465    /// <p>Constraints: Minimum 30-minute window.</p>
466    pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
467        self.inner = self.inner.preferred_maintenance_window(input.into());
468        self
469    }
470    /// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
471    /// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
472    /// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-maintaining.html#manage-console-maintaining-window">Neptune Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i></p>
473    /// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.</p>
474    /// <p>Constraints: Minimum 30-minute window.</p>
475    pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
476        self.inner = self.inner.set_preferred_maintenance_window(input);
477        self
478    }
479    /// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
480    /// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
481    /// <p>The default is a 30-minute window selected at random from an 8-hour block of time for each Amazon Region, occurring on a random day of the week. To see the time blocks available, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-maintaining.html#manage-console-maintaining-window">Neptune Maintenance Window</a> in the <i>Amazon Neptune User Guide.</i></p>
482    /// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.</p>
483    /// <p>Constraints: Minimum 30-minute window.</p>
484    pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
485        self.inner.get_preferred_maintenance_window()
486    }
487    /// <p>The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.</p>
488    pub fn replication_source_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
489        self.inner = self.inner.replication_source_identifier(input.into());
490        self
491    }
492    /// <p>The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.</p>
493    pub fn set_replication_source_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
494        self.inner = self.inner.set_replication_source_identifier(input);
495        self
496    }
497    /// <p>The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a Read Replica.</p>
498    pub fn get_replication_source_identifier(&self) -> &::std::option::Option<::std::string::String> {
499        self.inner.get_replication_source_identifier()
500    }
501    ///
502    /// Appends an item to `Tags`.
503    ///
504    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
505    ///
506    /// <p>The tags to assign to the new DB cluster.</p>
507    pub fn tags(mut self, input: crate::types::Tag) -> Self {
508        self.inner = self.inner.tags(input);
509        self
510    }
511    /// <p>The tags to assign to the new DB cluster.</p>
512    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
513        self.inner = self.inner.set_tags(input);
514        self
515    }
516    /// <p>The tags to assign to the new DB cluster.</p>
517    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
518        self.inner.get_tags()
519    }
520    /// <p>Specifies whether the DB cluster is encrypted.</p>
521    pub fn storage_encrypted(mut self, input: bool) -> Self {
522        self.inner = self.inner.storage_encrypted(input);
523        self
524    }
525    /// <p>Specifies whether the DB cluster is encrypted.</p>
526    pub fn set_storage_encrypted(mut self, input: ::std::option::Option<bool>) -> Self {
527        self.inner = self.inner.set_storage_encrypted(input);
528        self
529    }
530    /// <p>Specifies whether the DB cluster is encrypted.</p>
531    pub fn get_storage_encrypted(&self) -> &::std::option::Option<bool> {
532        self.inner.get_storage_encrypted()
533    }
534    /// <p>The Amazon KMS key identifier for an encrypted DB cluster.</p>
535    /// <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same Amazon account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p>
536    /// <p>If an encryption key is not specified in <code>KmsKeyId</code>:</p>
537    /// <ul>
538    /// <li>
539    /// <p>If <code>ReplicationSourceIdentifier</code> identifies an encrypted source, then Amazon Neptune will use the encryption key used to encrypt the source. Otherwise, Amazon Neptune will use your default encryption key.</p></li>
540    /// <li>
541    /// <p>If the <code>StorageEncrypted</code> parameter is true and <code>ReplicationSourceIdentifier</code> is not specified, then Amazon Neptune will use your default encryption key.</p></li>
542    /// </ul>
543    /// <p>Amazon KMS creates the default encryption key for your Amazon account. Your Amazon account has a different default encryption key for each Amazon Region.</p>
544    /// <p>If you create a Read Replica of an encrypted DB cluster in another Amazon Region, you must set <code>KmsKeyId</code> to a KMS key ID that is valid in the destination Amazon Region. This key is used to encrypt the Read Replica in that Amazon Region.</p>
545    pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
546        self.inner = self.inner.kms_key_id(input.into());
547        self
548    }
549    /// <p>The Amazon KMS key identifier for an encrypted DB cluster.</p>
550    /// <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same Amazon account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p>
551    /// <p>If an encryption key is not specified in <code>KmsKeyId</code>:</p>
552    /// <ul>
553    /// <li>
554    /// <p>If <code>ReplicationSourceIdentifier</code> identifies an encrypted source, then Amazon Neptune will use the encryption key used to encrypt the source. Otherwise, Amazon Neptune will use your default encryption key.</p></li>
555    /// <li>
556    /// <p>If the <code>StorageEncrypted</code> parameter is true and <code>ReplicationSourceIdentifier</code> is not specified, then Amazon Neptune will use your default encryption key.</p></li>
557    /// </ul>
558    /// <p>Amazon KMS creates the default encryption key for your Amazon account. Your Amazon account has a different default encryption key for each Amazon Region.</p>
559    /// <p>If you create a Read Replica of an encrypted DB cluster in another Amazon Region, you must set <code>KmsKeyId</code> to a KMS key ID that is valid in the destination Amazon Region. This key is used to encrypt the Read Replica in that Amazon Region.</p>
560    pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
561        self.inner = self.inner.set_kms_key_id(input);
562        self
563    }
564    /// <p>The Amazon KMS key identifier for an encrypted DB cluster.</p>
565    /// <p>The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key. If you are creating a DB cluster with the same Amazon account that owns the KMS encryption key used to encrypt the new DB cluster, then you can use the KMS key alias instead of the ARN for the KMS encryption key.</p>
566    /// <p>If an encryption key is not specified in <code>KmsKeyId</code>:</p>
567    /// <ul>
568    /// <li>
569    /// <p>If <code>ReplicationSourceIdentifier</code> identifies an encrypted source, then Amazon Neptune will use the encryption key used to encrypt the source. Otherwise, Amazon Neptune will use your default encryption key.</p></li>
570    /// <li>
571    /// <p>If the <code>StorageEncrypted</code> parameter is true and <code>ReplicationSourceIdentifier</code> is not specified, then Amazon Neptune will use your default encryption key.</p></li>
572    /// </ul>
573    /// <p>Amazon KMS creates the default encryption key for your Amazon account. Your Amazon account has a different default encryption key for each Amazon Region.</p>
574    /// <p>If you create a Read Replica of an encrypted DB cluster in another Amazon Region, you must set <code>KmsKeyId</code> to a KMS key ID that is valid in the destination Amazon Region. This key is used to encrypt the Read Replica in that Amazon Region.</p>
575    pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
576        self.inner.get_kms_key_id()
577    }
578    /// <p>This parameter is not currently supported.</p>
579    pub fn pre_signed_url(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
580        self.inner = self.inner.pre_signed_url(input.into());
581        self
582    }
583    /// <p>This parameter is not currently supported.</p>
584    pub fn set_pre_signed_url(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
585        self.inner = self.inner.set_pre_signed_url(input);
586        self
587    }
588    /// <p>This parameter is not currently supported.</p>
589    pub fn get_pre_signed_url(&self) -> &::std::option::Option<::std::string::String> {
590        self.inner.get_pre_signed_url()
591    }
592    /// <p>If set to <code>true</code>, enables Amazon Identity and Access Management (IAM) authentication for the entire DB cluster (this cannot be set at an instance level).</p>
593    /// <p>Default: <code>false</code>.</p>
594    pub fn enable_iam_database_authentication(mut self, input: bool) -> Self {
595        self.inner = self.inner.enable_iam_database_authentication(input);
596        self
597    }
598    /// <p>If set to <code>true</code>, enables Amazon Identity and Access Management (IAM) authentication for the entire DB cluster (this cannot be set at an instance level).</p>
599    /// <p>Default: <code>false</code>.</p>
600    pub fn set_enable_iam_database_authentication(mut self, input: ::std::option::Option<bool>) -> Self {
601        self.inner = self.inner.set_enable_iam_database_authentication(input);
602        self
603    }
604    /// <p>If set to <code>true</code>, enables Amazon Identity and Access Management (IAM) authentication for the entire DB cluster (this cannot be set at an instance level).</p>
605    /// <p>Default: <code>false</code>.</p>
606    pub fn get_enable_iam_database_authentication(&self) -> &::std::option::Option<bool> {
607        self.inner.get_enable_iam_database_authentication()
608    }
609    ///
610    /// Appends an item to `EnableCloudwatchLogsExports`.
611    ///
612    /// To override the contents of this collection use [`set_enable_cloudwatch_logs_exports`](Self::set_enable_cloudwatch_logs_exports).
613    ///
614    /// <p>A list of the log types that this DB cluster should export to CloudWatch Logs. Valid log types are: <code>audit</code> (to publish audit logs) and <code>slowquery</code> (to publish slow-query logs). See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/cloudwatch-logs.html">Publishing Neptune logs to Amazon CloudWatch logs</a>.</p>
615    pub fn enable_cloudwatch_logs_exports(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
616        self.inner = self.inner.enable_cloudwatch_logs_exports(input.into());
617        self
618    }
619    /// <p>A list of the log types that this DB cluster should export to CloudWatch Logs. Valid log types are: <code>audit</code> (to publish audit logs) and <code>slowquery</code> (to publish slow-query logs). See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/cloudwatch-logs.html">Publishing Neptune logs to Amazon CloudWatch logs</a>.</p>
620    pub fn set_enable_cloudwatch_logs_exports(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
621        self.inner = self.inner.set_enable_cloudwatch_logs_exports(input);
622        self
623    }
624    /// <p>A list of the log types that this DB cluster should export to CloudWatch Logs. Valid log types are: <code>audit</code> (to publish audit logs) and <code>slowquery</code> (to publish slow-query logs). See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/cloudwatch-logs.html">Publishing Neptune logs to Amazon CloudWatch logs</a>.</p>
625    pub fn get_enable_cloudwatch_logs_exports(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
626        self.inner.get_enable_cloudwatch_logs_exports()
627    }
628    /// <p>A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is enabled.</p>
629    pub fn deletion_protection(mut self, input: bool) -> Self {
630        self.inner = self.inner.deletion_protection(input);
631        self
632    }
633    /// <p>A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is enabled.</p>
634    pub fn set_deletion_protection(mut self, input: ::std::option::Option<bool>) -> Self {
635        self.inner = self.inner.set_deletion_protection(input);
636        self
637    }
638    /// <p>A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is enabled.</p>
639    pub fn get_deletion_protection(&self) -> &::std::option::Option<bool> {
640        self.inner.get_deletion_protection()
641    }
642    /// <p>Contains the scaling configuration of a Neptune Serverless DB cluster.</p>
643    /// <p>For more information, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-using.html">Using Amazon Neptune Serverless</a> in the <i>Amazon Neptune User Guide</i>.</p>
644    pub fn serverless_v2_scaling_configuration(mut self, input: crate::types::ServerlessV2ScalingConfiguration) -> Self {
645        self.inner = self.inner.serverless_v2_scaling_configuration(input);
646        self
647    }
648    /// <p>Contains the scaling configuration of a Neptune Serverless DB cluster.</p>
649    /// <p>For more information, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-using.html">Using Amazon Neptune Serverless</a> in the <i>Amazon Neptune User Guide</i>.</p>
650    pub fn set_serverless_v2_scaling_configuration(mut self, input: ::std::option::Option<crate::types::ServerlessV2ScalingConfiguration>) -> Self {
651        self.inner = self.inner.set_serverless_v2_scaling_configuration(input);
652        self
653    }
654    /// <p>Contains the scaling configuration of a Neptune Serverless DB cluster.</p>
655    /// <p>For more information, see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/neptune-serverless-using.html">Using Amazon Neptune Serverless</a> in the <i>Amazon Neptune User Guide</i>.</p>
656    pub fn get_serverless_v2_scaling_configuration(&self) -> &::std::option::Option<crate::types::ServerlessV2ScalingConfiguration> {
657        self.inner.get_serverless_v2_scaling_configuration()
658    }
659    /// <p>The ID of the Neptune global database to which this new DB cluster should be added.</p>
660    pub fn global_cluster_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
661        self.inner = self.inner.global_cluster_identifier(input.into());
662        self
663    }
664    /// <p>The ID of the Neptune global database to which this new DB cluster should be added.</p>
665    pub fn set_global_cluster_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
666        self.inner = self.inner.set_global_cluster_identifier(input);
667        self
668    }
669    /// <p>The ID of the Neptune global database to which this new DB cluster should be added.</p>
670    pub fn get_global_cluster_identifier(&self) -> &::std::option::Option<::std::string::String> {
671        self.inner.get_global_cluster_identifier()
672    }
673    /// <p>The storage type for the new DB cluster.</p>
674    /// <p>Valid Values:</p>
675    /// <ul>
676    /// <li>
677    /// <p><b> <code>standard</code> </b> &nbsp; – &nbsp; ( <i>the default</i> ) Configures cost-effective database storage for applications with moderate to small I/O usage. When set to <code>standard</code>, the storage type is not returned in the response.</p></li>
678    /// <li>
679    /// <p><b> <code>iopt1</code> </b> &nbsp; – &nbsp; Enables <a href="https://docs.aws.amazon.com/neptune/latest/userguide/storage-types.html#provisioned-iops-storage">I/O-Optimized storage</a> that's designed to meet the needs of I/O-intensive graph workloads that require predictable pricing with low I/O latency and consistent I/O throughput.</p>
680    /// <p>Neptune I/O-Optimized storage is only available starting with engine release 1.3.0.0.</p></li>
681    /// </ul>
682    pub fn storage_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
683        self.inner = self.inner.storage_type(input.into());
684        self
685    }
686    /// <p>The storage type for the new DB cluster.</p>
687    /// <p>Valid Values:</p>
688    /// <ul>
689    /// <li>
690    /// <p><b> <code>standard</code> </b> &nbsp; – &nbsp; ( <i>the default</i> ) Configures cost-effective database storage for applications with moderate to small I/O usage. When set to <code>standard</code>, the storage type is not returned in the response.</p></li>
691    /// <li>
692    /// <p><b> <code>iopt1</code> </b> &nbsp; – &nbsp; Enables <a href="https://docs.aws.amazon.com/neptune/latest/userguide/storage-types.html#provisioned-iops-storage">I/O-Optimized storage</a> that's designed to meet the needs of I/O-intensive graph workloads that require predictable pricing with low I/O latency and consistent I/O throughput.</p>
693    /// <p>Neptune I/O-Optimized storage is only available starting with engine release 1.3.0.0.</p></li>
694    /// </ul>
695    pub fn set_storage_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
696        self.inner = self.inner.set_storage_type(input);
697        self
698    }
699    /// <p>The storage type for the new DB cluster.</p>
700    /// <p>Valid Values:</p>
701    /// <ul>
702    /// <li>
703    /// <p><b> <code>standard</code> </b> &nbsp; – &nbsp; ( <i>the default</i> ) Configures cost-effective database storage for applications with moderate to small I/O usage. When set to <code>standard</code>, the storage type is not returned in the response.</p></li>
704    /// <li>
705    /// <p><b> <code>iopt1</code> </b> &nbsp; – &nbsp; Enables <a href="https://docs.aws.amazon.com/neptune/latest/userguide/storage-types.html#provisioned-iops-storage">I/O-Optimized storage</a> that's designed to meet the needs of I/O-intensive graph workloads that require predictable pricing with low I/O latency and consistent I/O throughput.</p>
706    /// <p>Neptune I/O-Optimized storage is only available starting with engine release 1.3.0.0.</p></li>
707    /// </ul>
708    pub fn get_storage_type(&self) -> &::std::option::Option<::std::string::String> {
709        self.inner.get_storage_type()
710    }
711}