1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::reset_db_parameter_group::_reset_db_parameter_group_output::ResetDbParameterGroupOutputBuilder;

pub use crate::operation::reset_db_parameter_group::_reset_db_parameter_group_input::ResetDbParameterGroupInputBuilder;

/// Fluent builder constructing a request to `ResetDBParameterGroup`.
///
/// <p>Modifies the parameters of a DB parameter group to the engine/system default value. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. When resetting the entire group, dynamic parameters are updated immediately and static parameters are set to <code>pending-reboot</code> to take effect on the next DB instance restart or <code>RebootDBInstance</code> request.</p>
#[derive(std::clone::Clone, std::fmt::Debug)]
pub struct ResetDBParameterGroupFluentBuilder {
    handle: std::sync::Arc<crate::client::Handle>,
    inner: crate::operation::reset_db_parameter_group::builders::ResetDbParameterGroupInputBuilder,
}
impl ResetDBParameterGroupFluentBuilder {
    /// Creates a new `ResetDBParameterGroup`.
    pub(crate) fn new(handle: std::sync::Arc<crate::client::Handle>) -> Self {
        Self {
            handle,
            inner: Default::default(),
        }
    }

    /// Consume this builder, creating a customizable operation that can be modified before being
    /// sent. The operation's inner [http::Request] can be modified as well.
    pub async fn customize(
        self,
    ) -> std::result::Result<
        crate::client::customize::CustomizableOperation<
            crate::operation::reset_db_parameter_group::ResetDBParameterGroup,
            aws_http::retry::AwsResponseRetryClassifier,
        >,
        aws_smithy_http::result::SdkError<
            crate::operation::reset_db_parameter_group::ResetDBParameterGroupError,
        >,
    > {
        let handle = self.handle.clone();
        let operation = self
            .inner
            .build()
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?
            .make_operation(&handle.conf)
            .await
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
        Ok(crate::client::customize::CustomizableOperation { handle, operation })
    }

    /// Sends the request and returns the response.
    ///
    /// If an error occurs, an `SdkError` will be returned with additional details that
    /// can be matched against.
    ///
    /// By default, any retryable failures will be retried twice. Retry behavior
    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
    /// set when configuring the client.
    pub async fn send(
        self,
    ) -> std::result::Result<
        crate::operation::reset_db_parameter_group::ResetDbParameterGroupOutput,
        aws_smithy_http::result::SdkError<
            crate::operation::reset_db_parameter_group::ResetDBParameterGroupError,
        >,
    > {
        let op = self
            .inner
            .build()
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?
            .make_operation(&self.handle.conf)
            .await
            .map_err(aws_smithy_http::result::SdkError::construction_failure)?;
        self.handle.client.call(op).await
    }
    /// <p>The name of the DB parameter group.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li> <p>Must match the name of an existing <code>DBParameterGroup</code>.</p> </li>
    /// </ul>
    pub fn db_parameter_group_name(mut self, input: impl Into<std::string::String>) -> Self {
        self.inner = self.inner.db_parameter_group_name(input.into());
        self
    }
    /// <p>The name of the DB parameter group.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li> <p>Must match the name of an existing <code>DBParameterGroup</code>.</p> </li>
    /// </ul>
    pub fn set_db_parameter_group_name(
        mut self,
        input: std::option::Option<std::string::String>,
    ) -> Self {
        self.inner = self.inner.set_db_parameter_group_name(input);
        self
    }
    /// <p>A value that indicates whether to reset all parameters in the DB parameter group to default values. By default, all parameters in the DB parameter group are reset to default values.</p>
    pub fn reset_all_parameters(mut self, input: bool) -> Self {
        self.inner = self.inner.reset_all_parameters(input);
        self
    }
    /// <p>A value that indicates whether to reset all parameters in the DB parameter group to default values. By default, all parameters in the DB parameter group are reset to default values.</p>
    pub fn set_reset_all_parameters(mut self, input: std::option::Option<bool>) -> Self {
        self.inner = self.inner.set_reset_all_parameters(input);
        self
    }
    /// Appends an item to `Parameters`.
    ///
    /// To override the contents of this collection use [`set_parameters`](Self::set_parameters).
    ///
    /// <p>To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request.</p>
    /// <p> <b>MySQL</b> </p>
    /// <p>Valid Values (for Apply method): <code>immediate</code> | <code>pending-reboot</code> </p>
    /// <p>You can use the immediate value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters, and changes are applied when DB instance reboots.</p>
    /// <p> <b>MariaDB</b> </p>
    /// <p>Valid Values (for Apply method): <code>immediate</code> | <code>pending-reboot</code> </p>
    /// <p>You can use the immediate value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters, and changes are applied when DB instance reboots.</p>
    /// <p> <b>Oracle</b> </p>
    /// <p>Valid Values (for Apply method): <code>pending-reboot</code> </p>
    pub fn parameters(mut self, input: crate::types::Parameter) -> Self {
        self.inner = self.inner.parameters(input);
        self
    }
    /// <p>To reset the entire DB parameter group, specify the <code>DBParameterGroup</code> name and <code>ResetAllParameters</code> parameters. To reset specific parameters, provide a list of the following: <code>ParameterName</code> and <code>ApplyMethod</code>. A maximum of 20 parameters can be modified in a single request.</p>
    /// <p> <b>MySQL</b> </p>
    /// <p>Valid Values (for Apply method): <code>immediate</code> | <code>pending-reboot</code> </p>
    /// <p>You can use the immediate value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters, and changes are applied when DB instance reboots.</p>
    /// <p> <b>MariaDB</b> </p>
    /// <p>Valid Values (for Apply method): <code>immediate</code> | <code>pending-reboot</code> </p>
    /// <p>You can use the immediate value with dynamic parameters only. You can use the <code>pending-reboot</code> value for both dynamic and static parameters, and changes are applied when DB instance reboots.</p>
    /// <p> <b>Oracle</b> </p>
    /// <p>Valid Values (for Apply method): <code>pending-reboot</code> </p>
    pub fn set_parameters(
        mut self,
        input: std::option::Option<std::vec::Vec<crate::types::Parameter>>,
    ) -> Self {
        self.inner = self.inner.set_parameters(input);
        self
    }
}