import * as core from "@terrascript/core"; export interface EndpointArgs extends core.SchemaArgs { address: string | core.StringOut; port: number | core.NumberOut; } export class Endpoint extends core.Schema { @core.attr(String, { computed: true }) public address!: string | core.StringOut; @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; } export interface NodesArgs extends core.SchemaArgs { availabilityZone: string | core.StringOut; createTime: string | core.StringOut; endpoint: core.Array | core.ArrayOut; name: string | core.StringOut; } export class Nodes extends core.Schema { @core.attr(String, { computed: true }) public availabilityZone!: string | core.StringOut; @core.attr(String, { computed: true }) public createTime!: string | core.StringOut; @core.attr(Endpoint, { computed: true, kind: "array" }) public endpoint!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; } export interface ShardsArgs extends core.SchemaArgs { name: string | core.StringOut; nodes: core.Array | core.ArrayOut; numNodes: number | core.NumberOut; slots: string | core.StringOut; } export class Shards extends core.Schema { @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(Nodes, { computed: true, kind: "array" }) public nodes!: core.Array | core.ArrayOut; @core.attr(Number, { computed: true }) public numNodes!: number | core.NumberOut; @core.attr(String, { computed: true }) public slots!: string | core.StringOut; } export interface ClusterEndpointArgs extends core.SchemaArgs { address: string | core.StringOut; port: number | core.NumberOut; } export class ClusterEndpoint extends core.Schema { @core.attr(String, { computed: true }) public address!: string | core.StringOut; @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; } export interface DsClusterArgs { /** * (Required) Name of the cluster. */ name: string | core.StringOut; /** * A map of tags assigned to the cluster. */ tags?: core.Map | core.MapOut; } export class DsCluster extends core.Data { /** * The name of the Access Control List associated with the cluster. */ @core.attr(String, { computed: true }) public aclName!: string | core.StringOut; /** * The ARN of the cluster. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * True when the cluster allows automatic minor version upgrades. */ @core.attr(Boolean, { computed: true }) public autoMinorVersionUpgrade!: boolean | core.BooleanOut; @core.attr(ClusterEndpoint, { computed: true, kind: "array" }) public clusterEndpoint!: | core.Array | core.ArrayOut; /** * Description for the cluster. */ @core.attr(String, { computed: true }) public description!: string | core.StringOut; /** * Patch version number of the Redis engine used by the cluster. */ @core.attr(String, { computed: true }) public enginePatchVersion!: string | core.StringOut; /** * Version number of the Redis engine used by the cluster. */ @core.attr(String, { computed: true }) public engineVersion!: string | core.StringOut; /** * Name of the final cluster snapshot to be created when this resource is deleted. If omitted, no final * snapshot will be made. */ @core.attr(String, { computed: true }) public finalSnapshotName!: string | core.StringOut; /** * Same as `name`. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * ARN of the KMS key used to encrypt the cluster at rest. */ @core.attr(String, { computed: true }) public kmsKeyArn!: string | core.StringOut; /** * The weekly time range during which maintenance on the cluster is performed. Specify as a range in th * e format `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). Example: `sun:23:00-mon:01:30`. */ @core.attr(String, { computed: true }) public maintenanceWindow!: string | core.StringOut; /** * (Required) Name of the cluster. */ @core.attr(String) public name!: string | core.StringOut; /** * The compute and memory capacity of the nodes in the cluster. */ @core.attr(String, { computed: true }) public nodeType!: string | core.StringOut; /** * The number of replicas to apply to each shard. */ @core.attr(Number, { computed: true }) public numReplicasPerShard!: number | core.NumberOut; /** * The number of shards in the cluster. */ @core.attr(Number, { computed: true }) public numShards!: number | core.NumberOut; /** * The name of the parameter group associated with the cluster. */ @core.attr(String, { computed: true }) public parameterGroupName!: string | core.StringOut; /** * Port number that the cluster configuration endpoint is listening on. */ @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; /** * Set of VPC Security Group ID-s associated with this cluster. */ @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; /** * Set of shards in this cluster. */ @core.attr(Shards, { computed: true, kind: "array" }) public shards!: core.Array | core.ArrayOut; /** * The number of days for which MemoryDB retains automatic snapshots before deleting them. When set to * 0`, automatic backups are disabled. */ @core.attr(Number, { computed: true }) public snapshotRetentionLimit!: number | core.NumberOut; /** * The daily time range (in UTC) during which MemoryDB begins taking a daily snapshot of your shard. Ex * ample: `05:00-09:00`. */ @core.attr(String, { computed: true }) public snapshotWindow!: string | core.StringOut; /** * ARN of the SNS topic to which cluster notifications are sent. */ @core.attr(String, { computed: true }) public snsTopicArn!: string | core.StringOut; @core.attr(String, { computed: true }) public subnetGroupName!: string | core.StringOut; /** * A map of tags assigned to the cluster. */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; /** * When true, in-transit encryption is enabled for the cluster. */ @core.attr(Boolean, { computed: true }) public tlsEnabled!: boolean | core.BooleanOut; constructor(name: string, args?: DsClusterArgs) { super(name, "aws_memorydb_cluster", args); } public override getNamespace(): string { return "aws_memorydb"; } }