Package com.pulumi.aws.dms
Class ReplicationInstance
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.dms.ReplicationInstance
-
public class ReplicationInstance extends com.pulumi.resources.CustomResourceProvides a DMS (Data Migration Service) replication instance resource. DMS replication instances can be created, updated, deleted, and imported. ## Example Usage Create required roles and then create a DMS instance, setting the dependsOn to the required role policy attachments.
## Import Using `pulumi import`, import replication instances using the `replicationInstanceId`. For example: ```sh $ pulumi import aws:dms/replicationInstance:ReplicationInstance test test-dms-replication-instance-tf ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import com.pulumi.aws.dms.ReplicationInstance; import com.pulumi.aws.dms.ReplicationInstanceArgs; import com.pulumi.resources.CustomResourceOptions; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { // Database Migration Service requires the below IAM Roles to be created before // replication instances can be created. See the DMS Documentation for // additional information: https://docs.aws.amazon.com/dms/latest/userguide/security-iam.html#CHAP_Security.APIRole // * dms-vpc-role // * dms-cloudwatch-logs-role // * dms-access-for-endpoint final var dmsAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .identifiers("dms.amazonaws.com") .type("Service") .build()) .actions("sts:AssumeRole") .build()) .build()); var dms_access_for_endpoint = new Role("dms-access-for-endpoint", RoleArgs.builder() .assumeRolePolicy(dmsAssumeRole.json()) .name("dms-access-for-endpoint") .build()); var dms_access_for_endpoint_AmazonDMSRedshiftS3Role = new RolePolicyAttachment("dms-access-for-endpoint-AmazonDMSRedshiftS3Role", RolePolicyAttachmentArgs.builder() .policyArn("arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role") .role(dms_access_for_endpoint.name()) .build()); var dms_cloudwatch_logs_role = new Role("dms-cloudwatch-logs-role", RoleArgs.builder() .assumeRolePolicy(dmsAssumeRole.json()) .name("dms-cloudwatch-logs-role") .build()); var dms_cloudwatch_logs_role_AmazonDMSCloudWatchLogsRole = new RolePolicyAttachment("dms-cloudwatch-logs-role-AmazonDMSCloudWatchLogsRole", RolePolicyAttachmentArgs.builder() .policyArn("arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole") .role(dms_cloudwatch_logs_role.name()) .build()); var dms_vpc_role = new Role("dms-vpc-role", RoleArgs.builder() .assumeRolePolicy(dmsAssumeRole.json()) .name("dms-vpc-role") .build()); var dms_vpc_role_AmazonDMSVPCManagementRole = new RolePolicyAttachment("dms-vpc-role-AmazonDMSVPCManagementRole", RolePolicyAttachmentArgs.builder() .policyArn("arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole") .role(dms_vpc_role.name()) .build()); // Create a new replication instance var test = new ReplicationInstance("test", ReplicationInstanceArgs.builder() .allocatedStorage(20) .applyImmediately(true) .autoMinorVersionUpgrade(true) .availabilityZone("us-west-2c") .engineVersion("3.1.4") .kmsKeyArn("arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012") .multiAz(false) .preferredMaintenanceWindow("sun:10:30-sun:14:30") .publiclyAccessible(true) .replicationInstanceClass("dms.t3.micro") .replicationInstanceId("test-dms-replication-instance-tf") .replicationSubnetGroupId(test_dms_replication_subnet_group_tf.id()) .tags(Map.of("Name", "test")) .vpcSecurityGroupIds("sg-12345678") .build(), CustomResourceOptions.builder() .dependsOn( dms_access_for_endpoint_AmazonDMSRedshiftS3Role, dms_cloudwatch_logs_role_AmazonDMSCloudWatchLogsRole, dms_vpc_role_AmazonDMSVPCManagementRole) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description ReplicationInstance(java.lang.String name)ReplicationInstance(java.lang.String name, ReplicationInstanceArgs args)ReplicationInstance(java.lang.String name, ReplicationInstanceArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.Integer>allocatedStorage()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>allowMajorVersionUpgrade()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>applyImmediately()com.pulumi.core.Output<java.lang.Boolean>autoMinorVersionUpgrade()com.pulumi.core.Output<java.lang.String>availabilityZone()com.pulumi.core.Output<java.util.Optional<java.lang.String>>dnsNameServers()com.pulumi.core.Output<java.lang.String>engineVersion()static ReplicationInstanceget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ReplicationInstanceState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<ReplicationInstanceKerberosAuthenticationSettings>>kerberosAuthenticationSettings()com.pulumi.core.Output<java.lang.String>kmsKeyArn()com.pulumi.core.Output<java.lang.Boolean>multiAz()com.pulumi.core.Output<java.lang.String>networkType()com.pulumi.core.Output<java.lang.String>preferredMaintenanceWindow()com.pulumi.core.Output<java.lang.Boolean>publiclyAccessible()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>replicationInstanceArn()com.pulumi.core.Output<java.lang.String>replicationInstanceClass()com.pulumi.core.Output<java.lang.String>replicationInstanceId()com.pulumi.core.Output<java.util.List<java.lang.String>>replicationInstancePrivateIps()com.pulumi.core.Output<java.util.List<java.lang.String>>replicationInstancePublicIps()com.pulumi.core.Output<java.lang.String>replicationSubnetGroupId()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.List<java.lang.String>>vpcSecurityGroupIds()
-
-
-
Constructor Detail
-
ReplicationInstance
public ReplicationInstance(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
ReplicationInstance
public ReplicationInstance(java.lang.String name, ReplicationInstanceArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
ReplicationInstance
public ReplicationInstance(java.lang.String name, ReplicationInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
allocatedStorage
public com.pulumi.core.Output<java.lang.Integer> allocatedStorage()
- Returns:
- The amount of storage (in gigabytes) to be initially allocated for the replication instance.
-
allowMajorVersionUpgrade
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> allowMajorVersionUpgrade()
- Returns:
- Indicates that major version upgrades are allowed.
-
applyImmediately
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> applyImmediately()
- Returns:
- Indicates whether the changes should be applied immediately or during the next maintenance window. Only used when updating an existing resource.
-
autoMinorVersionUpgrade
public com.pulumi.core.Output<java.lang.Boolean> autoMinorVersionUpgrade()
- Returns:
- Indicates that minor engine upgrades will be applied automatically to the replication instance during the maintenance window.
-
availabilityZone
public com.pulumi.core.Output<java.lang.String> availabilityZone()
- Returns:
- The EC2 Availability Zone that the replication instance will be created in.
-
dnsNameServers
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> dnsNameServers()
- Returns:
- 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.
-
engineVersion
public com.pulumi.core.Output<java.lang.String> engineVersion()
- Returns:
- The engine version number of the replication instance.
-
kerberosAuthenticationSettings
public com.pulumi.core.Output<java.util.Optional<ReplicationInstanceKerberosAuthenticationSettings>> kerberosAuthenticationSettings()
- Returns:
- Configuration block for settings required for Kerberos authentication. See below.
-
kmsKeyArn
public com.pulumi.core.Output<java.lang.String> kmsKeyArn()
- Returns:
- ARN for the KMS key that will be used to encrypt the connection parameters. If you do not specify a value for `kmsKeyArn`, then AWS DMS will use your default encryption key. AWS KMS creates the default encryption key for your AWS account. Your AWS account has a different default encryption key for each AWS region.
-
multiAz
public com.pulumi.core.Output<java.lang.Boolean> multiAz()
- Returns:
- Specifies if the replication instance is a multi-az deployment. You cannot set the `availabilityZone` parameter if the `multiAz` parameter is set to `true`.
-
networkType
public com.pulumi.core.Output<java.lang.String> networkType()
- Returns:
- The type of IP address protocol used by a replication instance. Valid values: `IPV4`, `DUAL`.
-
preferredMaintenanceWindow
public com.pulumi.core.Output<java.lang.String> preferredMaintenanceWindow()
- Returns:
- The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).
-
publiclyAccessible
public com.pulumi.core.Output<java.lang.Boolean> publiclyAccessible()
- Returns:
- Specifies the accessibility options for the replication instance. A value of true represents an instance with a public IP address. A value of false represents an instance with a private IP address.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
replicationInstanceArn
public com.pulumi.core.Output<java.lang.String> replicationInstanceArn()
- Returns:
- ARN of the replication instance.
-
replicationInstanceClass
public com.pulumi.core.Output<java.lang.String> replicationInstanceClass()
- Returns:
- The compute and memory capacity of the replication instance as specified by the replication instance class. See [AWS DMS User Guide](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html) for available instance sizes and advice on which one to choose.
-
replicationInstanceId
public com.pulumi.core.Output<java.lang.String> replicationInstanceId()
- Returns:
- The replication instance identifier. This parameter is stored as a lowercase string.
-
replicationInstancePrivateIps
public com.pulumi.core.Output<java.util.List<java.lang.String>> replicationInstancePrivateIps()
- Returns:
- A list of the private IP addresses of the replication instance.
-
replicationInstancePublicIps
public com.pulumi.core.Output<java.util.List<java.lang.String>> replicationInstancePublicIps()
- Returns:
- A list of the public IP addresses of the replication instance.
-
replicationSubnetGroupId
public com.pulumi.core.Output<java.lang.String> replicationSubnetGroupId()
- Returns:
- A subnet group to associate with the replication instance.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
vpcSecurityGroupIds
public com.pulumi.core.Output<java.util.List<java.lang.String>> vpcSecurityGroupIds()
- Returns:
- A list of VPC security group IDs to be used with the replication instance. The VPC security groups must work with the VPC containing the replication instance.
-
get
public static ReplicationInstance get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ReplicationInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-