#[allow(missing_docs)] #[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
pub struct ReplicationConfigurationTemplate {
pub replication_configuration_template_id: ::std::string::String,
pub arn: ::std::option::Option<::std::string::String>,
pub staging_area_subnet_id: ::std::option::Option<::std::string::String>,
pub associate_default_security_group: ::std::option::Option<bool>,
pub replication_servers_security_groups_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub replication_server_instance_type: ::std::option::Option<::std::string::String>,
pub use_dedicated_replication_server: ::std::option::Option<bool>,
pub default_large_staging_disk_type: ::std::option::Option<crate::types::ReplicationConfigurationDefaultLargeStagingDiskType>,
pub ebs_encryption: ::std::option::Option<crate::types::ReplicationConfigurationEbsEncryption>,
pub ebs_encryption_key_arn: ::std::option::Option<::std::string::String>,
pub bandwidth_throttling: i64,
pub data_plane_routing: ::std::option::Option<crate::types::ReplicationConfigurationDataPlaneRouting>,
pub create_public_ip: ::std::option::Option<bool>,
pub staging_area_tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub pit_policy: ::std::option::Option<::std::vec::Vec<crate::types::PitPolicyRule>>,
pub auto_replicate_new_disks: ::std::option::Option<bool>,
}
impl ReplicationConfigurationTemplate {
pub fn replication_configuration_template_id(&self) -> &str {
use std::ops::Deref;
self.replication_configuration_template_id.deref()
}
pub fn arn(&self) -> ::std::option::Option<&str> {
self.arn.as_deref()
}
pub fn staging_area_subnet_id(&self) -> ::std::option::Option<&str> {
self.staging_area_subnet_id.as_deref()
}
pub fn associate_default_security_group(&self) -> ::std::option::Option<bool> {
self.associate_default_security_group
}
pub fn replication_servers_security_groups_ids(&self) -> &[::std::string::String] {
self.replication_servers_security_groups_ids.as_deref().unwrap_or_default()
}
pub fn replication_server_instance_type(&self) -> ::std::option::Option<&str> {
self.replication_server_instance_type.as_deref()
}
pub fn use_dedicated_replication_server(&self) -> ::std::option::Option<bool> {
self.use_dedicated_replication_server
}
pub fn default_large_staging_disk_type(&self) -> ::std::option::Option<&crate::types::ReplicationConfigurationDefaultLargeStagingDiskType> {
self.default_large_staging_disk_type.as_ref()
}
pub fn ebs_encryption(&self) -> ::std::option::Option<&crate::types::ReplicationConfigurationEbsEncryption> {
self.ebs_encryption.as_ref()
}
pub fn ebs_encryption_key_arn(&self) -> ::std::option::Option<&str> {
self.ebs_encryption_key_arn.as_deref()
}
pub fn bandwidth_throttling(&self) -> i64 {
self.bandwidth_throttling
}
pub fn data_plane_routing(&self) -> ::std::option::Option<&crate::types::ReplicationConfigurationDataPlaneRouting> {
self.data_plane_routing.as_ref()
}
pub fn create_public_ip(&self) -> ::std::option::Option<bool> {
self.create_public_ip
}
pub fn staging_area_tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.staging_area_tags.as_ref()
}
pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.tags.as_ref()
}
pub fn pit_policy(&self) -> &[crate::types::PitPolicyRule] {
self.pit_policy.as_deref().unwrap_or_default()
}
pub fn auto_replicate_new_disks(&self) -> ::std::option::Option<bool> {
self.auto_replicate_new_disks
}
}
impl ::std::fmt::Debug for ReplicationConfigurationTemplate {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
let mut formatter = f.debug_struct("ReplicationConfigurationTemplate");
formatter.field("replication_configuration_template_id", &self.replication_configuration_template_id);
formatter.field("arn", &self.arn);
formatter.field("staging_area_subnet_id", &self.staging_area_subnet_id);
formatter.field("associate_default_security_group", &self.associate_default_security_group);
formatter.field("replication_servers_security_groups_ids", &self.replication_servers_security_groups_ids);
formatter.field("replication_server_instance_type", &self.replication_server_instance_type);
formatter.field("use_dedicated_replication_server", &self.use_dedicated_replication_server);
formatter.field("default_large_staging_disk_type", &self.default_large_staging_disk_type);
formatter.field("ebs_encryption", &self.ebs_encryption);
formatter.field("ebs_encryption_key_arn", &self.ebs_encryption_key_arn);
formatter.field("bandwidth_throttling", &self.bandwidth_throttling);
formatter.field("data_plane_routing", &self.data_plane_routing);
formatter.field("create_public_ip", &self.create_public_ip);
formatter.field("staging_area_tags", &"*** Sensitive Data Redacted ***");
formatter.field("tags", &"*** Sensitive Data Redacted ***");
formatter.field("pit_policy", &self.pit_policy);
formatter.field("auto_replicate_new_disks", &self.auto_replicate_new_disks);
formatter.finish()
}
}
impl ReplicationConfigurationTemplate {
pub fn builder() -> crate::types::builders::ReplicationConfigurationTemplateBuilder {
crate::types::builders::ReplicationConfigurationTemplateBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
#[non_exhaustive]
pub struct ReplicationConfigurationTemplateBuilder {
pub(crate) replication_configuration_template_id: ::std::option::Option<::std::string::String>,
pub(crate) arn: ::std::option::Option<::std::string::String>,
pub(crate) staging_area_subnet_id: ::std::option::Option<::std::string::String>,
pub(crate) associate_default_security_group: ::std::option::Option<bool>,
pub(crate) replication_servers_security_groups_ids: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub(crate) replication_server_instance_type: ::std::option::Option<::std::string::String>,
pub(crate) use_dedicated_replication_server: ::std::option::Option<bool>,
pub(crate) default_large_staging_disk_type: ::std::option::Option<crate::types::ReplicationConfigurationDefaultLargeStagingDiskType>,
pub(crate) ebs_encryption: ::std::option::Option<crate::types::ReplicationConfigurationEbsEncryption>,
pub(crate) ebs_encryption_key_arn: ::std::option::Option<::std::string::String>,
pub(crate) bandwidth_throttling: ::std::option::Option<i64>,
pub(crate) data_plane_routing: ::std::option::Option<crate::types::ReplicationConfigurationDataPlaneRouting>,
pub(crate) create_public_ip: ::std::option::Option<bool>,
pub(crate) staging_area_tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub(crate) pit_policy: ::std::option::Option<::std::vec::Vec<crate::types::PitPolicyRule>>,
pub(crate) auto_replicate_new_disks: ::std::option::Option<bool>,
}
impl ReplicationConfigurationTemplateBuilder {
pub fn replication_configuration_template_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.replication_configuration_template_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_replication_configuration_template_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.replication_configuration_template_id = input;
self
}
pub fn get_replication_configuration_template_id(&self) -> &::std::option::Option<::std::string::String> {
&self.replication_configuration_template_id
}
pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.arn = ::std::option::Option::Some(input.into());
self
}
pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.arn = input;
self
}
pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.arn
}
pub fn staging_area_subnet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.staging_area_subnet_id = ::std::option::Option::Some(input.into());
self
}
pub fn set_staging_area_subnet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.staging_area_subnet_id = input;
self
}
pub fn get_staging_area_subnet_id(&self) -> &::std::option::Option<::std::string::String> {
&self.staging_area_subnet_id
}
pub fn associate_default_security_group(mut self, input: bool) -> Self {
self.associate_default_security_group = ::std::option::Option::Some(input);
self
}
pub fn set_associate_default_security_group(mut self, input: ::std::option::Option<bool>) -> Self {
self.associate_default_security_group = input;
self
}
pub fn get_associate_default_security_group(&self) -> &::std::option::Option<bool> {
&self.associate_default_security_group
}
pub fn replication_servers_security_groups_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut v = self.replication_servers_security_groups_ids.unwrap_or_default();
v.push(input.into());
self.replication_servers_security_groups_ids = ::std::option::Option::Some(v);
self
}
pub fn set_replication_servers_security_groups_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.replication_servers_security_groups_ids = input;
self
}
pub fn get_replication_servers_security_groups_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
&self.replication_servers_security_groups_ids
}
pub fn replication_server_instance_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.replication_server_instance_type = ::std::option::Option::Some(input.into());
self
}
pub fn set_replication_server_instance_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.replication_server_instance_type = input;
self
}
pub fn get_replication_server_instance_type(&self) -> &::std::option::Option<::std::string::String> {
&self.replication_server_instance_type
}
pub fn use_dedicated_replication_server(mut self, input: bool) -> Self {
self.use_dedicated_replication_server = ::std::option::Option::Some(input);
self
}
pub fn set_use_dedicated_replication_server(mut self, input: ::std::option::Option<bool>) -> Self {
self.use_dedicated_replication_server = input;
self
}
pub fn get_use_dedicated_replication_server(&self) -> &::std::option::Option<bool> {
&self.use_dedicated_replication_server
}
pub fn default_large_staging_disk_type(mut self, input: crate::types::ReplicationConfigurationDefaultLargeStagingDiskType) -> Self {
self.default_large_staging_disk_type = ::std::option::Option::Some(input);
self
}
pub fn set_default_large_staging_disk_type(
mut self,
input: ::std::option::Option<crate::types::ReplicationConfigurationDefaultLargeStagingDiskType>,
) -> Self {
self.default_large_staging_disk_type = input;
self
}
pub fn get_default_large_staging_disk_type(&self) -> &::std::option::Option<crate::types::ReplicationConfigurationDefaultLargeStagingDiskType> {
&self.default_large_staging_disk_type
}
pub fn ebs_encryption(mut self, input: crate::types::ReplicationConfigurationEbsEncryption) -> Self {
self.ebs_encryption = ::std::option::Option::Some(input);
self
}
pub fn set_ebs_encryption(mut self, input: ::std::option::Option<crate::types::ReplicationConfigurationEbsEncryption>) -> Self {
self.ebs_encryption = input;
self
}
pub fn get_ebs_encryption(&self) -> &::std::option::Option<crate::types::ReplicationConfigurationEbsEncryption> {
&self.ebs_encryption
}
pub fn ebs_encryption_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.ebs_encryption_key_arn = ::std::option::Option::Some(input.into());
self
}
pub fn set_ebs_encryption_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.ebs_encryption_key_arn = input;
self
}
pub fn get_ebs_encryption_key_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.ebs_encryption_key_arn
}
pub fn bandwidth_throttling(mut self, input: i64) -> Self {
self.bandwidth_throttling = ::std::option::Option::Some(input);
self
}
pub fn set_bandwidth_throttling(mut self, input: ::std::option::Option<i64>) -> Self {
self.bandwidth_throttling = input;
self
}
pub fn get_bandwidth_throttling(&self) -> &::std::option::Option<i64> {
&self.bandwidth_throttling
}
pub fn data_plane_routing(mut self, input: crate::types::ReplicationConfigurationDataPlaneRouting) -> Self {
self.data_plane_routing = ::std::option::Option::Some(input);
self
}
pub fn set_data_plane_routing(mut self, input: ::std::option::Option<crate::types::ReplicationConfigurationDataPlaneRouting>) -> Self {
self.data_plane_routing = input;
self
}
pub fn get_data_plane_routing(&self) -> &::std::option::Option<crate::types::ReplicationConfigurationDataPlaneRouting> {
&self.data_plane_routing
}
pub fn create_public_ip(mut self, input: bool) -> Self {
self.create_public_ip = ::std::option::Option::Some(input);
self
}
pub fn set_create_public_ip(mut self, input: ::std::option::Option<bool>) -> Self {
self.create_public_ip = input;
self
}
pub fn get_create_public_ip(&self) -> &::std::option::Option<bool> {
&self.create_public_ip
}
pub fn staging_area_tags(
mut self,
k: impl ::std::convert::Into<::std::string::String>,
v: impl ::std::convert::Into<::std::string::String>,
) -> Self {
let mut hash_map = self.staging_area_tags.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.staging_area_tags = ::std::option::Option::Some(hash_map);
self
}
pub fn set_staging_area_tags(
mut self,
input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
) -> Self {
self.staging_area_tags = input;
self
}
pub fn get_staging_area_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.staging_area_tags
}
pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut hash_map = self.tags.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.tags = ::std::option::Option::Some(hash_map);
self
}
pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
self.tags = input;
self
}
pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.tags
}
pub fn pit_policy(mut self, input: crate::types::PitPolicyRule) -> Self {
let mut v = self.pit_policy.unwrap_or_default();
v.push(input);
self.pit_policy = ::std::option::Option::Some(v);
self
}
pub fn set_pit_policy(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::PitPolicyRule>>) -> Self {
self.pit_policy = input;
self
}
pub fn get_pit_policy(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::PitPolicyRule>> {
&self.pit_policy
}
pub fn auto_replicate_new_disks(mut self, input: bool) -> Self {
self.auto_replicate_new_disks = ::std::option::Option::Some(input);
self
}
pub fn set_auto_replicate_new_disks(mut self, input: ::std::option::Option<bool>) -> Self {
self.auto_replicate_new_disks = input;
self
}
pub fn get_auto_replicate_new_disks(&self) -> &::std::option::Option<bool> {
&self.auto_replicate_new_disks
}
pub fn build(self) -> ::std::result::Result<crate::types::ReplicationConfigurationTemplate, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::ReplicationConfigurationTemplate {
replication_configuration_template_id: self.replication_configuration_template_id.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"replication_configuration_template_id",
"replication_configuration_template_id was not specified but it is required when building ReplicationConfigurationTemplate",
)
})?,
arn: self.arn,
staging_area_subnet_id: self.staging_area_subnet_id,
associate_default_security_group: self.associate_default_security_group,
replication_servers_security_groups_ids: self.replication_servers_security_groups_ids,
replication_server_instance_type: self.replication_server_instance_type,
use_dedicated_replication_server: self.use_dedicated_replication_server,
default_large_staging_disk_type: self.default_large_staging_disk_type,
ebs_encryption: self.ebs_encryption,
ebs_encryption_key_arn: self.ebs_encryption_key_arn,
bandwidth_throttling: self.bandwidth_throttling.unwrap_or_default(),
data_plane_routing: self.data_plane_routing,
create_public_ip: self.create_public_ip,
staging_area_tags: self.staging_area_tags,
tags: self.tags,
pit_policy: self.pit_policy,
auto_replicate_new_disks: self.auto_replicate_new_disks,
})
}
}
impl ::std::fmt::Debug for ReplicationConfigurationTemplateBuilder {
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
let mut formatter = f.debug_struct("ReplicationConfigurationTemplateBuilder");
formatter.field("replication_configuration_template_id", &self.replication_configuration_template_id);
formatter.field("arn", &self.arn);
formatter.field("staging_area_subnet_id", &self.staging_area_subnet_id);
formatter.field("associate_default_security_group", &self.associate_default_security_group);
formatter.field("replication_servers_security_groups_ids", &self.replication_servers_security_groups_ids);
formatter.field("replication_server_instance_type", &self.replication_server_instance_type);
formatter.field("use_dedicated_replication_server", &self.use_dedicated_replication_server);
formatter.field("default_large_staging_disk_type", &self.default_large_staging_disk_type);
formatter.field("ebs_encryption", &self.ebs_encryption);
formatter.field("ebs_encryption_key_arn", &self.ebs_encryption_key_arn);
formatter.field("bandwidth_throttling", &self.bandwidth_throttling);
formatter.field("data_plane_routing", &self.data_plane_routing);
formatter.field("create_public_ip", &self.create_public_ip);
formatter.field("staging_area_tags", &"*** Sensitive Data Redacted ***");
formatter.field("tags", &"*** Sensitive Data Redacted ***");
formatter.field("pit_policy", &self.pit_policy);
formatter.field("auto_replicate_new_disks", &self.auto_replicate_new_disks);
formatter.finish()
}
}