import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface RedisInstanceConfig extends cdktf.TerraformMetaArguments { /** * Auto-renew flag. 0 - default state (manual renewal); 1 - automatic renewal; 2 - explicit no automatic renewal. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#auto_renew_flag RedisInstance#auto_renew_flag} */ readonly autoRenewFlag?: number; /** * The available zone of an instance to be created, like `ap-beijing-7`, please refer to `tencentcloud_redis_zone_config.list`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#availability_zone RedisInstance#availability_zone} */ readonly availabilityZone: string; /** * The charge type of instance. Valid values: `PREPAID` and `POSTPAID`. Default value is `POSTPAID`. Note: TencentCloud International only supports `POSTPAID`. Caution that update operation on this field will delete old instances and create new with new charge type. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#charge_type RedisInstance#charge_type} */ readonly chargeType?: string; /** * Indicate whether to delete Redis instance directly or not. Default is false. If set true, the instance will be deleted instead of staying recycle bin. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#force_delete RedisInstance#force_delete} */ readonly forceDelete?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#id RedisInstance#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * IP address of an instance. When the `operation_network` is `changeVip`, this parameter needs to be configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#ip RedisInstance#ip} */ readonly ip?: string; /** * The memory volume of an available instance(in MB), please refer to `tencentcloud_redis_zone_config.list[zone].shard_memories`. When redis is standard type, it represents total memory size of the instance; when Redis is cluster type, it represents memory size of per sharding. `512MB` is supported only in master-slave instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#mem_size RedisInstance#mem_size} */ readonly memSize: number; /** * Instance name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#name RedisInstance#name} */ readonly name?: string; /** * Indicates whether the redis instance support no-auth access. NOTE: Only available in private cloud environment. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#no_auth RedisInstance#no_auth} */ readonly noAuth?: boolean | cdktf.IResolvable; /** * Refers to the category of the pre-modified network, including: `changeVip`: refers to switching the private network, including its intranet IPv4 address and port; `changeVpc`: refers to switching the subnet to which the private network belongs; `changeBaseToVpc`: refers to switching the basic network to a private network; `changeVPort`: refers to only modifying the instance network port. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#operation_network RedisInstance#operation_network} */ readonly operationNetwork?: string; /** * Specify params template id. If not set, will use default template. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#params_template_id RedisInstance#params_template_id} */ readonly paramsTemplateId?: string; /** * Password for a Redis user, which should be 8 to 16 characters. NOTE: Only `no_auth=true` specified can make password empty. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#password RedisInstance#password} */ readonly password?: string; /** * The port used to access a redis instance. The default value is 6379. When the `operation_network` is `changeVPort` or `changeVip`, this parameter needs to be configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#port RedisInstance#port} */ readonly port?: number; /** * The tenancy (time unit is month) of the prepaid instance, NOTE: it only works when charge_type is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#prepaid_period RedisInstance#prepaid_period} */ readonly prepaidPeriod?: number; /** * Specify the product version of the instance. `local`: Local disk version, `cloud`: Cloud disk version, `cdc`: Exclusive cluster version. Default is `local`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#product_version RedisInstance#product_version} */ readonly productVersion?: string; /** * Specifies which project the instance should belong to. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#project_id RedisInstance#project_id} */ readonly projectId?: number; /** * Original intranet IPv4 address retention time: unit: day, value range: `0`, `1`, `2`, `3`, `7`, `15`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#recycle RedisInstance#recycle} */ readonly recycle?: number; /** * Exclusive cluster ID. When the `product_version` is set to `cdc`, this parameter must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#redis_cluster_id RedisInstance#redis_cluster_id} */ readonly redisClusterId?: string; /** * The number of instance copies. This is not required for standalone and master slave versions and must equal to count of `replica_zone_ids`, Non-multi-AZ does not require `replica_zone_ids`; Redis memory version 4.0, 5.0, 6.2 standard architecture and cluster architecture support the number of copies in the range [1, 2, 3, 4, 5]; Redis 2.8 standard version and CKV standard version only support 1 copy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#redis_replicas_num RedisInstance#redis_replicas_num} */ readonly redisReplicasNum?: number; /** * The number of instance shards; this parameter does not need to be configured for standard version instances; for cluster version instances, the number of shards ranges from: [`1`, `3`, `5`, `8`, `12`, `16`, `24 `, `32`, `40`, `48`, `64`, `80`, `96`, `128`]. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#redis_shard_num RedisInstance#redis_shard_num} */ readonly redisShardNum?: number; /** * ID of replica nodes available zone. This is not required for standalone and master slave versions. NOTE: Removing some of the same zone of replicas (e.g. removing 100001 of [100001, 100001, 100002]) will pick the first hit to remove. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#replica_zone_ids RedisInstance#replica_zone_ids} */ readonly replicaZoneIds?: number[]; /** * Whether copy read-only is supported, Redis 2.8 Standard Edition and CKV Standard Edition do not support replica read-only, turn on replica read-only, the instance will automatically read and write separate, write requests are routed to the primary node, read requests are routed to the replica node, if you need to open replica read-only, the recommended number of replicas >=2. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#replicas_read_only RedisInstance#replicas_read_only} */ readonly replicasReadOnly?: boolean | cdktf.IResolvable; /** * ID of security group. If both vpc_id and subnet_id are not set, this argument should not be set either. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#security_groups RedisInstance#security_groups} */ readonly securityGroups?: string[]; /** * Specifies which subnet the instance should belong to. When the `operation_network` is `changeVpc` or `changeBaseToVpc`, this parameter needs to be configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#subnet_id RedisInstance#subnet_id} */ readonly subnetId?: string; /** * Instance tags. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#tags RedisInstance#tags} */ readonly tags?: { [key: string]: string; }; /** * Instance type. Available values: `cluster_ckv`,`cluster_redis5.0`,`cluster_redis`,`master_slave_ckv`,`master_slave_redis4.0`,`master_slave_redis5.0`,`master_slave_redis`,`standalone_redis`, specific region support specific types, need to refer data `tencentcloud_redis_zone_config`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#type RedisInstance#type} */ readonly type?: string; /** * Instance type. Available values reference data source `tencentcloud_redis_zone_config` or [document](https://intl.cloud.tencent.com/document/product/239/32069), toggle immediately when modified.. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#type_id RedisInstance#type_id} */ readonly typeId?: number; /** * ID of the vpc with which the instance is to be associated. When the `operation_network` is `changeVpc` or `changeBaseToVpc`, this parameter needs to be configured. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#vpc_id RedisInstance#vpc_id} */ readonly vpcId?: string; /** * Switching mode: `1`-maintenance time window switching, `2`-immediate switching, default value `2`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#wait_switch RedisInstance#wait_switch} */ readonly waitSwitch?: number; /** * Wan address switch, default `close`, values: `open`, `close`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#wan_address_switch RedisInstance#wan_address_switch} */ readonly wanAddressSwitch?: string; } export interface RedisInstanceNodeInfo { } export declare function redisInstanceNodeInfoToTerraform(struct?: RedisInstanceNodeInfo): any; export declare function redisInstanceNodeInfoToHclTerraform(struct?: RedisInstanceNodeInfo): any; export declare class RedisInstanceNodeInfoOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): RedisInstanceNodeInfo | undefined; set internalValue(value: RedisInstanceNodeInfo | undefined); get id(): any; get master(): any; get zoneId(): any; } export declare class RedisInstanceNodeInfoList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): RedisInstanceNodeInfoOutputReference; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance tencentcloud_redis_instance} */ export declare class RedisInstance extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_redis_instance"; /** * Generates CDKTF code for importing a RedisInstance resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the RedisInstance to import * @param importFromId The id of the existing RedisInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the RedisInstance to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/redis_instance tencentcloud_redis_instance} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options RedisInstanceConfig */ constructor(scope: Construct, id: string, config: RedisInstanceConfig); private _autoRenewFlag?; get autoRenewFlag(): number; set autoRenewFlag(value: number); resetAutoRenewFlag(): void; get autoRenewFlagInput(): number; private _availabilityZone?; get availabilityZone(): string; set availabilityZone(value: string); get availabilityZoneInput(): string; private _chargeType?; get chargeType(): string; set chargeType(value: string); resetChargeType(): void; get chargeTypeInput(): string; get createTime(): any; get dedicatedClusterId(): any; private _forceDelete?; get forceDelete(): boolean | cdktf.IResolvable; set forceDelete(value: boolean | cdktf.IResolvable); resetForceDelete(): void; get forceDeleteInput(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _ip?; get ip(): string; set ip(value: string); resetIp(): void; get ipInput(): string; private _memSize?; get memSize(): number; set memSize(value: number); get memSizeInput(): number; private _name?; get name(): string; set name(value: string); resetName(): void; get nameInput(): string; private _noAuth?; get noAuth(): boolean | cdktf.IResolvable; set noAuth(value: boolean | cdktf.IResolvable); resetNoAuth(): void; get noAuthInput(): any; private _nodeInfo; get nodeInfo(): RedisInstanceNodeInfoList; private _operationNetwork?; get operationNetwork(): string; set operationNetwork(value: string); resetOperationNetwork(): void; get operationNetworkInput(): string; private _paramsTemplateId?; get paramsTemplateId(): string; set paramsTemplateId(value: string); resetParamsTemplateId(): void; get paramsTemplateIdInput(): string; private _password?; get password(): string; set password(value: string); resetPassword(): void; get passwordInput(): string; private _port?; get port(): number; set port(value: number); resetPort(): void; get portInput(): number; private _prepaidPeriod?; get prepaidPeriod(): number; set prepaidPeriod(value: number); resetPrepaidPeriod(): void; get prepaidPeriodInput(): number; private _productVersion?; get productVersion(): string; set productVersion(value: string); resetProductVersion(): void; get productVersionInput(): string; private _projectId?; get projectId(): number; set projectId(value: number); resetProjectId(): void; get projectIdInput(): number; private _recycle?; get recycle(): number; set recycle(value: number); resetRecycle(): void; get recycleInput(): number; private _redisClusterId?; get redisClusterId(): string; set redisClusterId(value: string); resetRedisClusterId(): void; get redisClusterIdInput(): string; private _redisReplicasNum?; get redisReplicasNum(): number; set redisReplicasNum(value: number); resetRedisReplicasNum(): void; get redisReplicasNumInput(): number; private _redisShardNum?; get redisShardNum(): number; set redisShardNum(value: number); resetRedisShardNum(): void; get redisShardNumInput(): number; private _replicaZoneIds?; get replicaZoneIds(): number[]; set replicaZoneIds(value: number[]); resetReplicaZoneIds(): void; get replicaZoneIdsInput(): number[]; private _replicasReadOnly?; get replicasReadOnly(): boolean | cdktf.IResolvable; set replicasReadOnly(value: boolean | cdktf.IResolvable); resetReplicasReadOnly(): void; get replicasReadOnlyInput(): any; private _securityGroups?; get securityGroups(): string[]; set securityGroups(value: string[]); resetSecurityGroups(): void; get securityGroupsInput(): string[]; get status(): any; private _subnetId?; get subnetId(): string; set subnetId(value: string); resetSubnetId(): void; get subnetIdInput(): string; private _tags?; get tags(): { [key: string]: string; }; set tags(value: { [key: string]: string; }); resetTags(): void; get tagsInput(): { [key: string]: string; }; private _type?; get type(): string; set type(value: string); resetType(): void; get typeInput(): string; private _typeId?; get typeId(): number; set typeId(value: number); resetTypeId(): void; get typeIdInput(): number; private _vpcId?; get vpcId(): string; set vpcId(value: string); resetVpcId(): void; get vpcIdInput(): string; private _waitSwitch?; get waitSwitch(): number; set waitSwitch(value: number); resetWaitSwitch(): void; get waitSwitchInput(): number; get wanAddress(): any; private _wanAddressSwitch?; get wanAddressSwitch(): string; set wanAddressSwitch(value: string); resetWanAddressSwitch(): void; get wanAddressSwitchInput(): string; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }