UNPKG

@pulumi/aws

Version:

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

184 lines • 9.53 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.ReplicationInstance = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../utilities"); /** * Provides 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. * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * // 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 * const dmsAssumeRole = aws.iam.getPolicyDocument({ * statements: [{ * actions: ["sts:AssumeRole"], * principals: [{ * identifiers: ["dms.amazonaws.com"], * type: "Service", * }], * }], * }); * const dms_access_for_endpoint = new aws.iam.Role("dms-access-for-endpoint", { * assumeRolePolicy: dmsAssumeRole.then(dmsAssumeRole => dmsAssumeRole.json), * name: "dms-access-for-endpoint", * }); * const dms_access_for_endpoint_AmazonDMSRedshiftS3Role = new aws.iam.RolePolicyAttachment("dms-access-for-endpoint-AmazonDMSRedshiftS3Role", { * policyArn: "arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role", * role: dms_access_for_endpoint.name, * }); * const dms_cloudwatch_logs_role = new aws.iam.Role("dms-cloudwatch-logs-role", { * assumeRolePolicy: dmsAssumeRole.then(dmsAssumeRole => dmsAssumeRole.json), * name: "dms-cloudwatch-logs-role", * }); * const dms_cloudwatch_logs_role_AmazonDMSCloudWatchLogsRole = new aws.iam.RolePolicyAttachment("dms-cloudwatch-logs-role-AmazonDMSCloudWatchLogsRole", { * policyArn: "arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole", * role: dms_cloudwatch_logs_role.name, * }); * const dms_vpc_role = new aws.iam.Role("dms-vpc-role", { * assumeRolePolicy: dmsAssumeRole.then(dmsAssumeRole => dmsAssumeRole.json), * name: "dms-vpc-role", * }); * const dms_vpc_role_AmazonDMSVPCManagementRole = new aws.iam.RolePolicyAttachment("dms-vpc-role-AmazonDMSVPCManagementRole", { * policyArn: "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole", * role: dms_vpc_role.name, * }); * // Create a new replication instance * const test = new aws.dms.ReplicationInstance("test", { * 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: { * Name: "test", * }, * vpcSecurityGroupIds: ["sg-12345678"], * }, { * dependsOn: [ * dms_access_for_endpoint_AmazonDMSRedshiftS3Role, * dms_cloudwatch_logs_role_AmazonDMSCloudWatchLogsRole, * dms_vpc_role_AmazonDMSVPCManagementRole, * ], * }); * ``` * * ## Import * * Using `pulumi import`, import replication instances using the `replication_instance_id`. For example: * * ```sh * $ pulumi import aws:dms/replicationInstance:ReplicationInstance test test-dms-replication-instance-tf * ``` */ class ReplicationInstance extends pulumi.CustomResource { /** * Get an existing ReplicationInstance resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name, id, state, opts) { return new ReplicationInstance(name, state, { ...opts, id: id }); } /** * Returns true if the given object is an instance of ReplicationInstance. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === ReplicationInstance.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["allocatedStorage"] = state?.allocatedStorage; resourceInputs["allowMajorVersionUpgrade"] = state?.allowMajorVersionUpgrade; resourceInputs["applyImmediately"] = state?.applyImmediately; resourceInputs["autoMinorVersionUpgrade"] = state?.autoMinorVersionUpgrade; resourceInputs["availabilityZone"] = state?.availabilityZone; resourceInputs["dnsNameServers"] = state?.dnsNameServers; resourceInputs["engineVersion"] = state?.engineVersion; resourceInputs["kerberosAuthenticationSettings"] = state?.kerberosAuthenticationSettings; resourceInputs["kmsKeyArn"] = state?.kmsKeyArn; resourceInputs["multiAz"] = state?.multiAz; resourceInputs["networkType"] = state?.networkType; resourceInputs["preferredMaintenanceWindow"] = state?.preferredMaintenanceWindow; resourceInputs["publiclyAccessible"] = state?.publiclyAccessible; resourceInputs["region"] = state?.region; resourceInputs["replicationInstanceArn"] = state?.replicationInstanceArn; resourceInputs["replicationInstanceClass"] = state?.replicationInstanceClass; resourceInputs["replicationInstanceId"] = state?.replicationInstanceId; resourceInputs["replicationInstancePrivateIps"] = state?.replicationInstancePrivateIps; resourceInputs["replicationInstancePublicIps"] = state?.replicationInstancePublicIps; resourceInputs["replicationSubnetGroupId"] = state?.replicationSubnetGroupId; resourceInputs["tags"] = state?.tags; resourceInputs["tagsAll"] = state?.tagsAll; resourceInputs["vpcSecurityGroupIds"] = state?.vpcSecurityGroupIds; } else { const args = argsOrState; if (args?.replicationInstanceClass === undefined && !opts.urn) { throw new Error("Missing required property 'replicationInstanceClass'"); } if (args?.replicationInstanceId === undefined && !opts.urn) { throw new Error("Missing required property 'replicationInstanceId'"); } resourceInputs["allocatedStorage"] = args?.allocatedStorage; resourceInputs["allowMajorVersionUpgrade"] = args?.allowMajorVersionUpgrade; resourceInputs["applyImmediately"] = args?.applyImmediately; resourceInputs["autoMinorVersionUpgrade"] = args?.autoMinorVersionUpgrade; resourceInputs["availabilityZone"] = args?.availabilityZone; resourceInputs["dnsNameServers"] = args?.dnsNameServers; resourceInputs["engineVersion"] = args?.engineVersion; resourceInputs["kerberosAuthenticationSettings"] = args?.kerberosAuthenticationSettings; resourceInputs["kmsKeyArn"] = args?.kmsKeyArn; resourceInputs["multiAz"] = args?.multiAz; resourceInputs["networkType"] = args?.networkType; resourceInputs["preferredMaintenanceWindow"] = args?.preferredMaintenanceWindow; resourceInputs["publiclyAccessible"] = args?.publiclyAccessible; resourceInputs["region"] = args?.region; resourceInputs["replicationInstanceClass"] = args?.replicationInstanceClass; resourceInputs["replicationInstanceId"] = args?.replicationInstanceId; resourceInputs["replicationSubnetGroupId"] = args?.replicationSubnetGroupId; resourceInputs["tags"] = args?.tags; resourceInputs["vpcSecurityGroupIds"] = args?.vpcSecurityGroupIds; resourceInputs["replicationInstanceArn"] = undefined /*out*/; resourceInputs["replicationInstancePrivateIps"] = undefined /*out*/; resourceInputs["replicationInstancePublicIps"] = undefined /*out*/; resourceInputs["tagsAll"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(ReplicationInstance.__pulumiType, name, resourceInputs, opts); } } exports.ReplicationInstance = ReplicationInstance; /** @internal */ ReplicationInstance.__pulumiType = 'aws:dms/replicationInstance:ReplicationInstance'; //# sourceMappingURL=replicationInstance.js.map