import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface CfwNatInstanceConfig extends cdktf.TerraformMetaArguments { /** * Off-site disaster recovery 1: use off-site disaster recovery; 0: do not use off-site disaster recovery; if empty, the default is not to use off-site disaster recovery. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#cross_a_zone CfwNatInstance#cross_a_zone} */ readonly crossAZone?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#id CfwNatInstance#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; /** * Mode 1: access mode; 0: new mode. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#mode CfwNatInstance#mode} */ readonly mode: number; /** * Firewall instance name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#name CfwNatInstance#name} */ readonly name: string; /** * A list of nat gateways connected to the access mode, at least one of NewModeItems and NatgwList is passed. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#nat_gw_list CfwNatInstance#nat_gw_list} */ readonly natGwList?: string[]; /** * Bandwidth. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#width CfwNatInstance#width} */ readonly width: number; /** * Zone list. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#zone_set CfwNatInstance#zone_set} */ readonly zoneSet: string[]; /** * new_mode_items block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#new_mode_items CfwNatInstance#new_mode_items} */ readonly newModeItems?: CfwNatInstanceNewModeItems; } export interface CfwNatInstanceNewModeItems { /** * List of egress elastic public network IPs bound in the new mode. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#eips CfwNatInstance#eips} */ readonly eips: string[]; /** * List of vpcs connected in new mode. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#vpc_list CfwNatInstance#vpc_list} */ readonly vpcList: string[]; } export declare function cfwNatInstanceNewModeItemsToTerraform(struct?: CfwNatInstanceNewModeItemsOutputReference | CfwNatInstanceNewModeItems): any; export declare function cfwNatInstanceNewModeItemsToHclTerraform(struct?: CfwNatInstanceNewModeItemsOutputReference | CfwNatInstanceNewModeItems): any; export declare class CfwNatInstanceNewModeItemsOutputReference 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(): CfwNatInstanceNewModeItems | undefined; set internalValue(value: CfwNatInstanceNewModeItems | undefined); private _eips?; get eips(): string[]; set eips(value: string[]); get eipsInput(): string[]; private _vpcList?; get vpcList(): string[]; set vpcList(value: string[]); get vpcListInput(): string[]; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance tencentcloud_cfw_nat_instance} */ export declare class CfwNatInstance extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_cfw_nat_instance"; /** * Generates CDKTF code for importing a CfwNatInstance 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 CfwNatInstance to import * @param importFromId The id of the existing CfwNatInstance that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/cfw_nat_instance#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the CfwNatInstance 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/cfw_nat_instance tencentcloud_cfw_nat_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 CfwNatInstanceConfig */ constructor(scope: Construct, id: string, config: CfwNatInstanceConfig); private _crossAZone?; get crossAZone(): number; set crossAZone(value: number); resetCrossAZone(): void; get crossAZoneInput(): number; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _mode?; get mode(): number; set mode(value: number); get modeInput(): number; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _natGwList?; get natGwList(): string[]; set natGwList(value: string[]); resetNatGwList(): void; get natGwListInput(): string[]; private _width?; get width(): number; set width(value: number); get widthInput(): number; private _zoneSet?; get zoneSet(): string[]; set zoneSet(value: string[]); get zoneSetInput(): string[]; private _newModeItems; get newModeItems(): CfwNatInstanceNewModeItemsOutputReference; putNewModeItems(value: CfwNatInstanceNewModeItems): void; resetNewModeItems(): void; get newModeItemsInput(): CfwNatInstanceNewModeItems; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }