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
137
138
139
140
141
142
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
pub use crate::operation::create_db_cluster_parameter_group::_create_db_cluster_parameter_group_output::CreateDbClusterParameterGroupOutputBuilder;

pub use crate::operation::create_db_cluster_parameter_group::_create_db_cluster_parameter_group_input::CreateDbClusterParameterGroupInputBuilder;

/// Fluent builder constructing a request to `CreateDBClusterParameterGroup`.
///
/// <p>Creates a new cluster parameter group.</p>
/// <p>Parameters in a cluster parameter group apply to all of the instances in a cluster.</p>
/// <p>A cluster parameter group is initially created with the default parameters for the database engine used by instances in the cluster. In Amazon DocumentDB, you cannot make modifications directly to the <code>default.docdb3.6</code> cluster parameter group. If your Amazon DocumentDB cluster is using the default cluster parameter group and you want to modify a value in it, you must first <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html"> create a new parameter group</a> or <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html"> copy an existing parameter group</a>, modify it, and then apply the modified parameter group to your cluster. For the new cluster parameter group and associated settings to take effect, you must then reboot the instances in the cluster without failover. For more information, see <a href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html"> Modifying Amazon DocumentDB Cluster Parameter Groups</a>. </p>
#[derive(std::clone::Clone, std::fmt::Debug)]
pub struct CreateDBClusterParameterGroupFluentBuilder {
                handle: std::sync::Arc<crate::client::Handle>,
                inner: crate::operation::create_db_cluster_parameter_group::builders::CreateDbClusterParameterGroupInputBuilder
            }
impl CreateDBClusterParameterGroupFluentBuilder {
    /// Creates a new `CreateDBClusterParameterGroup`.
    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::create_db_cluster_parameter_group::CreateDBClusterParameterGroup,
            aws_http::retry::AwsResponseRetryClassifier,
        >,
        aws_smithy_http::result::SdkError<
            crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
        >,
    > {
        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::create_db_cluster_parameter_group::CreateDbClusterParameterGroupOutput,
        aws_smithy_http::result::SdkError<
            crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
        >,
    > {
        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 cluster parameter group.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li> <p>Must not match the name of an existing <code>DBClusterParameterGroup</code>.</p> </li>
    /// </ul> <note>
    /// <p>This value is stored as a lowercase string.</p>
    /// </note>
    pub fn db_cluster_parameter_group_name(
        mut self,
        input: impl Into<std::string::String>,
    ) -> Self {
        self.inner = self.inner.db_cluster_parameter_group_name(input.into());
        self
    }
    /// <p>The name of the cluster parameter group.</p>
    /// <p>Constraints:</p>
    /// <ul>
    /// <li> <p>Must not match the name of an existing <code>DBClusterParameterGroup</code>.</p> </li>
    /// </ul> <note>
    /// <p>This value is stored as a lowercase string.</p>
    /// </note>
    pub fn set_db_cluster_parameter_group_name(
        mut self,
        input: std::option::Option<std::string::String>,
    ) -> Self {
        self.inner = self.inner.set_db_cluster_parameter_group_name(input);
        self
    }
    /// <p>The cluster parameter group family name.</p>
    pub fn db_parameter_group_family(mut self, input: impl Into<std::string::String>) -> Self {
        self.inner = self.inner.db_parameter_group_family(input.into());
        self
    }
    /// <p>The cluster parameter group family name.</p>
    pub fn set_db_parameter_group_family(
        mut self,
        input: std::option::Option<std::string::String>,
    ) -> Self {
        self.inner = self.inner.set_db_parameter_group_family(input);
        self
    }
    /// <p>The description for the cluster parameter group.</p>
    pub fn description(mut self, input: impl Into<std::string::String>) -> Self {
        self.inner = self.inner.description(input.into());
        self
    }
    /// <p>The description for the cluster parameter group.</p>
    pub fn set_description(mut self, input: std::option::Option<std::string::String>) -> Self {
        self.inner = self.inner.set_description(input);
        self
    }
    /// Appends an item to `Tags`.
    ///
    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
    ///
    /// <p>The tags to be assigned to the cluster parameter group.</p>
    pub fn tags(mut self, input: crate::types::Tag) -> Self {
        self.inner = self.inner.tags(input);
        self
    }
    /// <p>The tags to be assigned to the cluster parameter group.</p>
    pub fn set_tags(
        mut self,
        input: std::option::Option<std::vec::Vec<crate::types::Tag>>,
    ) -> Self {
        self.inner = self.inner.set_tags(input);
        self
    }
}