import * as core from "@terrascript/core"; export interface ReplicationInstanceArgs extends core.ResourceArgs { /** * (Optional, Default: 50, Min: 5, Max: 6144) The amount of storage (in gigabytes) to be initially allo * cated for the replication instance. */ allocatedStorage?: number | core.NumberOut; /** * (Optional, Default: false) Indicates that major version upgrades are allowed. */ allowMajorVersionUpgrade?: boolean | core.BooleanOut; /** * (Optional, Default: false) Indicates whether the changes should be applied immediately or during the * next maintenance window. Only used when updating an existing resource. */ applyImmediately?: boolean | core.BooleanOut; /** * (Optional, Default: false) Indicates that minor engine upgrades will be applied automatically to the * replication instance during the maintenance window. */ autoMinorVersionUpgrade?: boolean | core.BooleanOut; /** * (Optional) The EC2 Availability Zone that the replication instance will be created in. */ availabilityZone?: string | core.StringOut; /** * (Optional) The engine version number of the replication instance. */ engineVersion?: string | core.StringOut; /** * (Optional) The Amazon Resource Name (ARN) for the KMS key that will be used to encrypt the connectio * n parameters. If you do not specify a value for `kms_key_arn`, then AWS DMS will use your default en * cryption 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. */ kmsKeyArn?: string | core.StringOut; /** * (Optional) Specifies if the replication instance is a multi-az deployment. You cannot set the `avail * ability_zone` parameter if the `multi_az` parameter is set to `true`. */ multiAz?: boolean | core.BooleanOut; /** * (Optional) The weekly time range during which system maintenance can occur, in Universal Coordinated * Time (UTC). */ preferredMaintenanceWindow?: string | core.StringOut; /** * (Optional, Default: false) 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 wi * th a private IP address. */ publiclyAccessible?: boolean | core.BooleanOut; /** * (Required) The compute and memory capacity of the replication instance as specified by the replicati * on instance class. See [AWS DMS User Guide](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Re * plicationInstance.Types.html) for available instance sizes and advice on which one to choose. */ replicationInstanceClass: string | core.StringOut; /** * (Required) The replication instance identifier. This parameter is stored as a lowercase string. */ replicationInstanceId: string | core.StringOut; /** * (Optional) A subnet group to associate with the replication instance. */ replicationSubnetGroupId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) A list of VPC security group IDs to be used with the replication instance. The VPC securi * ty groups must work with the VPC containing the replication instance. */ vpcSecurityGroupIds?: core.Array | core.ArrayOut; } export class ReplicationInstance extends core.Resource { /** * (Optional, Default: 50, Min: 5, Max: 6144) The amount of storage (in gigabytes) to be initially allo * cated for the replication instance. */ @core.attr(Number, { computed: true }) public allocatedStorage?: number | core.NumberOut; /** * (Optional, Default: false) Indicates that major version upgrades are allowed. */ @core.attr(Boolean) public allowMajorVersionUpgrade?: boolean | core.BooleanOut; /** * (Optional, Default: false) Indicates whether the changes should be applied immediately or during the * next maintenance window. Only used when updating an existing resource. */ @core.attr(Boolean) public applyImmediately?: boolean | core.BooleanOut; /** * (Optional, Default: false) Indicates that minor engine upgrades will be applied automatically to the * replication instance during the maintenance window. */ @core.attr(Boolean, { computed: true }) public autoMinorVersionUpgrade?: boolean | core.BooleanOut; /** * (Optional) The EC2 Availability Zone that the replication instance will be created in. */ @core.attr(String, { computed: true }) public availabilityZone?: string | core.StringOut; /** * (Optional) The engine version number of the replication instance. */ @core.attr(String, { computed: true }) public engineVersion?: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The Amazon Resource Name (ARN) for the KMS key that will be used to encrypt the connectio * n parameters. If you do not specify a value for `kms_key_arn`, then AWS DMS will use your default en * cryption 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. */ @core.attr(String, { computed: true }) public kmsKeyArn?: string | core.StringOut; /** * (Optional) Specifies if the replication instance is a multi-az deployment. You cannot set the `avail * ability_zone` parameter if the `multi_az` parameter is set to `true`. */ @core.attr(Boolean, { computed: true }) public multiAz?: boolean | core.BooleanOut; /** * (Optional) The weekly time range during which system maintenance can occur, in Universal Coordinated * Time (UTC). */ @core.attr(String, { computed: true }) public preferredMaintenanceWindow?: string | core.StringOut; /** * (Optional, Default: false) 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 wi * th a private IP address. */ @core.attr(Boolean, { computed: true }) public publiclyAccessible?: boolean | core.BooleanOut; /** * The Amazon Resource Name (ARN) of the replication instance. */ @core.attr(String, { computed: true }) public replicationInstanceArn!: string | core.StringOut; /** * (Required) The compute and memory capacity of the replication instance as specified by the replicati * on instance class. See [AWS DMS User Guide](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Re * plicationInstance.Types.html) for available instance sizes and advice on which one to choose. */ @core.attr(String) public replicationInstanceClass!: string | core.StringOut; /** * (Required) The replication instance identifier. This parameter is stored as a lowercase string. */ @core.attr(String) public replicationInstanceId!: string | core.StringOut; /** * A list of the private IP addresses of the replication instance. */ @core.attr(String, { computed: true, kind: "array" }) public replicationInstancePrivateIps!: | core.Array | core.ArrayOut; /** * A list of the public IP addresses of the replication instance. */ @core.attr(String, { computed: true, kind: "array" }) public replicationInstancePublicIps!: | core.Array | core.ArrayOut; /** * (Optional) A subnet group to associate with the replication instance. */ @core.attr(String, { computed: true }) public replicationSubnetGroupId?: string | core.StringOut; /** * (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` co * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co * nfiguration-block) present, tags with matching keys will overwrite those defined at the provider-lev * el. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) A list of VPC security group IDs to be used with the replication instance. The VPC securi * ty groups must work with the VPC containing the replication instance. */ @core.attr(String, { computed: true, kind: "array" }) public vpcSecurityGroupIds?: | core.Array | core.ArrayOut; constructor(name: string, args?: ReplicationInstanceArgs) { super(name, "aws_dms_replication_instance", args); } public override getNamespace(): string { return "aws_dms"; } }