import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface MysqlRoGroupConfig extends cdktf.TerraformMetaArguments { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#id MysqlRoGroup#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; /** * Instance ID, in the format: cdbro-3i70uj0k. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#instance_id MysqlRoGroup#instance_id} */ readonly instanceId: string; /** * Whether to rebalance the load of RO instances in the RO group. Supported values include: 1 - rebalance load; 0 - do not rebalance load. The default value is 0. Note that when it is set to rebalance the load, the RO instance in the RO group will have a momentary disconnection of the database connection, please ensure that the application can reconnect to the database. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#is_balance_ro_load MysqlRoGroup#is_balance_ro_load} */ readonly isBalanceRoLoad?: number; /** * The ID of the RO group. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#ro_group_id MysqlRoGroup#ro_group_id} */ readonly roGroupId: string; /** * ro_group_info block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#ro_group_info MysqlRoGroup#ro_group_info} */ readonly roGroupInfo?: MysqlRoGroupRoGroupInfo; /** * ro_weight_values block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#ro_weight_values MysqlRoGroup#ro_weight_values} */ readonly roWeightValues?: MysqlRoGroupRoWeightValues[] | cdktf.IResolvable; } export interface MysqlRoGroupRoGroupInfo { /** * The minimum number of reserved instances. It can be set to any value less than or equal to the number of RO instances under this RO group. Note that if the setting value is greater than the number of RO instances, it will not be removed; if it is set to 0, all instances whose latency exceeds the limit will be removed. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#min_ro_in_group MysqlRoGroup#min_ro_in_group} */ readonly minRoInGroup?: number; /** * Delayed replication time. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#replication_delay_time MysqlRoGroup#replication_delay_time} */ readonly replicationDelayTime?: number; /** * RO group name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#ro_group_name MysqlRoGroup#ro_group_name} */ readonly roGroupName?: string; /** * RO instance maximum latency threshold. The unit is seconds, the minimum value is 1. Note that the RO group must have enabled instance delay culling policy for this value to be valid. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#ro_max_delay_time MysqlRoGroup#ro_max_delay_time} */ readonly roMaxDelayTime?: number; /** * Whether to enable delayed culling of instances. Supported values are: 1 - on; 0 - not on. Note that if you enable instance delay culling, you must set the delay threshold (RoMaxDelayTime) parameter. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#ro_offline_delay MysqlRoGroup#ro_offline_delay} */ readonly roOfflineDelay?: number; /** * weight mode. Supported values include: `system` - automatically assigned by the system; `custom` - user-defined settings. Note that if the `custom` mode is set, the RO instance weight configuration (RoWeightValues) parameter must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#weight_mode MysqlRoGroup#weight_mode} */ readonly weightMode?: string; } export declare function mysqlRoGroupRoGroupInfoToTerraform(struct?: MysqlRoGroupRoGroupInfoOutputReference | MysqlRoGroupRoGroupInfo): any; export declare function mysqlRoGroupRoGroupInfoToHclTerraform(struct?: MysqlRoGroupRoGroupInfoOutputReference | MysqlRoGroupRoGroupInfo): any; export declare class MysqlRoGroupRoGroupInfoOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MysqlRoGroupRoGroupInfo | undefined; set internalValue(value: MysqlRoGroupRoGroupInfo | undefined); private _minRoInGroup?; get minRoInGroup(): number; set minRoInGroup(value: number); resetMinRoInGroup(): void; get minRoInGroupInput(): number; private _replicationDelayTime?; get replicationDelayTime(): number; set replicationDelayTime(value: number); resetReplicationDelayTime(): void; get replicationDelayTimeInput(): number; private _roGroupName?; get roGroupName(): string; set roGroupName(value: string); resetRoGroupName(): void; get roGroupNameInput(): string; private _roMaxDelayTime?; get roMaxDelayTime(): number; set roMaxDelayTime(value: number); resetRoMaxDelayTime(): void; get roMaxDelayTimeInput(): number; private _roOfflineDelay?; get roOfflineDelay(): number; set roOfflineDelay(value: number); resetRoOfflineDelay(): void; get roOfflineDelayInput(): number; private _weightMode?; get weightMode(): string; set weightMode(value: string); resetWeightMode(): void; get weightModeInput(): string; } export interface MysqlRoGroupRoWeightValues { /** * RO instance ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#instance_id MysqlRoGroup#instance_id} */ readonly instanceId: string; /** * Weights. The value range is [0, 100]. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#weight MysqlRoGroup#weight} */ readonly weight: number; } export declare function mysqlRoGroupRoWeightValuesToTerraform(struct?: MysqlRoGroupRoWeightValues | cdktf.IResolvable): any; export declare function mysqlRoGroupRoWeightValuesToHclTerraform(struct?: MysqlRoGroupRoWeightValues | cdktf.IResolvable): any; export declare class MysqlRoGroupRoWeightValuesOutputReference 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(): MysqlRoGroupRoWeightValues | cdktf.IResolvable | undefined; set internalValue(value: MysqlRoGroupRoWeightValues | cdktf.IResolvable | undefined); private _instanceId?; get instanceId(): string; set instanceId(value: string); get instanceIdInput(): string; private _weight?; get weight(): number; set weight(value: number); get weightInput(): number; } export declare class MysqlRoGroupRoWeightValuesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: MysqlRoGroupRoWeightValues[] | 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): MysqlRoGroupRoWeightValuesOutputReference; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group tencentcloud_mysql_ro_group} */ export declare class MysqlRoGroup extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_mysql_ro_group"; /** * Generates CDKTF code for importing a MysqlRoGroup 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 MysqlRoGroup to import * @param importFromId The id of the existing MysqlRoGroup that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/mysql_ro_group#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the MysqlRoGroup 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/mysql_ro_group tencentcloud_mysql_ro_group} 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 MysqlRoGroupConfig */ constructor(scope: Construct, id: string, config: MysqlRoGroupConfig); private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _instanceId?; get instanceId(): string; set instanceId(value: string); get instanceIdInput(): string; private _isBalanceRoLoad?; get isBalanceRoLoad(): number; set isBalanceRoLoad(value: number); resetIsBalanceRoLoad(): void; get isBalanceRoLoadInput(): number; private _roGroupId?; get roGroupId(): string; set roGroupId(value: string); get roGroupIdInput(): string; private _roGroupInfo; get roGroupInfo(): MysqlRoGroupRoGroupInfoOutputReference; putRoGroupInfo(value: MysqlRoGroupRoGroupInfo): void; resetRoGroupInfo(): void; get roGroupInfoInput(): MysqlRoGroupRoGroupInfo; private _roWeightValues; get roWeightValues(): MysqlRoGroupRoWeightValuesList; putRoWeightValues(value: MysqlRoGroupRoWeightValues[] | cdktf.IResolvable): void; resetRoWeightValues(): void; get roWeightValuesInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }