import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface SecurityGroupRuleConfig extends cdktf.TerraformMetaArguments { /** * An IP address network or segment, and conflict with `source_sgid` and `address_template`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#cidr_ip SecurityGroupRule#cidr_ip} */ readonly cidrIp?: string; /** * Description of the security group rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#description SecurityGroupRule#description} */ readonly description?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#id SecurityGroupRule#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; /** * Type of IP protocol. Valid values: `TCP`, `UDP`, `ICMP`, `ICMPv6` and `ALL`. Default to all types protocol, and conflicts with `protocol_template`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#ip_protocol SecurityGroupRule#ip_protocol} */ readonly ipProtocol?: string; /** * Rule policy of security group. Valid values: `ACCEPT` and `DROP`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#policy SecurityGroupRule#policy} */ readonly policy: string; /** * The security group rule index number, the value of which dynamically changes as the security group rule changes. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#policy_index SecurityGroupRule#policy_index} */ readonly policyIndex?: number; /** * Range of the port. The available value can be one, multiple or one segment. E.g. `80`, `80,90` and `80-90`. Default to all ports, and confilicts with `protocol_template`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#port_range SecurityGroupRule#port_range} */ readonly portRange?: string; /** * ID of the security group to be queried. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#security_group_id SecurityGroupRule#security_group_id} */ readonly securityGroupId: string; /** * ID of the nested security group, and conflicts with `cidr_ip` and `address_template`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#source_sgid SecurityGroupRule#source_sgid} */ readonly sourceSgid?: string; /** * Type of the security group rule. Valid values: `ingress` and `egress`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#type SecurityGroupRule#type} */ readonly type: string; /** * address_template block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#address_template SecurityGroupRule#address_template} */ readonly addressTemplate?: SecurityGroupRuleAddressTemplate; /** * protocol_template block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#protocol_template SecurityGroupRule#protocol_template} */ readonly protocolTemplate?: SecurityGroupRuleProtocolTemplate; } export interface SecurityGroupRuleAddressTemplate { /** * Address template group ID, conflicts with `template_id`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#group_id SecurityGroupRule#group_id} */ readonly groupId?: string; /** * Address template ID, conflicts with `group_id`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#template_id SecurityGroupRule#template_id} */ readonly templateId?: string; } export declare function securityGroupRuleAddressTemplateToTerraform(struct?: SecurityGroupRuleAddressTemplateOutputReference | SecurityGroupRuleAddressTemplate): any; export declare function securityGroupRuleAddressTemplateToHclTerraform(struct?: SecurityGroupRuleAddressTemplateOutputReference | SecurityGroupRuleAddressTemplate): any; export declare class SecurityGroupRuleAddressTemplateOutputReference 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(): SecurityGroupRuleAddressTemplate | undefined; set internalValue(value: SecurityGroupRuleAddressTemplate | undefined); private _groupId?; get groupId(): string; set groupId(value: string); resetGroupId(): void; get groupIdInput(): string; private _templateId?; get templateId(): string; set templateId(value: string); resetTemplateId(): void; get templateIdInput(): string; } export interface SecurityGroupRuleProtocolTemplate { /** * Address template group ID, conflicts with `template_id`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#group_id SecurityGroupRule#group_id} */ readonly groupId?: string; /** * Address template ID, conflicts with `group_id`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#template_id SecurityGroupRule#template_id} */ readonly templateId?: string; } export declare function securityGroupRuleProtocolTemplateToTerraform(struct?: SecurityGroupRuleProtocolTemplateOutputReference | SecurityGroupRuleProtocolTemplate): any; export declare function securityGroupRuleProtocolTemplateToHclTerraform(struct?: SecurityGroupRuleProtocolTemplateOutputReference | SecurityGroupRuleProtocolTemplate): any; export declare class SecurityGroupRuleProtocolTemplateOutputReference 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(): SecurityGroupRuleProtocolTemplate | undefined; set internalValue(value: SecurityGroupRuleProtocolTemplate | undefined); private _groupId?; get groupId(): string; set groupId(value: string); resetGroupId(): void; get groupIdInput(): string; private _templateId?; get templateId(): string; set templateId(value: string); resetTemplateId(): void; get templateIdInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule tencentcloud_security_group_rule} */ export declare class SecurityGroupRule extends cdktf.TerraformResource { static readonly tfResourceType = "tencentcloud_security_group_rule"; /** * Generates CDKTF code for importing a SecurityGroupRule 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 SecurityGroupRule to import * @param importFromId The id of the existing SecurityGroupRule that should be imported. Refer to the {@link https://registry.terraform.io/providers/tencentcloudstack/tencentcloud/1.82.49/docs/resources/security_group_rule#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the SecurityGroupRule 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/security_group_rule tencentcloud_security_group_rule} 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 SecurityGroupRuleConfig */ constructor(scope: Construct, id: string, config: SecurityGroupRuleConfig); private _cidrIp?; get cidrIp(): string; set cidrIp(value: string); resetCidrIp(): void; get cidrIpInput(): string; private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _ipProtocol?; get ipProtocol(): string; set ipProtocol(value: string); resetIpProtocol(): void; get ipProtocolInput(): string; private _policy?; get policy(): string; set policy(value: string); get policyInput(): string; private _policyIndex?; get policyIndex(): number; set policyIndex(value: number); resetPolicyIndex(): void; get policyIndexInput(): number; private _portRange?; get portRange(): string; set portRange(value: string); resetPortRange(): void; get portRangeInput(): string; private _securityGroupId?; get securityGroupId(): string; set securityGroupId(value: string); get securityGroupIdInput(): string; private _sourceSgid?; get sourceSgid(): string; set sourceSgid(value: string); resetSourceSgid(): void; get sourceSgidInput(): string; private _type?; get type(): string; set type(value: string); get typeInput(): string; private _addressTemplate; get addressTemplate(): SecurityGroupRuleAddressTemplateOutputReference; putAddressTemplate(value: SecurityGroupRuleAddressTemplate): void; resetAddressTemplate(): void; get addressTemplateInput(): SecurityGroupRuleAddressTemplate; private _protocolTemplate; get protocolTemplate(): SecurityGroupRuleProtocolTemplateOutputReference; putProtocolTemplate(value: SecurityGroupRuleProtocolTemplate): void; resetProtocolTemplate(): void; get protocolTemplateInput(): SecurityGroupRuleProtocolTemplate; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }