import * as core from "@terrascript/core"; export interface CacheNodesArgs extends core.SchemaArgs { address: string | core.StringOut; availabilityZone: string | core.StringOut; id: string | core.StringOut; port: number | core.NumberOut; } export class CacheNodes extends core.Schema { @core.attr(String, { computed: true }) public address!: string | core.StringOut; @core.attr(String, { computed: true }) public availabilityZone!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; } export interface LogDeliveryConfigurationArgs extends core.SchemaArgs { destination: string | core.StringOut; destinationType: string | core.StringOut; logFormat: string | core.StringOut; logType: string | core.StringOut; } export class LogDeliveryConfiguration extends core.Schema { @core.attr(String, { computed: true }) public destination!: string | core.StringOut; @core.attr(String, { computed: true }) public destinationType!: string | core.StringOut; @core.attr(String, { computed: true }) public logFormat!: string | core.StringOut; @core.attr(String, { computed: true }) public logType!: string | core.StringOut; } export interface DsClusterArgs { clusterId: string | core.StringOut; /** * The tags assigned to the resource */ tags?: core.Map | core.MapOut; } export class DsCluster extends core.Data { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * The Availability Zone for the cache cluster. */ @core.attr(String, { computed: true }) public availabilityZone!: string | core.StringOut; /** * List of node objects including `id`, `address`, `port` and `availability_zone`. */ @core.attr(CacheNodes, { computed: true, kind: "array" }) public cacheNodes!: core.Array | core.ArrayOut; /** * (Memcached only) The DNS name of the cache cluster without the port appended. */ @core.attr(String, { computed: true }) public clusterAddress!: string | core.StringOut; @core.attr(String) public clusterId!: string | core.StringOut; /** * (Memcached only) The configuration endpoint to allow host discovery. */ @core.attr(String, { computed: true }) public configurationEndpoint!: string | core.StringOut; @core.attr(String, { computed: true }) public engine!: string | core.StringOut; @core.attr(String, { computed: true }) public engineVersion!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * Redis [SLOWLOG](https://redis.io/commands/slowlog) or Redis [Engine Log](https://docs.aws.amazon.com * /AmazonElastiCache/latest/red-ug/Log_Delivery.html#Log_contents-engine-log) delivery settings. */ @core.attr(LogDeliveryConfiguration, { computed: true, kind: "array" }) public logDeliveryConfiguration!: | core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public maintenanceWindow!: string | core.StringOut; @core.attr(String, { computed: true }) public nodeType!: string | core.StringOut; @core.attr(String, { computed: true }) public notificationTopicArn!: string | core.StringOut; @core.attr(Number, { computed: true }) public numCacheNodes!: number | core.NumberOut; @core.attr(String, { computed: true }) public parameterGroupName!: string | core.StringOut; @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; /** * The replication group to which this cache cluster belongs. */ @core.attr(String, { computed: true }) public replicationGroupId!: string | core.StringOut; @core.attr(String, { computed: true, kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "array" }) public securityGroupNames!: | core.Array | core.ArrayOut; /** * The number of days for which ElastiCache will */ @core.attr(Number, { computed: true }) public snapshotRetentionLimit!: number | core.NumberOut; /** * The daily time range (in UTC) during which ElastiCache will */ @core.attr(String, { computed: true }) public snapshotWindow!: string | core.StringOut; @core.attr(String, { computed: true }) public subnetGroupName!: string | core.StringOut; /** * The tags assigned to the resource */ @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; constructor(name: string, args?: DsClusterArgs) { super(name, "aws_elasticache_cluster", args); } public override getNamespace(): string { return "aws_elasticache"; } }