// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p></p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct CreateReplicationInstanceInput {
/// <p>The replication instance identifier. This parameter is stored as a lowercase string.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain 1-63 alphanumeric characters or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Example: <code>myrepinstance</code></p>
pub replication_instance_identifier: ::std::option::Option<::std::string::String>,
/// <p>The amount of storage (in gigabytes) to be initially allocated for the replication instance.</p>
pub allocated_storage: ::std::option::Option<i32>,
/// <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>.</p>
/// <p>For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html "> Choosing the right DMS replication instance</a>; and, <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html">Selecting the best size for a replication instance</a>.</p>
pub replication_instance_class: ::std::option::Option<::std::string::String>,
/// <p>Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance.</p>
pub vpc_security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
/// <p>The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: <code>us-east-1d</code>.</p>
pub availability_zone: ::std::option::Option<::std::string::String>,
/// <p>A subnet group to associate with the replication instance.</p>
pub replication_subnet_group_identifier: ::std::option::Option<::std::string::String>,
/// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
/// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
/// <p>Default: A 30-minute window selected at random from an 8-hour block of time per Amazon Web Services Region, occurring on a random day of the week.</p>
/// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p>
/// <p>Constraints: Minimum 30-minute window.</p>
pub preferred_maintenance_window: ::std::option::Option<::std::string::String>,
/// <p>Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>.</p>
pub multi_az: ::std::option::Option<bool>,
/// <p>The engine version number of the replication instance.</p>
/// <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p>
pub engine_version: ::std::option::Option<::std::string::String>,
/// <p>A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to <code>true</code>.</p>
/// <p>Default: <code>true</code></p>
pub auto_minor_version_upgrade: ::std::option::Option<bool>,
/// <p>One or more tags to be assigned to the replication instance.</p>
pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
/// <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p>
/// <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p>
/// <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
pub kms_key_id: ::std::option::Option<::std::string::String>,
/// <p>Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>.</p>
pub publicly_accessible: ::std::option::Option<bool>,
/// <p>A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: <code>"1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4"</code></p>
pub dns_name_servers: ::std::option::Option<::std::string::String>,
/// <p>A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, DMS generates a default identifier value for the end of <code>EndpointArn</code>.</p>
pub resource_identifier: ::std::option::Option<::std::string::String>,
/// <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
pub network_type: ::std::option::Option<::std::string::String>,
/// <p>Specifies the settings required for kerberos authentication when creating the replication instance.</p>
pub kerberos_authentication_settings: ::std::option::Option<crate::types::KerberosAuthenticationSettings>,
}
impl CreateReplicationInstanceInput {
/// <p>The replication instance identifier. This parameter is stored as a lowercase string.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain 1-63 alphanumeric characters or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Example: <code>myrepinstance</code></p>
pub fn replication_instance_identifier(&self) -> ::std::option::Option<&str> {
self.replication_instance_identifier.as_deref()
}
/// <p>The amount of storage (in gigabytes) to be initially allocated for the replication instance.</p>
pub fn allocated_storage(&self) -> ::std::option::Option<i32> {
self.allocated_storage
}
/// <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>.</p>
/// <p>For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html "> Choosing the right DMS replication instance</a>; and, <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html">Selecting the best size for a replication instance</a>.</p>
pub fn replication_instance_class(&self) -> ::std::option::Option<&str> {
self.replication_instance_class.as_deref()
}
/// <p>Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.vpc_security_group_ids.is_none()`.
pub fn vpc_security_group_ids(&self) -> &[::std::string::String] {
self.vpc_security_group_ids.as_deref().unwrap_or_default()
}
/// <p>The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: <code>us-east-1d</code>.</p>
pub fn availability_zone(&self) -> ::std::option::Option<&str> {
self.availability_zone.as_deref()
}
/// <p>A subnet group to associate with the replication instance.</p>
pub fn replication_subnet_group_identifier(&self) -> ::std::option::Option<&str> {
self.replication_subnet_group_identifier.as_deref()
}
/// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
/// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
/// <p>Default: A 30-minute window selected at random from an 8-hour block of time per Amazon Web Services Region, occurring on a random day of the week.</p>
/// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p>
/// <p>Constraints: Minimum 30-minute window.</p>
pub fn preferred_maintenance_window(&self) -> ::std::option::Option<&str> {
self.preferred_maintenance_window.as_deref()
}
/// <p>Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>.</p>
pub fn multi_az(&self) -> ::std::option::Option<bool> {
self.multi_az
}
/// <p>The engine version number of the replication instance.</p>
/// <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p>
pub fn engine_version(&self) -> ::std::option::Option<&str> {
self.engine_version.as_deref()
}
/// <p>A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to <code>true</code>.</p>
/// <p>Default: <code>true</code></p>
pub fn auto_minor_version_upgrade(&self) -> ::std::option::Option<bool> {
self.auto_minor_version_upgrade
}
/// <p>One or more tags to be assigned to the replication instance.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
pub fn tags(&self) -> &[crate::types::Tag] {
self.tags.as_deref().unwrap_or_default()
}
/// <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p>
/// <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p>
/// <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
pub fn kms_key_id(&self) -> ::std::option::Option<&str> {
self.kms_key_id.as_deref()
}
/// <p>Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>.</p>
pub fn publicly_accessible(&self) -> ::std::option::Option<bool> {
self.publicly_accessible
}
/// <p>A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: <code>"1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4"</code></p>
pub fn dns_name_servers(&self) -> ::std::option::Option<&str> {
self.dns_name_servers.as_deref()
}
/// <p>A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, DMS generates a default identifier value for the end of <code>EndpointArn</code>.</p>
pub fn resource_identifier(&self) -> ::std::option::Option<&str> {
self.resource_identifier.as_deref()
}
/// <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
pub fn network_type(&self) -> ::std::option::Option<&str> {
self.network_type.as_deref()
}
/// <p>Specifies the settings required for kerberos authentication when creating the replication instance.</p>
pub fn kerberos_authentication_settings(&self) -> ::std::option::Option<&crate::types::KerberosAuthenticationSettings> {
self.kerberos_authentication_settings.as_ref()
}
}
impl CreateReplicationInstanceInput {
/// Creates a new builder-style object to manufacture [`CreateReplicationInstanceInput`](crate::operation::create_replication_instance::CreateReplicationInstanceInput).
pub fn builder() -> crate::operation::create_replication_instance::builders::CreateReplicationInstanceInputBuilder {
crate::operation::create_replication_instance::builders::CreateReplicationInstanceInputBuilder::default()
}
}
/// A builder for [`CreateReplicationInstanceInput`](crate::operation::create_replication_instance::CreateReplicationInstanceInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct CreateReplicationInstanceInputBuilder {
pub(crate) replication_instance_identifier: ::std::option::Option<::std::string::String>,
pub(crate) allocated_storage: ::std::option::Option<i32>,
pub(crate) replication_instance_class: ::std::option::Option<::std::string::String>,
pub(crate) vpc_security_group_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub(crate) availability_zone: ::std::option::Option<::std::string::String>,
pub(crate) replication_subnet_group_identifier: ::std::option::Option<::std::string::String>,
pub(crate) preferred_maintenance_window: ::std::option::Option<::std::string::String>,
pub(crate) multi_az: ::std::option::Option<bool>,
pub(crate) engine_version: ::std::option::Option<::std::string::String>,
pub(crate) auto_minor_version_upgrade: ::std::option::Option<bool>,
pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
pub(crate) kms_key_id: ::std::option::Option<::std::string::String>,
pub(crate) publicly_accessible: ::std::option::Option<bool>,
pub(crate) dns_name_servers: ::std::option::Option<::std::string::String>,
pub(crate) resource_identifier: ::std::option::Option<::std::string::String>,
pub(crate) network_type: ::std::option::Option<::std::string::String>,
pub(crate) kerberos_authentication_settings: ::std::option::Option<crate::types::KerberosAuthenticationSettings>,
}
impl CreateReplicationInstanceInputBuilder {
/// <p>The replication instance identifier. This parameter is stored as a lowercase string.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain 1-63 alphanumeric characters or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Example: <code>myrepinstance</code></p>
/// This field is required.
pub fn replication_instance_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.replication_instance_identifier = ::std::option::Option::Some(input.into());
self
}
/// <p>The replication instance identifier. This parameter is stored as a lowercase string.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain 1-63 alphanumeric characters or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Example: <code>myrepinstance</code></p>
pub fn set_replication_instance_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.replication_instance_identifier = input;
self
}
/// <p>The replication instance identifier. This parameter is stored as a lowercase string.</p>
/// <p>Constraints:</p>
/// <ul>
/// <li>
/// <p>Must contain 1-63 alphanumeric characters or hyphens.</p></li>
/// <li>
/// <p>First character must be a letter.</p></li>
/// <li>
/// <p>Can't end with a hyphen or contain two consecutive hyphens.</p></li>
/// </ul>
/// <p>Example: <code>myrepinstance</code></p>
pub fn get_replication_instance_identifier(&self) -> &::std::option::Option<::std::string::String> {
&self.replication_instance_identifier
}
/// <p>The amount of storage (in gigabytes) to be initially allocated for the replication instance.</p>
pub fn allocated_storage(mut self, input: i32) -> Self {
self.allocated_storage = ::std::option::Option::Some(input);
self
}
/// <p>The amount of storage (in gigabytes) to be initially allocated for the replication instance.</p>
pub fn set_allocated_storage(mut self, input: ::std::option::Option<i32>) -> Self {
self.allocated_storage = input;
self
}
/// <p>The amount of storage (in gigabytes) to be initially allocated for the replication instance.</p>
pub fn get_allocated_storage(&self) -> &::std::option::Option<i32> {
&self.allocated_storage
}
/// <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>.</p>
/// <p>For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html "> Choosing the right DMS replication instance</a>; and, <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html">Selecting the best size for a replication instance</a>.</p>
/// This field is required.
pub fn replication_instance_class(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.replication_instance_class = ::std::option::Option::Some(input.into());
self
}
/// <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>.</p>
/// <p>For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html "> Choosing the right DMS replication instance</a>; and, <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html">Selecting the best size for a replication instance</a>.</p>
pub fn set_replication_instance_class(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.replication_instance_class = input;
self
}
/// <p>The compute and memory capacity of the replication instance as defined for the specified replication instance class. For example to specify the instance class dms.c4.large, set this parameter to <code>"dms.c4.large"</code>.</p>
/// <p>For more information on the settings and capacities for the available replication instance classes, see <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html "> Choosing the right DMS replication instance</a>; and, <a href="https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html">Selecting the best size for a replication instance</a>.</p>
pub fn get_replication_instance_class(&self) -> &::std::option::Option<::std::string::String> {
&self.replication_instance_class
}
/// Appends an item to `vpc_security_group_ids`.
///
/// To override the contents of this collection use [`set_vpc_security_group_ids`](Self::set_vpc_security_group_ids).
///
/// <p>Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance.</p>
pub fn vpc_security_group_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut v = self.vpc_security_group_ids.unwrap_or_default();
v.push(input.into());
self.vpc_security_group_ids = ::std::option::Option::Some(v);
self
}
/// <p>Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance.</p>
pub fn set_vpc_security_group_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.vpc_security_group_ids = input;
self
}
/// <p>Specifies the VPC security group to be used with the replication instance. The VPC security group must work with the VPC containing the replication instance.</p>
pub fn get_vpc_security_group_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
&self.vpc_security_group_ids
}
/// <p>The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: <code>us-east-1d</code>.</p>
pub fn availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.availability_zone = ::std::option::Option::Some(input.into());
self
}
/// <p>The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: <code>us-east-1d</code>.</p>
pub fn set_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.availability_zone = input;
self
}
/// <p>The Availability Zone where the replication instance will be created. The default value is a random, system-chosen Availability Zone in the endpoint's Amazon Web Services Region, for example: <code>us-east-1d</code>.</p>
pub fn get_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
&self.availability_zone
}
/// <p>A subnet group to associate with the replication instance.</p>
pub fn replication_subnet_group_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.replication_subnet_group_identifier = ::std::option::Option::Some(input.into());
self
}
/// <p>A subnet group to associate with the replication instance.</p>
pub fn set_replication_subnet_group_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.replication_subnet_group_identifier = input;
self
}
/// <p>A subnet group to associate with the replication instance.</p>
pub fn get_replication_subnet_group_identifier(&self) -> &::std::option::Option<::std::string::String> {
&self.replication_subnet_group_identifier
}
/// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
/// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
/// <p>Default: A 30-minute window selected at random from an 8-hour block of time per Amazon Web Services Region, occurring on a random day of the week.</p>
/// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p>
/// <p>Constraints: Minimum 30-minute window.</p>
pub fn preferred_maintenance_window(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.preferred_maintenance_window = ::std::option::Option::Some(input.into());
self
}
/// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
/// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
/// <p>Default: A 30-minute window selected at random from an 8-hour block of time per Amazon Web Services Region, occurring on a random day of the week.</p>
/// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p>
/// <p>Constraints: Minimum 30-minute window.</p>
pub fn set_preferred_maintenance_window(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.preferred_maintenance_window = input;
self
}
/// <p>The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).</p>
/// <p>Format: <code>ddd:hh24:mi-ddd:hh24:mi</code></p>
/// <p>Default: A 30-minute window selected at random from an 8-hour block of time per Amazon Web Services Region, occurring on a random day of the week.</p>
/// <p>Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun</p>
/// <p>Constraints: Minimum 30-minute window.</p>
pub fn get_preferred_maintenance_window(&self) -> &::std::option::Option<::std::string::String> {
&self.preferred_maintenance_window
}
/// <p>Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>.</p>
pub fn multi_az(mut self, input: bool) -> Self {
self.multi_az = ::std::option::Option::Some(input);
self
}
/// <p>Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>.</p>
pub fn set_multi_az(mut self, input: ::std::option::Option<bool>) -> Self {
self.multi_az = input;
self
}
/// <p>Specifies whether the replication instance is a Multi-AZ deployment. You can't set the <code>AvailabilityZone</code> parameter if the Multi-AZ parameter is set to <code>true</code>.</p>
pub fn get_multi_az(&self) -> &::std::option::Option<bool> {
&self.multi_az
}
/// <p>The engine version number of the replication instance.</p>
/// <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p>
pub fn engine_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.engine_version = ::std::option::Option::Some(input.into());
self
}
/// <p>The engine version number of the replication instance.</p>
/// <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p>
pub fn set_engine_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.engine_version = input;
self
}
/// <p>The engine version number of the replication instance.</p>
/// <p>If an engine version number is not specified when a replication instance is created, the default is the latest engine version available.</p>
pub fn get_engine_version(&self) -> &::std::option::Option<::std::string::String> {
&self.engine_version
}
/// <p>A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to <code>true</code>.</p>
/// <p>Default: <code>true</code></p>
pub fn auto_minor_version_upgrade(mut self, input: bool) -> Self {
self.auto_minor_version_upgrade = ::std::option::Option::Some(input);
self
}
/// <p>A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to <code>true</code>.</p>
/// <p>Default: <code>true</code></p>
pub fn set_auto_minor_version_upgrade(mut self, input: ::std::option::Option<bool>) -> Self {
self.auto_minor_version_upgrade = input;
self
}
/// <p>A value that indicates whether minor engine upgrades are applied automatically to the replication instance during the maintenance window. This parameter defaults to <code>true</code>.</p>
/// <p>Default: <code>true</code></p>
pub fn get_auto_minor_version_upgrade(&self) -> &::std::option::Option<bool> {
&self.auto_minor_version_upgrade
}
/// Appends an item to `tags`.
///
/// To override the contents of this collection use [`set_tags`](Self::set_tags).
///
/// <p>One or more tags to be assigned to the replication instance.</p>
pub fn tags(mut self, input: crate::types::Tag) -> Self {
let mut v = self.tags.unwrap_or_default();
v.push(input);
self.tags = ::std::option::Option::Some(v);
self
}
/// <p>One or more tags to be assigned to the replication instance.</p>
pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
self.tags = input;
self
}
/// <p>One or more tags to be assigned to the replication instance.</p>
pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
&self.tags
}
/// <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p>
/// <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p>
/// <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
pub fn kms_key_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.kms_key_id = ::std::option::Option::Some(input.into());
self
}
/// <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p>
/// <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p>
/// <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
pub fn set_kms_key_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.kms_key_id = input;
self
}
/// <p>An KMS key identifier that is used to encrypt the data on the replication instance.</p>
/// <p>If you don't specify a value for the <code>KmsKeyId</code> parameter, then DMS uses your default encryption key.</p>
/// <p>KMS creates the default encryption key for your Amazon Web Services account. Your Amazon Web Services account has a different default encryption key for each Amazon Web Services Region.</p>
pub fn get_kms_key_id(&self) -> &::std::option::Option<::std::string::String> {
&self.kms_key_id
}
/// <p>Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>.</p>
pub fn publicly_accessible(mut self, input: bool) -> Self {
self.publicly_accessible = ::std::option::Option::Some(input);
self
}
/// <p>Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>.</p>
pub fn set_publicly_accessible(mut self, input: ::std::option::Option<bool>) -> Self {
self.publicly_accessible = input;
self
}
/// <p>Specifies the accessibility options for the replication instance. A value of <code>true</code> represents an instance with a public IP address. A value of <code>false</code> represents an instance with a private IP address. The default value is <code>true</code>.</p>
pub fn get_publicly_accessible(&self) -> &::std::option::Option<bool> {
&self.publicly_accessible
}
/// <p>A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: <code>"1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4"</code></p>
pub fn dns_name_servers(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.dns_name_servers = ::std::option::Option::Some(input.into());
self
}
/// <p>A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: <code>"1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4"</code></p>
pub fn set_dns_name_servers(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.dns_name_servers = input;
self
}
/// <p>A list of custom DNS name servers supported for the replication instance to access your on-premise source or target database. This list overrides the default name servers supported by the replication instance. You can specify a comma-separated list of internet addresses for up to four on-premise DNS name servers. For example: <code>"1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4"</code></p>
pub fn get_dns_name_servers(&self) -> &::std::option::Option<::std::string::String> {
&self.dns_name_servers
}
/// <p>A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, DMS generates a default identifier value for the end of <code>EndpointArn</code>.</p>
pub fn resource_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.resource_identifier = ::std::option::Option::Some(input.into());
self
}
/// <p>A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, DMS generates a default identifier value for the end of <code>EndpointArn</code>.</p>
pub fn set_resource_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.resource_identifier = input;
self
}
/// <p>A friendly name for the resource identifier at the end of the <code>EndpointArn</code> response parameter that is returned in the created <code>Endpoint</code> object. The value for this parameter can have up to 31 characters. It can contain only ASCII letters, digits, and hyphen ('-'). Also, it can't end with a hyphen or contain two consecutive hyphens, and can only begin with a letter, such as <code>Example-App-ARN1</code>. For example, this value might result in the <code>EndpointArn</code> value <code>arn:aws:dms:eu-west-1:012345678901:rep:Example-App-ARN1</code>. If you don't specify a <code>ResourceIdentifier</code> value, DMS generates a default identifier value for the end of <code>EndpointArn</code>.</p>
pub fn get_resource_identifier(&self) -> &::std::option::Option<::std::string::String> {
&self.resource_identifier
}
/// <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
pub fn network_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.network_type = ::std::option::Option::Some(input.into());
self
}
/// <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
pub fn set_network_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.network_type = input;
self
}
/// <p>The type of IP address protocol used by a replication instance, such as IPv4 only or Dual-stack that supports both IPv4 and IPv6 addressing. IPv6 only is not yet supported.</p>
pub fn get_network_type(&self) -> &::std::option::Option<::std::string::String> {
&self.network_type
}
/// <p>Specifies the settings required for kerberos authentication when creating the replication instance.</p>
pub fn kerberos_authentication_settings(mut self, input: crate::types::KerberosAuthenticationSettings) -> Self {
self.kerberos_authentication_settings = ::std::option::Option::Some(input);
self
}
/// <p>Specifies the settings required for kerberos authentication when creating the replication instance.</p>
pub fn set_kerberos_authentication_settings(mut self, input: ::std::option::Option<crate::types::KerberosAuthenticationSettings>) -> Self {
self.kerberos_authentication_settings = input;
self
}
/// <p>Specifies the settings required for kerberos authentication when creating the replication instance.</p>
pub fn get_kerberos_authentication_settings(&self) -> &::std::option::Option<crate::types::KerberosAuthenticationSettings> {
&self.kerberos_authentication_settings
}
/// Consumes the builder and constructs a [`CreateReplicationInstanceInput`](crate::operation::create_replication_instance::CreateReplicationInstanceInput).
pub fn build(
self,
) -> ::std::result::Result<
crate::operation::create_replication_instance::CreateReplicationInstanceInput,
::aws_smithy_types::error::operation::BuildError,
> {
::std::result::Result::Ok(crate::operation::create_replication_instance::CreateReplicationInstanceInput {
replication_instance_identifier: self.replication_instance_identifier,
allocated_storage: self.allocated_storage,
replication_instance_class: self.replication_instance_class,
vpc_security_group_ids: self.vpc_security_group_ids,
availability_zone: self.availability_zone,
replication_subnet_group_identifier: self.replication_subnet_group_identifier,
preferred_maintenance_window: self.preferred_maintenance_window,
multi_az: self.multi_az,
engine_version: self.engine_version,
auto_minor_version_upgrade: self.auto_minor_version_upgrade,
tags: self.tags,
kms_key_id: self.kms_key_id,
publicly_accessible: self.publicly_accessible,
dns_name_servers: self.dns_name_servers,
resource_identifier: self.resource_identifier,
network_type: self.network_type,
kerberos_authentication_settings: self.kerberos_authentication_settings,
})
}
}