import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface SecurityGroupRuleConfig extends cdktf.TerraformMetaArguments { /** * ❗ An (`INGRESS`) source / (`EGRESS`) destination IP subnet (in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation)) to match (conflicts with `public_security_group`/`user_security_group`/`user_security_group_id`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#cidr SecurityGroupRule#cidr} */ readonly cidr?: string; /** * ❗ A free-form text describing the security group rule. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#description SecurityGroupRule#description} */ readonly description?: string; /** * ❗ A `TCP`/`UDP` port range to match. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#end_port SecurityGroupRule#end_port} */ readonly endPort?: number; /** * ❗ An ICMP/ICMPv6 [type/code](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages) to match. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#icmp_code SecurityGroupRule#icmp_code} */ readonly icmpCode?: number; /** * ❗ An ICMP/ICMPv6 [type/code](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages) to match. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#icmp_type SecurityGroupRule#icmp_type} */ readonly icmpType?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/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; /** * ❗ The network protocol to match (`TCP`, `UDP`, `ICMP`, `ICMPv6`, `AH`, `ESP`, `GRE`, `IPIP` or `ALL`) * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#protocol SecurityGroupRule#protocol} */ readonly protocol?: string; /** * ❗ An (`INGRESS`) source / (`EGRESS`) destination public security group name to match (conflicts with `cidr`/`user_security_group`/`user_security_group_id`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#public_security_group SecurityGroupRule#public_security_group} */ readonly publicSecurityGroup?: string; /** * ❗ The parent security group name. Please use the `security_group_id` argument along the [exoscale_security_group](../data-sources/security_group.md) data source instead. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#security_group SecurityGroupRule#security_group} */ readonly securityGroup?: string; /** * ❗ The parent [exoscale_security_group](./security_group.md) ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#security_group_id SecurityGroupRule#security_group_id} */ readonly securityGroupId?: string; /** * ❗ A `TCP`/`UDP` port range to match. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#start_port SecurityGroupRule#start_port} */ readonly startPort?: number; /** * ❗ The traffic direction to match (`INGRESS` or `EGRESS`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#type SecurityGroupRule#type} */ readonly type: string; /** * ❗ An (`INGRESS`) source / (`EGRESS`) destination security group name to match (conflicts with `cidr`/`public_security_group`/`user_security_group_id`). Please use the `user_security_group_id` argument along the [exoscale_security_group](../data-sources/security_group.md) data source instead. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#user_security_group SecurityGroupRule#user_security_group} */ readonly userSecurityGroup?: string; /** * ❗ An (`INGRESS`) source / (`EGRESS`) destination security group ID to match (conflicts with `cidr`/`public_security_group`/`user_security_group)`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#user_security_group_id SecurityGroupRule#user_security_group_id} */ readonly userSecurityGroupId?: string; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#timeouts SecurityGroupRule#timeouts} */ readonly timeouts?: SecurityGroupRuleTimeouts; } export interface SecurityGroupRuleTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#create SecurityGroupRule#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#delete SecurityGroupRule#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule#read SecurityGroupRule#read} */ readonly read?: string; } export declare function securityGroupRuleTimeoutsToTerraform(struct?: SecurityGroupRuleTimeouts | cdktf.IResolvable): any; export declare function securityGroupRuleTimeoutsToHclTerraform(struct?: SecurityGroupRuleTimeouts | cdktf.IResolvable): any; export declare class SecurityGroupRuleTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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(): SecurityGroupRuleTimeouts | cdktf.IResolvable | undefined; set internalValue(value: SecurityGroupRuleTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/exoscale/exoscale/0.67.1/docs/resources/security_group_rule exoscale_security_group_rule} */ export declare class SecurityGroupRule extends cdktf.TerraformResource { static readonly tfResourceType = "exoscale_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/exoscale/exoscale/0.67.1/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/exoscale/exoscale/0.67.1/docs/resources/security_group_rule exoscale_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 _cidr?; get cidr(): string; set cidr(value: string); resetCidr(): void; get cidrInput(): string; private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string; private _endPort?; get endPort(): number; set endPort(value: number); resetEndPort(): void; get endPortInput(): number; private _icmpCode?; get icmpCode(): number; set icmpCode(value: number); resetIcmpCode(): void; get icmpCodeInput(): number; private _icmpType?; get icmpType(): number; set icmpType(value: number); resetIcmpType(): void; get icmpTypeInput(): number; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _protocol?; get protocol(): string; set protocol(value: string); resetProtocol(): void; get protocolInput(): string; private _publicSecurityGroup?; get publicSecurityGroup(): string; set publicSecurityGroup(value: string); resetPublicSecurityGroup(): void; get publicSecurityGroupInput(): string; private _securityGroup?; get securityGroup(): string; set securityGroup(value: string); resetSecurityGroup(): void; get securityGroupInput(): string; private _securityGroupId?; get securityGroupId(): string; set securityGroupId(value: string); resetSecurityGroupId(): void; get securityGroupIdInput(): string; private _startPort?; get startPort(): number; set startPort(value: number); resetStartPort(): void; get startPortInput(): number; private _type?; get type(): string; set type(value: string); get typeInput(): string; private _userSecurityGroup?; get userSecurityGroup(): string; set userSecurityGroup(value: string); resetUserSecurityGroup(): void; get userSecurityGroupInput(): string; private _userSecurityGroupId?; get userSecurityGroupId(): string; set userSecurityGroupId(value: string); resetUserSecurityGroupId(): void; get userSecurityGroupIdInput(): string; private _timeouts; get timeouts(): SecurityGroupRuleTimeoutsOutputReference; putTimeouts(value: SecurityGroupRuleTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }