aws_sdk_neptune/operation/modify_db_instance/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::modify_db_instance::_modify_db_instance_output::ModifyDbInstanceOutputBuilder;
3
4pub use crate::operation::modify_db_instance::_modify_db_instance_input::ModifyDbInstanceInputBuilder;
5
6impl crate::operation::modify_db_instance::builders::ModifyDbInstanceInputBuilder {
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::modify_db_instance::ModifyDbInstanceOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::modify_db_instance::ModifyDBInstanceError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.modify_db_instance();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `ModifyDBInstance`.
24///
25/// <p>Modifies settings for a DB instance. You can change one or more database configuration parameters by specifying these parameters and the new values in the request. To learn what modifications you can make to your DB instance, call <code>DescribeValidDBInstanceModifications</code> before you call <code>ModifyDBInstance</code>.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct ModifyDBInstanceFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::modify_db_instance::builders::ModifyDbInstanceInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::modify_db_instance::ModifyDbInstanceOutput,
35        crate::operation::modify_db_instance::ModifyDBInstanceError,
36    > for ModifyDBInstanceFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::modify_db_instance::ModifyDbInstanceOutput,
44            crate::operation::modify_db_instance::ModifyDBInstanceError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl ModifyDBInstanceFluentBuilder {
51    /// Creates a new `ModifyDBInstanceFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the ModifyDBInstance as a reference.
60    pub fn as_input(&self) -> &crate::operation::modify_db_instance::builders::ModifyDbInstanceInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::modify_db_instance::ModifyDbInstanceOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::modify_db_instance::ModifyDBInstanceError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::modify_db_instance::ModifyDBInstance::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::modify_db_instance::ModifyDBInstance::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::modify_db_instance::ModifyDbInstanceOutput,
97        crate::operation::modify_db_instance::ModifyDBInstanceError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The DB instance identifier. This value is stored as a lowercase string.</p>
112    /// <p>Constraints:</p>
113    /// <ul>
114    /// <li>
115    /// <p>Must match the identifier of an existing DBInstance.</p></li>
116    /// </ul>
117    pub fn db_instance_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
118        self.inner = self.inner.db_instance_identifier(input.into());
119        self
120    }
121    /// <p>The DB instance identifier. This value is stored as a lowercase string.</p>
122    /// <p>Constraints:</p>
123    /// <ul>
124    /// <li>
125    /// <p>Must match the identifier of an existing DBInstance.</p></li>
126    /// </ul>
127    pub fn set_db_instance_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
128        self.inner = self.inner.set_db_instance_identifier(input);
129        self
130    }
131    /// <p>The DB instance identifier. This value is stored as a lowercase string.</p>
132    /// <p>Constraints:</p>
133    /// <ul>
134    /// <li>
135    /// <p>Must match the identifier of an existing DBInstance.</p></li>
136    /// </ul>
137    pub fn get_db_instance_identifier(&self) -> &::std::option::Option<::std::string::String> {
138        self.inner.get_db_instance_identifier()
139    }
140    /// <p>Not supported by Neptune.</p>
141    pub fn allocated_storage(mut self, input: i32) -> Self {
142        self.inner = self.inner.allocated_storage(input);
143        self
144    }
145    /// <p>Not supported by Neptune.</p>
146    pub fn set_allocated_storage(mut self, input: ::std::option::Option<i32>) -> Self {
147        self.inner = self.inner.set_allocated_storage(input);
148        self
149    }
150    /// <p>Not supported by Neptune.</p>
151    pub fn get_allocated_storage(&self) -> &::std::option::Option<i32> {
152        self.inner.get_allocated_storage()
153    }
154    /// <p>The new compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Regions.</p>
155    /// <p>If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless <code>ApplyImmediately</code> is specified as <code>true</code> for this request.</p>
156    /// <p>Default: Uses existing setting</p>
157    pub fn db_instance_class(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
158        self.inner = self.inner.db_instance_class(input.into());
159        self
160    }
161    /// <p>The new compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Regions.</p>
162    /// <p>If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless <code>ApplyImmediately</code> is specified as <code>true</code> for this request.</p>
163    /// <p>Default: Uses existing setting</p>
164    pub fn set_db_instance_class(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
165        self.inner = self.inner.set_db_instance_class(input);
166        self
167    }
168    /// <p>The new compute and memory capacity of the DB instance, for example, <code>db.m4.large</code>. Not all DB instance classes are available in all Amazon Regions.</p>
169    /// <p>If you modify the DB instance class, an outage occurs during the change. The change is applied during the next maintenance window, unless <code>ApplyImmediately</code> is specified as <code>true</code> for this request.</p>
170    /// <p>Default: Uses existing setting</p>
171    pub fn get_db_instance_class(&self) -> &::std::option::Option<::std::string::String> {
172        self.inner.get_db_instance_class()
173    }
174    /// <p>The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC.</p>
175    /// <p>Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify <code>true</code> for the <code>ApplyImmediately</code> parameter.</p>
176    /// <p>Constraints: If supplied, must match the name of an existing DBSubnetGroup.</p>
177    /// <p>Example: <code>mySubnetGroup</code></p>
178    pub fn db_subnet_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
179        self.inner = self.inner.db_subnet_group_name(input.into());
180        self
181    }
182    /// <p>The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC.</p>
183    /// <p>Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify <code>true</code> for the <code>ApplyImmediately</code> parameter.</p>
184    /// <p>Constraints: If supplied, must match the name of an existing DBSubnetGroup.</p>
185    /// <p>Example: <code>mySubnetGroup</code></p>
186    pub fn set_db_subnet_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
187        self.inner = self.inner.set_db_subnet_group_name(input);
188        self
189    }
190    /// <p>The new DB subnet group for the DB instance. You can use this parameter to move your DB instance to a different VPC.</p>
191    /// <p>Changing the subnet group causes an outage during the change. The change is applied during the next maintenance window, unless you specify <code>true</code> for the <code>ApplyImmediately</code> parameter.</p>
192    /// <p>Constraints: If supplied, must match the name of an existing DBSubnetGroup.</p>
193    /// <p>Example: <code>mySubnetGroup</code></p>
194    pub fn get_db_subnet_group_name(&self) -> &::std::option::Option<::std::string::String> {
195        self.inner.get_db_subnet_group_name()
196    }
197    ///
198    /// Appends an item to `DBSecurityGroups`.
199    ///
200    /// To override the contents of this collection use [`set_db_security_groups`](Self::set_db_security_groups).
201    ///
202    /// <p>A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible.</p>
203    /// <p>Constraints:</p>
204    /// <ul>
205    /// <li>
206    /// <p>If supplied, must match existing DBSecurityGroups.</p></li>
207    /// </ul>
208    pub fn db_security_groups(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
209        self.inner = self.inner.db_security_groups(input.into());
210        self
211    }
212    /// <p>A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible.</p>
213    /// <p>Constraints:</p>
214    /// <ul>
215    /// <li>
216    /// <p>If supplied, must match existing DBSecurityGroups.</p></li>
217    /// </ul>
218    pub fn set_db_security_groups(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
219        self.inner = self.inner.set_db_security_groups(input);
220        self
221    }
222    /// <p>A list of DB security groups to authorize on this DB instance. Changing this setting doesn't result in an outage and the change is asynchronously applied as soon as possible.</p>
223    /// <p>Constraints:</p>
224    /// <ul>
225    /// <li>
226    /// <p>If supplied, must match existing DBSecurityGroups.</p></li>
227    /// </ul>
228    pub fn get_db_security_groups(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
229        self.inner.get_db_security_groups()
230    }
231    ///
232    /// Appends an item to `VpcSecurityGroupIds`.
233    ///
234    /// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
235    ///
236    /// <p>A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.</p>
237    /// <p>Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
238    /// <p>Constraints:</p>
239    /// <ul>
240    /// <li>
241    /// <p>If supplied, must match existing VpcSecurityGroupIds.</p></li>
242    /// </ul>
243    pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
244        self.inner = self.inner.vpc_security_group_ids(input.into());
245        self
246    }
247    /// <p>A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.</p>
248    /// <p>Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
249    /// <p>Constraints:</p>
250    /// <ul>
251    /// <li>
252    /// <p>If supplied, must match existing VpcSecurityGroupIds.</p></li>
253    /// </ul>
254    pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
255        self.inner = self.inner.set_vpc_security_group_ids(input);
256        self
257    }
258    /// <p>A list of EC2 VPC security groups to authorize on this DB instance. This change is asynchronously applied as soon as possible.</p>
259    /// <p>Not applicable. The associated list of EC2 VPC security groups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
260    /// <p>Constraints:</p>
261    /// <ul>
262    /// <li>
263    /// <p>If supplied, must match existing VpcSecurityGroupIds.</p></li>
264    /// </ul>
265    pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
266        self.inner.get_vpc_security_group_ids()
267    }
268    /// <p>Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB instance.</p>
269    /// <p>If this parameter is set to <code>false</code>, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to <code>RebootDBInstance</code>, or the next failure reboot.</p>
270    /// <p>Default: <code>false</code></p>
271    pub fn apply_immediately(mut self, input: bool) -> Self {
272        self.inner = self.inner.apply_immediately(input);
273        self
274    }
275    /// <p>Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB instance.</p>
276    /// <p>If this parameter is set to <code>false</code>, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to <code>RebootDBInstance</code>, or the next failure reboot.</p>
277    /// <p>Default: <code>false</code></p>
278    pub fn set_apply_immediately(mut self, input: ::std::option::Option<bool>) -> Self {
279        self.inner = self.inner.set_apply_immediately(input);
280        self
281    }
282    /// <p>Specifies whether the modifications in this request and any pending modifications are asynchronously applied as soon as possible, regardless of the <code>PreferredMaintenanceWindow</code> setting for the DB instance.</p>
283    /// <p>If this parameter is set to <code>false</code>, changes to the DB instance are applied during the next maintenance window. Some parameter changes can cause an outage and are applied on the next call to <code>RebootDBInstance</code>, or the next failure reboot.</p>
284    /// <p>Default: <code>false</code></p>
285    pub fn get_apply_immediately(&self) -> &::std::option::Option<bool> {
286        self.inner.get_apply_immediately()
287    }
288    /// <p>Not supported by Neptune.</p>
289    pub fn master_user_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
290        self.inner = self.inner.master_user_password(input.into());
291        self
292    }
293    /// <p>Not supported by Neptune.</p>
294    pub fn set_master_user_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
295        self.inner = self.inner.set_master_user_password(input);
296        self
297    }
298    /// <p>Not supported by Neptune.</p>
299    pub fn get_master_user_password(&self) -> &::std::option::Option<::std::string::String> {
300        self.inner.get_master_user_password()
301    }
302    /// <p>The name of the DB parameter group to apply to the DB instance. Changing this setting doesn't result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window.</p>
303    /// <p>Default: Uses existing setting</p>
304    /// <p>Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.</p>
305    pub fn db_parameter_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
306        self.inner = self.inner.db_parameter_group_name(input.into());
307        self
308    }
309    /// <p>The name of the DB parameter group to apply to the DB instance. Changing this setting doesn't result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window.</p>
310    /// <p>Default: Uses existing setting</p>
311    /// <p>Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.</p>
312    pub fn set_db_parameter_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
313        self.inner = self.inner.set_db_parameter_group_name(input);
314        self
315    }
316    /// <p>The name of the DB parameter group to apply to the DB instance. Changing this setting doesn't result in an outage. The parameter group name itself is changed immediately, but the actual parameter changes are not applied until you reboot the instance without failover. The db instance will NOT be rebooted automatically and the parameter changes will NOT be applied during the next maintenance window.</p>
317    /// <p>Default: Uses existing setting</p>
318    /// <p>Constraints: The DB parameter group must be in the same DB parameter group family as this DB instance.</p>
319    pub fn get_db_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
320        self.inner.get_db_parameter_group_name()
321    }
322    /// <p>Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
323    /// <p>Default: Uses existing setting</p>
324    pub fn backup_retention_period(mut self, input: i32) -> Self {
325        self.inner = self.inner.backup_retention_period(input);
326        self
327    }
328    /// <p>Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
329    /// <p>Default: Uses existing setting</p>
330    pub fn set_backup_retention_period(mut self, input: ::std::option::Option<i32>) -> Self {
331        self.inner = self.inner.set_backup_retention_period(input);
332        self
333    }
334    /// <p>Not applicable. The retention period for automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
335    /// <p>Default: Uses existing setting</p>
336    pub fn get_backup_retention_period(&self) -> &::std::option::Option<i32> {
337        self.inner.get_backup_retention_period()
338    }
339    /// <p>The daily time range during which automated backups are created if automated backups are enabled.</p>
340    /// <p>Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
341    /// <p>Constraints:</p>
342    /// <ul>
343    /// <li>
344    /// <p>Must be in the format hh24:mi-hh24:mi</p></li>
345    /// <li>
346    /// <p>Must be in Universal Time Coordinated (UTC)</p></li>
347    /// <li>
348    /// <p>Must not conflict with the preferred maintenance window</p></li>
349    /// <li>
350    /// <p>Must be at least 30 minutes</p></li>
351    /// </ul>
352    pub fn preferred_backup_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
353        self.inner = self.inner.preferred_backup_window(input.into());
354        self
355    }
356    /// <p>The daily time range during which automated backups are created if automated backups are enabled.</p>
357    /// <p>Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
358    /// <p>Constraints:</p>
359    /// <ul>
360    /// <li>
361    /// <p>Must be in the format hh24:mi-hh24:mi</p></li>
362    /// <li>
363    /// <p>Must be in Universal Time Coordinated (UTC)</p></li>
364    /// <li>
365    /// <p>Must not conflict with the preferred maintenance window</p></li>
366    /// <li>
367    /// <p>Must be at least 30 minutes</p></li>
368    /// </ul>
369    pub fn set_preferred_backup_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
370        self.inner = self.inner.set_preferred_backup_window(input);
371        self
372    }
373    /// <p>The daily time range during which automated backups are created if automated backups are enabled.</p>
374    /// <p>Not applicable. The daily time range for creating automated backups is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
375    /// <p>Constraints:</p>
376    /// <ul>
377    /// <li>
378    /// <p>Must be in the format hh24:mi-hh24:mi</p></li>
379    /// <li>
380    /// <p>Must be in Universal Time Coordinated (UTC)</p></li>
381    /// <li>
382    /// <p>Must not conflict with the preferred maintenance window</p></li>
383    /// <li>
384    /// <p>Must be at least 30 minutes</p></li>
385    /// </ul>
386    pub fn get_preferred_backup_window(&self) -> &::std::option::Option<::std::string::String> {
387        self.inner.get_preferred_backup_window()
388    }
389    /// <p>The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied.</p>
390    /// <p>Default: Uses existing setting</p>
391    /// <p>Format: ddd:hh24:mi-ddd:hh24:mi</p>
392    /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
393    /// <p>Constraints: Must be at least 30 minutes</p>
394    pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395        self.inner = self.inner.preferred_maintenance_window(input.into());
396        self
397    }
398    /// <p>The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied.</p>
399    /// <p>Default: Uses existing setting</p>
400    /// <p>Format: ddd:hh24:mi-ddd:hh24:mi</p>
401    /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
402    /// <p>Constraints: Must be at least 30 minutes</p>
403    pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
404        self.inner = self.inner.set_preferred_maintenance_window(input);
405        self
406    }
407    /// <p>The weekly time range (in UTC) during which system maintenance can occur, which might result in an outage. Changing this parameter doesn't result in an outage, except in the following situation, and the change is asynchronously applied as soon as possible. If there are pending actions that cause a reboot, and the maintenance window is changed to include the current time, then changing this parameter will cause a reboot of the DB instance. If moving this window to the current time, there must be at least 30 minutes between the current time and end of the window to ensure pending changes are applied.</p>
408    /// <p>Default: Uses existing setting</p>
409    /// <p>Format: ddd:hh24:mi-ddd:hh24:mi</p>
410    /// <p>Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun</p>
411    /// <p>Constraints: Must be at least 30 minutes</p>
412    pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
413        self.inner.get_preferred_maintenance_window()
414    }
415    /// <p>Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.</p>
416    pub fn multi_az(mut self, input: bool) -> Self {
417        self.inner = self.inner.multi_az(input);
418        self
419    }
420    /// <p>Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.</p>
421    pub fn set_multi_az(mut self, input: ::std::option::Option<bool>) -> Self {
422        self.inner = self.inner.set_multi_az(input);
423        self
424    }
425    /// <p>Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.</p>
426    pub fn get_multi_az(&self) -> &::std::option::Option<bool> {
427        self.inner.get_multi_az()
428    }
429    /// <p>The version number of the database engine to upgrade to. Currently, setting this parameter has no effect. To upgrade your database engine to the most recent release, use the <code>ApplyPendingMaintenanceAction</code> API.</p>
430    pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
431        self.inner = self.inner.engine_version(input.into());
432        self
433    }
434    /// <p>The version number of the database engine to upgrade to. Currently, setting this parameter has no effect. To upgrade your database engine to the most recent release, use the <code>ApplyPendingMaintenanceAction</code> API.</p>
435    pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
436        self.inner = self.inner.set_engine_version(input);
437        self
438    }
439    /// <p>The version number of the database engine to upgrade to. Currently, setting this parameter has no effect. To upgrade your database engine to the most recent release, use the <code>ApplyPendingMaintenanceAction</code> API.</p>
440    pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
441        self.inner.get_engine_version()
442    }
443    /// <p>Indicates that major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.</p>
444    pub fn allow_major_version_upgrade(mut self, input: bool) -> Self {
445        self.inner = self.inner.allow_major_version_upgrade(input);
446        self
447    }
448    /// <p>Indicates that major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.</p>
449    pub fn set_allow_major_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
450        self.inner = self.inner.set_allow_major_version_upgrade(input);
451        self
452    }
453    /// <p>Indicates that major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible.</p>
454    pub fn get_allow_major_version_upgrade(&self) -> &::std::option::Option<bool> {
455        self.inner.get_allow_major_version_upgrade()
456    }
457    /// <p>Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter doesn't result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to <code>true</code> during the maintenance window, and a newer minor version is available, and Neptune has enabled auto patching for that engine version.</p>
458    pub fn auto_minor_version_upgrade(mut self, input: bool) -> Self {
459        self.inner = self.inner.auto_minor_version_upgrade(input);
460        self
461    }
462    /// <p>Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter doesn't result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to <code>true</code> during the maintenance window, and a newer minor version is available, and Neptune has enabled auto patching for that engine version.</p>
463    pub fn set_auto_minor_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
464        self.inner = self.inner.set_auto_minor_version_upgrade(input);
465        self
466    }
467    /// <p>Indicates that minor version upgrades are applied automatically to the DB instance during the maintenance window. Changing this parameter doesn't result in an outage except in the following case and the change is asynchronously applied as soon as possible. An outage will result if this parameter is set to <code>true</code> during the maintenance window, and a newer minor version is available, and Neptune has enabled auto patching for that engine version.</p>
468    pub fn get_auto_minor_version_upgrade(&self) -> &::std::option::Option<bool> {
469        self.inner.get_auto_minor_version_upgrade()
470    }
471    /// <p>Not supported by Neptune.</p>
472    pub fn license_model(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
473        self.inner = self.inner.license_model(input.into());
474        self
475    }
476    /// <p>Not supported by Neptune.</p>
477    pub fn set_license_model(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
478        self.inner = self.inner.set_license_model(input);
479        self
480    }
481    /// <p>Not supported by Neptune.</p>
482    pub fn get_license_model(&self) -> &::std::option::Option<::std::string::String> {
483        self.inner.get_license_model()
484    }
485    /// <p>The new Provisioned IOPS (I/O operations per second) value for the instance.</p>
486    /// <p>Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.</p>
487    /// <p>Default: Uses existing setting</p>
488    pub fn iops(mut self, input: i32) -> Self {
489        self.inner = self.inner.iops(input);
490        self
491    }
492    /// <p>The new Provisioned IOPS (I/O operations per second) value for the instance.</p>
493    /// <p>Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.</p>
494    /// <p>Default: Uses existing setting</p>
495    pub fn set_iops(mut self, input: ::std::option::Option<i32>) -> Self {
496        self.inner = self.inner.set_iops(input);
497        self
498    }
499    /// <p>The new Provisioned IOPS (I/O operations per second) value for the instance.</p>
500    /// <p>Changing this setting doesn't result in an outage and the change is applied during the next maintenance window unless the <code>ApplyImmediately</code> parameter is set to <code>true</code> for this request.</p>
501    /// <p>Default: Uses existing setting</p>
502    pub fn get_iops(&self) -> &::std::option::Option<i32> {
503        self.inner.get_iops()
504    }
505    /// <p><i>(Not supported by Neptune)</i></p>
506    pub fn option_group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
507        self.inner = self.inner.option_group_name(input.into());
508        self
509    }
510    /// <p><i>(Not supported by Neptune)</i></p>
511    pub fn set_option_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
512        self.inner = self.inner.set_option_group_name(input);
513        self
514    }
515    /// <p><i>(Not supported by Neptune)</i></p>
516    pub fn get_option_group_name(&self) -> &::std::option::Option<::std::string::String> {
517        self.inner.get_option_group_name()
518    }
519    /// <p>The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set <code>Apply Immediately</code> to true, or will occur during the next maintenance window if <code>Apply Immediately</code> to false. This value is stored as a lowercase string.</p>
520    /// <p>Constraints:</p>
521    /// <ul>
522    /// <li>
523    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
524    /// <li>
525    /// <p>The first character must be a letter.</p></li>
526    /// <li>
527    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
528    /// </ul>
529    /// <p>Example: <code>mydbinstance</code></p>
530    pub fn new_db_instance_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
531        self.inner = self.inner.new_db_instance_identifier(input.into());
532        self
533    }
534    /// <p>The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set <code>Apply Immediately</code> to true, or will occur during the next maintenance window if <code>Apply Immediately</code> to false. This value is stored as a lowercase string.</p>
535    /// <p>Constraints:</p>
536    /// <ul>
537    /// <li>
538    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
539    /// <li>
540    /// <p>The first character must be a letter.</p></li>
541    /// <li>
542    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
543    /// </ul>
544    /// <p>Example: <code>mydbinstance</code></p>
545    pub fn set_new_db_instance_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
546        self.inner = self.inner.set_new_db_instance_identifier(input);
547        self
548    }
549    /// <p>The new DB instance identifier for the DB instance when renaming a DB instance. When you change the DB instance identifier, an instance reboot will occur immediately if you set <code>Apply Immediately</code> to true, or will occur during the next maintenance window if <code>Apply Immediately</code> to false. This value is stored as a lowercase string.</p>
550    /// <p>Constraints:</p>
551    /// <ul>
552    /// <li>
553    /// <p>Must contain from 1 to 63 letters, numbers, or hyphens.</p></li>
554    /// <li>
555    /// <p>The first character must be a letter.</p></li>
556    /// <li>
557    /// <p>Cannot end with a hyphen or contain two consecutive hyphens.</p></li>
558    /// </ul>
559    /// <p>Example: <code>mydbinstance</code></p>
560    pub fn get_new_db_instance_identifier(&self) -> &::std::option::Option<::std::string::String> {
561        self.inner.get_new_db_instance_identifier()
562    }
563    /// <p>Not applicable. In Neptune the storage type is managed at the DB Cluster level.</p>
564    pub fn storage_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
565        self.inner = self.inner.storage_type(input.into());
566        self
567    }
568    /// <p>Not applicable. In Neptune the storage type is managed at the DB Cluster level.</p>
569    pub fn set_storage_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
570        self.inner = self.inner.set_storage_type(input);
571        self
572    }
573    /// <p>Not applicable. In Neptune the storage type is managed at the DB Cluster level.</p>
574    pub fn get_storage_type(&self) -> &::std::option::Option<::std::string::String> {
575        self.inner.get_storage_type()
576    }
577    /// <p>The ARN from the key store with which to associate the instance for TDE encryption.</p>
578    pub fn tde_credential_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
579        self.inner = self.inner.tde_credential_arn(input.into());
580        self
581    }
582    /// <p>The ARN from the key store with which to associate the instance for TDE encryption.</p>
583    pub fn set_tde_credential_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
584        self.inner = self.inner.set_tde_credential_arn(input);
585        self
586    }
587    /// <p>The ARN from the key store with which to associate the instance for TDE encryption.</p>
588    pub fn get_tde_credential_arn(&self) -> &::std::option::Option<::std::string::String> {
589        self.inner.get_tde_credential_arn()
590    }
591    /// <p>The password for the given ARN from the key store in order to access the device.</p>
592    pub fn tde_credential_password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
593        self.inner = self.inner.tde_credential_password(input.into());
594        self
595    }
596    /// <p>The password for the given ARN from the key store in order to access the device.</p>
597    pub fn set_tde_credential_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
598        self.inner = self.inner.set_tde_credential_password(input);
599        self
600    }
601    /// <p>The password for the given ARN from the key store in order to access the device.</p>
602    pub fn get_tde_credential_password(&self) -> &::std::option::Option<::std::string::String> {
603        self.inner.get_tde_credential_password()
604    }
605    /// <p>Indicates the certificate that needs to be associated with the instance.</p>
606    pub fn ca_certificate_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
607        self.inner = self.inner.ca_certificate_identifier(input.into());
608        self
609    }
610    /// <p>Indicates the certificate that needs to be associated with the instance.</p>
611    pub fn set_ca_certificate_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
612        self.inner = self.inner.set_ca_certificate_identifier(input);
613        self
614    }
615    /// <p>Indicates the certificate that needs to be associated with the instance.</p>
616    pub fn get_ca_certificate_identifier(&self) -> &::std::option::Option<::std::string::String> {
617        self.inner.get_ca_certificate_identifier()
618    }
619    /// <p>Not supported.</p>
620    pub fn domain(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
621        self.inner = self.inner.domain(input.into());
622        self
623    }
624    /// <p>Not supported.</p>
625    pub fn set_domain(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
626        self.inner = self.inner.set_domain(input);
627        self
628    }
629    /// <p>Not supported.</p>
630    pub fn get_domain(&self) -> &::std::option::Option<::std::string::String> {
631        self.inner.get_domain()
632    }
633    /// <p>True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.</p>
634    pub fn copy_tags_to_snapshot(mut self, input: bool) -> Self {
635        self.inner = self.inner.copy_tags_to_snapshot(input);
636        self
637    }
638    /// <p>True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.</p>
639    pub fn set_copy_tags_to_snapshot(mut self, input: ::std::option::Option<bool>) -> Self {
640        self.inner = self.inner.set_copy_tags_to_snapshot(input);
641        self
642    }
643    /// <p>True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise false. The default is false.</p>
644    pub fn get_copy_tags_to_snapshot(&self) -> &::std::option::Option<bool> {
645        self.inner.get_copy_tags_to_snapshot()
646    }
647    /// <p>The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.</p>
648    /// <p>If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0.</p>
649    /// <p>Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code></p>
650    pub fn monitoring_interval(mut self, input: i32) -> Self {
651        self.inner = self.inner.monitoring_interval(input);
652        self
653    }
654    /// <p>The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.</p>
655    /// <p>If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0.</p>
656    /// <p>Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code></p>
657    pub fn set_monitoring_interval(mut self, input: ::std::option::Option<i32>) -> Self {
658        self.inner = self.inner.set_monitoring_interval(input);
659        self
660    }
661    /// <p>The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0.</p>
662    /// <p>If <code>MonitoringRoleArn</code> is specified, then you must also set <code>MonitoringInterval</code> to a value other than 0.</p>
663    /// <p>Valid Values: <code>0, 1, 5, 10, 15, 30, 60</code></p>
664    pub fn get_monitoring_interval(&self) -> &::std::option::Option<i32> {
665        self.inner.get_monitoring_interval()
666    }
667    /// <p>The port number on which the database accepts connections.</p>
668    /// <p>The value of the <code>DBPortNumber</code> parameter must not match any of the port values specified for options in the option group for the DB instance.</p>
669    /// <p>Your database will restart when you change the <code>DBPortNumber</code> value regardless of the value of the <code>ApplyImmediately</code> parameter.</p>
670    /// <p>Default: <code>8182</code></p>
671    pub fn db_port_number(mut self, input: i32) -> Self {
672        self.inner = self.inner.db_port_number(input);
673        self
674    }
675    /// <p>The port number on which the database accepts connections.</p>
676    /// <p>The value of the <code>DBPortNumber</code> parameter must not match any of the port values specified for options in the option group for the DB instance.</p>
677    /// <p>Your database will restart when you change the <code>DBPortNumber</code> value regardless of the value of the <code>ApplyImmediately</code> parameter.</p>
678    /// <p>Default: <code>8182</code></p>
679    pub fn set_db_port_number(mut self, input: ::std::option::Option<i32>) -> Self {
680        self.inner = self.inner.set_db_port_number(input);
681        self
682    }
683    /// <p>The port number on which the database accepts connections.</p>
684    /// <p>The value of the <code>DBPortNumber</code> parameter must not match any of the port values specified for options in the option group for the DB instance.</p>
685    /// <p>Your database will restart when you change the <code>DBPortNumber</code> value regardless of the value of the <code>ApplyImmediately</code> parameter.</p>
686    /// <p>Default: <code>8182</code></p>
687    pub fn get_db_port_number(&self) -> &::std::option::Option<i32> {
688        self.inner.get_db_port_number()
689    }
690    /// <p>Indicates whether the DB instance is publicly accessible.</p>
691    /// <p>When the DB instance is publicly accessible and you connect from outside of the DB instance's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB instance, the endpoint resolves to the private IP address. Access to the DB instance is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.</p>
692    /// <p>When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.</p>
693    pub fn publicly_accessible(mut self, input: bool) -> Self {
694        self.inner = self.inner.publicly_accessible(input);
695        self
696    }
697    /// <p>Indicates whether the DB instance is publicly accessible.</p>
698    /// <p>When the DB instance is publicly accessible and you connect from outside of the DB instance's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB instance, the endpoint resolves to the private IP address. Access to the DB instance is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.</p>
699    /// <p>When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.</p>
700    pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
701        self.inner = self.inner.set_publicly_accessible(input);
702        self
703    }
704    /// <p>Indicates whether the DB instance is publicly accessible.</p>
705    /// <p>When the DB instance is publicly accessible and you connect from outside of the DB instance's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB instance, the endpoint resolves to the private IP address. Access to the DB instance is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.</p>
706    /// <p>When the DB instance isn't publicly accessible, it is an internal DB instance with a DNS name that resolves to a private IP address.</p>
707    pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
708        self.inner.get_publicly_accessible()
709    }
710    /// <p>The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>.</p>
711    /// <p>If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.</p>
712    pub fn monitoring_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
713        self.inner = self.inner.monitoring_role_arn(input.into());
714        self
715    }
716    /// <p>The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>.</p>
717    /// <p>If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.</p>
718    pub fn set_monitoring_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
719        self.inner = self.inner.set_monitoring_role_arn(input);
720        self
721    }
722    /// <p>The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, <code>arn:aws:iam:123456789012:role/emaccess</code>.</p>
723    /// <p>If <code>MonitoringInterval</code> is set to a value other than 0, then you must supply a <code>MonitoringRoleArn</code> value.</p>
724    pub fn get_monitoring_role_arn(&self) -> &::std::option::Option<::std::string::String> {
725        self.inner.get_monitoring_role_arn()
726    }
727    /// <p>Not supported</p>
728    pub fn domain_iam_role_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
729        self.inner = self.inner.domain_iam_role_name(input.into());
730        self
731    }
732    /// <p>Not supported</p>
733    pub fn set_domain_iam_role_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
734        self.inner = self.inner.set_domain_iam_role_name(input);
735        self
736    }
737    /// <p>Not supported</p>
738    pub fn get_domain_iam_role_name(&self) -> &::std::option::Option<::std::string::String> {
739        self.inner.get_domain_iam_role_name()
740    }
741    /// <p>A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance.</p>
742    /// <p>Default: 1</p>
743    /// <p>Valid Values: 0 - 15</p>
744    pub fn promotion_tier(mut self, input: i32) -> Self {
745        self.inner = self.inner.promotion_tier(input);
746        self
747    }
748    /// <p>A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance.</p>
749    /// <p>Default: 1</p>
750    /// <p>Valid Values: 0 - 15</p>
751    pub fn set_promotion_tier(mut self, input: ::std::option::Option<i32>) -> Self {
752        self.inner = self.inner.set_promotion_tier(input);
753        self
754    }
755    /// <p>A value that specifies the order in which a Read Replica is promoted to the primary instance after a failure of the existing primary instance.</p>
756    /// <p>Default: 1</p>
757    /// <p>Valid Values: 0 - 15</p>
758    pub fn get_promotion_tier(&self) -> &::std::option::Option<i32> {
759        self.inner.get_promotion_tier()
760    }
761    /// <p>True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false.</p>
762    /// <p>You can enable IAM database authentication for the following database engines</p>
763    /// <p>Not applicable. Mapping Amazon IAM accounts to database accounts is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
764    /// <p>Default: <code>false</code></p>
765    pub fn enable_iam_database_authentication(mut self, input: bool) -> Self {
766        self.inner = self.inner.enable_iam_database_authentication(input);
767        self
768    }
769    /// <p>True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false.</p>
770    /// <p>You can enable IAM database authentication for the following database engines</p>
771    /// <p>Not applicable. Mapping Amazon IAM accounts to database accounts is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
772    /// <p>Default: <code>false</code></p>
773    pub fn set_enable_iam_database_authentication(mut self, input: ::std::option::Option<bool>) -> Self {
774        self.inner = self.inner.set_enable_iam_database_authentication(input);
775        self
776    }
777    /// <p>True to enable mapping of Amazon Identity and Access Management (IAM) accounts to database accounts, and otherwise false.</p>
778    /// <p>You can enable IAM database authentication for the following database engines</p>
779    /// <p>Not applicable. Mapping Amazon IAM accounts to database accounts is managed by the DB cluster. For more information, see <code>ModifyDBCluster</code>.</p>
780    /// <p>Default: <code>false</code></p>
781    pub fn get_enable_iam_database_authentication(&self) -> &::std::option::Option<bool> {
782        self.inner.get_enable_iam_database_authentication()
783    }
784    /// <p><i>(Not supported by Neptune)</i></p>
785    pub fn enable_performance_insights(mut self, input: bool) -> Self {
786        self.inner = self.inner.enable_performance_insights(input);
787        self
788    }
789    /// <p><i>(Not supported by Neptune)</i></p>
790    pub fn set_enable_performance_insights(mut self, input: ::std::option::Option<bool>) -> Self {
791        self.inner = self.inner.set_enable_performance_insights(input);
792        self
793    }
794    /// <p><i>(Not supported by Neptune)</i></p>
795    pub fn get_enable_performance_insights(&self) -> &::std::option::Option<bool> {
796        self.inner.get_enable_performance_insights()
797    }
798    /// <p><i>(Not supported by Neptune)</i></p>
799    pub fn performance_insights_kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
800        self.inner = self.inner.performance_insights_kms_key_id(input.into());
801        self
802    }
803    /// <p><i>(Not supported by Neptune)</i></p>
804    pub fn set_performance_insights_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
805        self.inner = self.inner.set_performance_insights_kms_key_id(input);
806        self
807    }
808    /// <p><i>(Not supported by Neptune)</i></p>
809    pub fn get_performance_insights_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
810        self.inner.get_performance_insights_kms_key_id()
811    }
812    /// <p>The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.</p>
813    pub fn cloudwatch_logs_export_configuration(mut self, input: crate::types::CloudwatchLogsExportConfiguration) -> Self {
814        self.inner = self.inner.cloudwatch_logs_export_configuration(input);
815        self
816    }
817    /// <p>The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.</p>
818    pub fn set_cloudwatch_logs_export_configuration(mut self, input: ::std::option::Option<crate::types::CloudwatchLogsExportConfiguration>) -> Self {
819        self.inner = self.inner.set_cloudwatch_logs_export_configuration(input);
820        self
821    }
822    /// <p>The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.</p>
823    pub fn get_cloudwatch_logs_export_configuration(&self) -> &::std::option::Option<crate::types::CloudwatchLogsExportConfiguration> {
824        self.inner.get_cloudwatch_logs_export_configuration()
825    }
826    /// <p>A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.</p>
827    pub fn deletion_protection(mut self, input: bool) -> Self {
828        self.inner = self.inner.deletion_protection(input);
829        self
830    }
831    /// <p>A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.</p>
832    pub fn set_deletion_protection(mut self, input: ::std::option::Option<bool>) -> Self {
833        self.inner = self.inner.set_deletion_protection(input);
834        self
835    }
836    /// <p>A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/manage-console-instances-delete.html">Deleting a DB Instance</a>.</p>
837    pub fn get_deletion_protection(&self) -> &::std::option::Option<bool> {
838        self.inner.get_deletion_protection()
839    }
840}