// 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_input::CreateDbClusterParameterGroupInputBuilder;
pub use crate::operation::create_db_cluster_parameter_group::_create_db_cluster_parameter_group_output::CreateDbClusterParameterGroupOutputBuilder;
impl crate::operation::create_db_cluster_parameter_group::builders::CreateDbClusterParameterGroupInputBuilder {
/// Sends a request with this input using the given client.
pub async fn send_with(
self,
client: &crate::Client,
) -> ::std::result::Result<
crate::operation::create_db_cluster_parameter_group::CreateDbClusterParameterGroupOutput,
::aws_smithy_runtime_api::client::result::SdkError<
crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let mut fluent_builder = client.create_db_cluster_parameter_group();
fluent_builder.inner = self;
fluent_builder.send().await
}
}
/// 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,
config_override: ::std::option::Option<crate::config::Builder>,
}
impl
crate::client::customize::internal::CustomizableSend<
crate::operation::create_db_cluster_parameter_group::CreateDbClusterParameterGroupOutput,
crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
> for CreateDBClusterParameterGroupFluentBuilder
{
fn send(
self,
config_override: crate::config::Builder,
) -> crate::client::customize::internal::BoxFuture<
crate::client::customize::internal::SendResult<
crate::operation::create_db_cluster_parameter_group::CreateDbClusterParameterGroupOutput,
crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
>,
> {
::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
}
}
impl CreateDBClusterParameterGroupFluentBuilder {
/// Creates a new `CreateDBClusterParameterGroupFluentBuilder`.
pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
Self {
handle,
inner: ::std::default::Default::default(),
config_override: ::std::option::Option::None,
}
}
/// Access the CreateDBClusterParameterGroup as a reference.
pub fn as_input(&self) -> &crate::operation::create_db_cluster_parameter_group::builders::CreateDbClusterParameterGroupInputBuilder {
&self.inner
}
/// 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_runtime_api::client::result::SdkError<
crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
>,
> {
let input = self
.inner
.build()
.map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
let runtime_plugins = crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroup::operation_runtime_plugins(
self.handle.runtime_plugins.clone(),
&self.handle.conf,
self.config_override,
);
crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroup::orchestrate(&runtime_plugins, input).await
}
/// Consumes this builder, creating a customizable operation that can be modified before being sent.
pub fn customize(
self,
) -> crate::client::customize::CustomizableOperation<
crate::operation::create_db_cluster_parameter_group::CreateDbClusterParameterGroupOutput,
crate::operation::create_db_cluster_parameter_group::CreateDBClusterParameterGroupError,
Self,
> {
crate::client::customize::CustomizableOperation::new(self)
}
pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
self.set_config_override(::std::option::Option::Some(config_override.into()));
self
}
pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
self.config_override = config_override;
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 db_cluster_parameter_group_name(mut self, input: impl ::std::convert::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 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 get_db_cluster_parameter_group_name(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_db_cluster_parameter_group_name()
}
/// <p>The cluster parameter group family name.</p>
pub fn db_parameter_group_family(mut self, input: impl ::std::convert::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 cluster parameter group family name.</p>
pub fn get_db_parameter_group_family(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_db_parameter_group_family()
}
/// <p>The description for the cluster parameter group.</p>
pub fn description(mut self, input: impl ::std::convert::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
}
/// <p>The description for the cluster parameter group.</p>
pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
self.inner.get_description()
}
///
/// 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
}
/// <p>The tags to be assigned to the cluster parameter group.</p>
pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
self.inner.get_tags()
}
}