import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface MongodbInstanceConfig extends cdktf.TerraformMetaArguments { /** * Auto renew flag. Valid values are `0`(NOTIFY_AND_MANUAL_RENEW), `1`(NOTIFY_AND_AUTO_RENEW) and `2`(DISABLE_NOTIFY_AND_MANUAL_RENEW). Default value is `0`. Note: only works for PREPAID instance. Only supports`0` and `1` for creation. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#auto_renew_flag MongodbInstance#auto_renew_flag} */ readonly autoRenewFlag?: number; /** * If cloud database instances are deployed in multiple availability zones, specify a list of multiple availability zones. * - To deploy an instance with multiple availability zones, the parameter Zone specifies the primary availability zone information of the instance; Availability ZoneList specifies all availability zone information, including the primary availability zone. The input format is as follows: [ap-Guangzhou-2,ap-Guangzhou-3,ap-Guangzhou-4]. * - You can obtain availability zone information planned in different regions of the cloud database through the interface DescribeSpecInfo, so as to specify effective availability zones. * - Multiple availability zone deployment nodes can only be deployed in 3 different availability zones. Deploying most nodes of a cluster in the same availability zone is not supported. For example, a 3-node cluster does not support 2 nodes deployed in the same zone. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#availability_zone_list MongodbInstance#availability_zone_list} */ readonly availabilityZoneList?: string[]; /** * The available zone of the Mongodb. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#available_zone MongodbInstance#available_zone} */ readonly availableZone: string; /** * The charge type of instance. Valid values are `PREPAID` and `POSTPAID_BY_HOUR`. Default value is `POSTPAID_BY_HOUR`. Note: TencentCloud International only supports `POSTPAID_BY_HOUR`. Caution that update operation on this field will delete old instances and create new one with new charge type. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#charge_type MongodbInstance#charge_type} */ readonly chargeType?: string; /** * Refers to version information. The DescribeSpecInfo API can be called to obtain detailed information about the supported versions. * - MONGO_40_WT: version of the MongoDB 4.0 WiredTiger storage engine. * - MONGO_42_WT: version of the MongoDB 4.2 WiredTiger storage engine. * - MONGO_44_WT: version of the MongoDB 4.4 WiredTiger storage engine. * - MONGO_50_WT: version of the MongoDB 5.0 WiredTiger storage engine. * - MONGO_60_WT: version of the MongoDB 6.0 WiredTiger storage engine. * - MONGO_70_WT: version of the MongoDB 7.0 WiredTiger storage engine. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#engine_version MongodbInstance#engine_version} */ readonly engineVersion: string; /** * The availability zone to which the Hidden node belongs. This parameter is required in cross-AZ instance deployment. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#hidden_zone MongodbInstance#hidden_zone} */ readonly hiddenZone?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#id MongodbInstance#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; /** * Switch time for instance configuration changes. * - 0: When the adjustment is completed, perform the configuration task immediately. Default is 0. * - 1: Perform reconfiguration tasks within the maintenance time window. * Note: Adjusting the number of nodes and slices does not support changes within the maintenance window. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#in_maintenance MongodbInstance#in_maintenance} */ readonly inMaintenance?: number; /** * Name of the Mongodb instance. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#instance_name MongodbInstance#instance_name} */ readonly instanceName: string; /** * Type of Mongodb instance, and available values include `HIO`(or `GIO` which will be deprecated, represents high IO) and `HIO10G`(or `TGIO` which will be deprecated, represents 10-gigabit high IO). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#machine_type MongodbInstance#machine_type} */ readonly machineType: string; /** * Maintenance window end time. * - The value range is any full point or half point from `00:00-23:00`, and the maintenance time duration is at least 30 minutes and at most 3 hours. * - The end time must be based on the start time backwards. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#maintenance_end MongodbInstance#maintenance_end} */ readonly maintenanceEnd?: string; /** * Maintenance window start time. The value range is any full point or half point from `00:00-23:00`, such as 00:00 or 00:30. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#maintenance_start MongodbInstance#maintenance_start} */ readonly maintenanceStart?: string; /** * Memory size. The minimum value is 2, and unit is GB. Memory and volume must be upgraded or degraded simultaneously. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#memory MongodbInstance#memory} */ readonly memory: number; /** * The number of nodes in each replica set. Default value: 3. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#node_num MongodbInstance#node_num} */ readonly nodeNum?: number; /** * Password of this Mongodb account. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#password MongodbInstance#password} */ readonly password?: string; /** * The tenancy (time unit is month) of the prepaid instance. Valid values are 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36. NOTE: it only works when charge_type is set to `PREPAID`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#prepaid_period MongodbInstance#prepaid_period} */ readonly prepaidPeriod?: number; /** * ID of the project which the instance belongs. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#project_id MongodbInstance#project_id} */ readonly projectId?: number; /** * ID of the security group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#security_groups MongodbInstance#security_groups} */ readonly securityGroups?: string[]; /** * ID of the subnet within this VPC. The value is required if `vpc_id` is set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#subnet_id MongodbInstance#subnet_id} */ readonly subnetId?: string; /** * The tags of the Mongodb. Key name `project` is system reserved and can't be used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#tags MongodbInstance#tags} */ readonly tags?: { [key: string]: string; }; /** * Disk size. The minimum value is 25, and unit is GB. Memory and volume must be upgraded or degraded simultaneously. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#volume MongodbInstance#volume} */ readonly volume: number; /** * ID of the VPC. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#vpc_id MongodbInstance#vpc_id} */ readonly vpcId?: string; /** * add_node_list block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#add_node_list MongodbInstance#add_node_list} */ readonly addNodeList?: MongodbInstanceAddNodeListStruct[] | cdktf.IResolvable; /** * remove_node_list block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#remove_node_list MongodbInstance#remove_node_list} */ readonly removeNodeList?: MongodbInstanceRemoveNodeListStruct[] | cdktf.IResolvable; } export interface MongodbInstanceStandbyInstanceListStruct { } export declare function mongodbInstanceStandbyInstanceListStructToTerraform(struct?: MongodbInstanceStandbyInstanceListStruct): any; export declare function mongodbInstanceStandbyInstanceListStructToHclTerraform(struct?: MongodbInstanceStandbyInstanceListStruct): any; export declare class MongodbInstanceStandbyInstanceListStructOutputReference 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(): MongodbInstanceStandbyInstanceListStruct | undefined; set internalValue(value: MongodbInstanceStandbyInstanceListStruct | undefined); get standbyInstanceId(): any; get standbyInstanceRegion(): any; } export declare class MongodbInstanceStandbyInstanceListStructList 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): MongodbInstanceStandbyInstanceListStructOutputReference; } export interface MongodbInstanceAddNodeListStruct { /** * The node role that needs to be added. * - SECONDARY: Mongod node; * - READONLY: read-only node; * - MONGOS: Mongos node. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#role MongodbInstance#role} */ readonly role: string; /** * The availability zone corresponding to the node. * - single availability zone, where all nodes are in the same availability zone; * - multiple availability zones: the current standard specification is the distribution of three availability zones, and the master and slave nodes are not in the same availability zone. You should pay attention to configuring the availability zone corresponding to the new node, and the rule that the number of nodes in any two availability zones is greater than the third availability zone must be met after the addition. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#zone MongodbInstance#zone} */ readonly zone: string; } export declare function mongodbInstanceAddNodeListStructToTerraform(struct?: MongodbInstanceAddNodeListStruct | cdktf.IResolvable): any; export declare function mongodbInstanceAddNodeListStructToHclTerraform(struct?: MongodbInstanceAddNodeListStruct | cdktf.IResolvable): any; export declare class MongodbInstanceAddNodeListStructOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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(): MongodbInstanceAddNodeListStruct | cdktf.IResolvable | undefined; set internalValue(value: MongodbInstanceAddNodeListStruct | cdktf.IResolvable | undefined); private _role?; get role(): string; set role(value: string); get roleInput(): string; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; } export declare class MongodbInstanceAddNodeListStructList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: MongodbInstanceAddNodeListStruct[] | cdktf.IResolvable; /** * @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): MongodbInstanceAddNodeListStructOutputReference; } export interface MongodbInstanceRemoveNodeListStruct { /** * The node ID to delete. The shard cluster must specify the name of the node to be deleted by a group of shards, and the rest of the shards should be grouped and aligned. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#node_name MongodbInstance#node_name} */ readonly nodeName: string; /** * The node role that needs to be deleted. * - SECONDARY: Mongod node; * - READONLY: read-only node; * - MONGOS: Mongos node. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#role MongodbInstance#role} */ readonly role: string; /** * The availability zone corresponding to the node. * - single availability zone, where all nodes are in the same availability zone; * - multiple availability zones: the current standard specification is the distribution of three availability zones, and the master and slave nodes are not in the same availability zone. You should pay attention to configuring the availability zone corresponding to the new node, and the rule that the number of nodes in any two availability zones is greater than the third availability zone must be met after the addition. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#zone MongodbInstance#zone} */ readonly zone: string; } export declare function mongodbInstanceRemoveNodeListStructToTerraform(struct?: MongodbInstanceRemoveNodeListStruct | cdktf.IResolvable): any; export declare function mongodbInstanceRemoveNodeListStructToHclTerraform(struct?: MongodbInstanceRemoveNodeListStruct | cdktf.IResolvable): any; export declare class MongodbInstanceRemoveNodeListStructOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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(): MongodbInstanceRemoveNodeListStruct | cdktf.IResolvable | undefined; set internalValue(value: MongodbInstanceRemoveNodeListStruct | cdktf.IResolvable | undefined); private _nodeName?; get nodeName(): string; set nodeName(value: string); get nodeNameInput(): string; private _role?; get role(): string; set role(value: string); get roleInput(): string; private _zone?; get zone(): string; set zone(value: string); get zoneInput(): string; } export declare class MongodbInstanceRemoveNodeListStructList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: MongodbInstanceRemoveNodeListStruct[] | cdktf.IResolvable; /** * @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): MongodbInstanceRemoveNodeListStructOutputReference; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance tencentcloud_mongodb_instance} */ export declare class MongodbInstance extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_mongodb_instance"; /** * Generates CDKTF code for importing a MongodbInstance 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 MongodbInstance to import * @param importFromId The id of the existing MongodbInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mongodb_instance#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the MongodbInstance 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/mongodb_instance tencentcloud_mongodb_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 MongodbInstanceConfig */ constructor(scope: Construct, id: string, config: MongodbInstanceConfig); private _autoRenewFlag?; get autoRenewFlag(): number; set autoRenewFlag(value: number); resetAutoRenewFlag(): void; get autoRenewFlagInput(): number; private _availabilityZoneList?; get availabilityZoneList(): string[]; set availabilityZoneList(value: string[]); resetAvailabilityZoneList(): void; get availabilityZoneListInput(): string[]; private _availableZone?; get availableZone(): string; set availableZone(value: string); get availableZoneInput(): string; private _chargeType?; get chargeType(): string; set chargeType(value: string); resetChargeType(): void; get chargeTypeInput(): string; get createTime(): any; private _engineVersion?; get engineVersion(): string; set engineVersion(value: string); get engineVersionInput(): string; private _hiddenZone?; get hiddenZone(): string; set hiddenZone(value: string); resetHiddenZone(): void; get hiddenZoneInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _inMaintenance?; get inMaintenance(): number; set inMaintenance(value: number); resetInMaintenance(): void; get inMaintenanceInput(): number; private _instanceName?; get instanceName(): string; set instanceName(value: string); get instanceNameInput(): string; private _machineType?; get machineType(): string; set machineType(value: string); get machineTypeInput(): string; private _maintenanceEnd?; get maintenanceEnd(): string; set maintenanceEnd(value: string); resetMaintenanceEnd(): void; get maintenanceEndInput(): string; private _maintenanceStart?; get maintenanceStart(): string; set maintenanceStart(value: string); resetMaintenanceStart(): void; get maintenanceStartInput(): string; private _memory?; get memory(): number; set memory(value: number); get memoryInput(): number; private _nodeNum?; get nodeNum(): number; set nodeNum(value: number); resetNodeNum(): void; get nodeNumInput(): number; private _password?; get password(): string; set password(value: string); resetPassword(): void; get passwordInput(): string; private _prepaidPeriod?; get prepaidPeriod(): number; set prepaidPeriod(value: number); resetPrepaidPeriod(): void; get prepaidPeriodInput(): number; private _projectId?; get projectId(): number; set projectId(value: number); resetProjectId(): void; get projectIdInput(): number; private _securityGroups?; get securityGroups(): string[]; set securityGroups(value: string[]); resetSecurityGroups(): void; get securityGroupsInput(): string[]; private _standbyInstanceList; get standbyInstanceList(): MongodbInstanceStandbyInstanceListStructList; 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; }; get vip(): any; private _volume?; get volume(): number; set volume(value: number); get volumeInput(): number; private _vpcId?; get vpcId(): string; set vpcId(value: string); resetVpcId(): void; get vpcIdInput(): string; get vport(): any; private _addNodeList; get addNodeList(): MongodbInstanceAddNodeListStructList; putAddNodeList(value: MongodbInstanceAddNodeListStruct[] | cdktf.IResolvable): void; resetAddNodeList(): void; get addNodeListInput(): any; private _removeNodeList; get removeNodeList(): MongodbInstanceRemoveNodeListStructList; putRemoveNodeList(value: MongodbInstanceRemoveNodeListStruct[] | cdktf.IResolvable): void; resetRemoveNodeList(): void; get removeNodeListInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }