import * as core from "@terrascript/core"; export interface IpSetArgs extends core.SchemaArgs { definition: core.Array | core.ArrayOut; } export declare class IpSet extends core.Schema { definition: core.Array | core.ArrayOut; } export interface IpSetsArgs extends core.SchemaArgs { ipSet: IpSet; key: string | core.StringOut; } export declare class IpSets extends core.Schema { ipSet: IpSet; key: string | core.StringOut; } export interface PortSetArgs extends core.SchemaArgs { definition: core.Array | core.ArrayOut; } export declare class PortSet extends core.Schema { definition: core.Array | core.ArrayOut; } export interface PortSetsArgs extends core.SchemaArgs { key: string | core.StringOut; portSet: PortSet; } export declare class PortSets extends core.Schema { key: string | core.StringOut; portSet: PortSet; } export interface RuleVariablesArgs extends core.SchemaArgs { ipSets?: core.Array | core.ArrayOut; portSets?: core.Array | core.ArrayOut; } export declare class RuleVariables extends core.Schema { ipSets?: core.Array | core.ArrayOut; portSets?: core.Array | core.ArrayOut; } export interface HeaderArgs extends core.SchemaArgs { destination: string | core.StringOut; destinationPort: string | core.StringOut; direction: string | core.StringOut; protocol: string | core.StringOut; source: string | core.StringOut; sourcePort: string | core.StringOut; } export declare class Header extends core.Schema { destination: string | core.StringOut; destinationPort: string | core.StringOut; direction: string | core.StringOut; protocol: string | core.StringOut; source: string | core.StringOut; sourcePort: string | core.StringOut; } export interface RuleOptionArgs extends core.SchemaArgs { keyword: string | core.StringOut; settings?: core.Array | core.ArrayOut; } export declare class RuleOption extends core.Schema { keyword: string | core.StringOut; settings?: core.Array | core.ArrayOut; } export interface StatefulRuleArgs extends core.SchemaArgs { action: string | core.StringOut; header: Header; ruleOption: core.Array | core.ArrayOut; } export declare class StatefulRule extends core.Schema { action: string | core.StringOut; header: Header; ruleOption: core.Array | core.ArrayOut; } export interface DimensionArgs extends core.SchemaArgs { value: string | core.StringOut; } export declare class Dimension extends core.Schema { value: string | core.StringOut; } export interface PublishMetricActionArgs extends core.SchemaArgs { dimension: core.Array | core.ArrayOut; } export declare class PublishMetricAction extends core.Schema { dimension: core.Array | core.ArrayOut; } export interface ActionDefinitionArgs extends core.SchemaArgs { publishMetricAction: PublishMetricAction; } export declare class ActionDefinition extends core.Schema { publishMetricAction: PublishMetricAction; } export interface CustomActionArgs extends core.SchemaArgs { actionDefinition: ActionDefinition; actionName: string | core.StringOut; } export declare class CustomAction extends core.Schema { actionDefinition: ActionDefinition; actionName: string | core.StringOut; } export interface DestinationPortArgs extends core.SchemaArgs { fromPort: number | core.NumberOut; toPort?: number | core.NumberOut; } export declare class DestinationPort extends core.Schema { fromPort: number | core.NumberOut; toPort?: number | core.NumberOut; } export interface SourceArgs extends core.SchemaArgs { addressDefinition: string | core.StringOut; } export declare class Source extends core.Schema { addressDefinition: string | core.StringOut; } export interface SourcePortArgs extends core.SchemaArgs { fromPort: number | core.NumberOut; toPort?: number | core.NumberOut; } export declare class SourcePort extends core.Schema { fromPort: number | core.NumberOut; toPort?: number | core.NumberOut; } export interface TcpFlagArgs extends core.SchemaArgs { flags: core.Array | core.ArrayOut; masks?: core.Array | core.ArrayOut; } export declare class TcpFlag extends core.Schema { flags: core.Array | core.ArrayOut; masks?: core.Array | core.ArrayOut; } export interface DestinationArgs extends core.SchemaArgs { addressDefinition: string | core.StringOut; } export declare class Destination extends core.Schema { addressDefinition: string | core.StringOut; } export interface MatchAttributesArgs extends core.SchemaArgs { destination?: core.Array | core.ArrayOut; destinationPort?: core.Array | core.ArrayOut; protocols?: core.Array | core.ArrayOut; source?: core.Array | core.ArrayOut; sourcePort?: core.Array | core.ArrayOut; tcpFlag?: core.Array | core.ArrayOut; } export declare class MatchAttributes extends core.Schema { destination?: core.Array | core.ArrayOut; destinationPort?: core.Array | core.ArrayOut; protocols?: core.Array | core.ArrayOut; source?: core.Array | core.ArrayOut; sourcePort?: core.Array | core.ArrayOut; tcpFlag?: core.Array | core.ArrayOut; } export interface RuleDefinitionArgs extends core.SchemaArgs { actions: core.Array | core.ArrayOut; matchAttributes: MatchAttributes; } export declare class RuleDefinition extends core.Schema { actions: core.Array | core.ArrayOut; matchAttributes: MatchAttributes; } export interface StatelessRuleArgs extends core.SchemaArgs { priority: number | core.NumberOut; ruleDefinition: RuleDefinition; } export declare class StatelessRule extends core.Schema { priority: number | core.NumberOut; ruleDefinition: RuleDefinition; } export interface StatelessRulesAndCustomActionsArgs extends core.SchemaArgs { customAction?: core.Array | core.ArrayOut; statelessRule: core.Array | core.ArrayOut; } export declare class StatelessRulesAndCustomActions extends core.Schema { customAction?: core.Array | core.ArrayOut; statelessRule: core.Array | core.ArrayOut; } export interface RulesSourceListArgs extends core.SchemaArgs { generatedRulesType: string | core.StringOut; targetTypes: core.Array | core.ArrayOut; targets: core.Array | core.ArrayOut; } export declare class RulesSourceList extends core.Schema { generatedRulesType: string | core.StringOut; targetTypes: core.Array | core.ArrayOut; targets: core.Array | core.ArrayOut; } export interface RulesSourceArgs extends core.SchemaArgs { rulesSourceList?: RulesSourceList; rulesString?: string | core.StringOut; statefulRule?: core.Array | core.ArrayOut; statelessRulesAndCustomActions?: StatelessRulesAndCustomActions; } export declare class RulesSource extends core.Schema { rulesSourceList?: RulesSourceList; rulesString?: string | core.StringOut; statefulRule?: core.Array | core.ArrayOut; statelessRulesAndCustomActions?: StatelessRulesAndCustomActions; } export interface StatefulRuleOptionsArgs extends core.SchemaArgs { ruleOrder: string | core.StringOut; } export declare class StatefulRuleOptions extends core.Schema { ruleOrder: string | core.StringOut; } export interface RuleGroupBlkArgs extends core.SchemaArgs { ruleVariables?: RuleVariables; rulesSource: RulesSource; statefulRuleOptions?: StatefulRuleOptions; } export declare class RuleGroupBlk extends core.Schema { ruleVariables?: RuleVariables; rulesSource: RulesSource; statefulRuleOptions?: StatefulRuleOptions; } export interface RuleGroupArgs extends core.ResourceArgs { /** * (Required, Forces new resource) The maximum number of operating resources that this rule group can u * se. For a stateless rule group, the capacity required is the sum of the capacity requirements of the * individual rules. For a stateful rule group, the minimum capacity required is the number of individ * ual rules. */ capacity: number | core.NumberOut; /** * (Optional) A friendly description of the rule group. */ description?: string | core.StringOut; /** * (Required, Forces new resource) A friendly name of the rule group. */ name: string | core.StringOut; /** * (Optional) A configuration block that defines the rule group rules. Required unless `rules` is speci * fied. See [Rule Group](#rule-group) below for details. */ ruleGroup?: RuleGroupBlk; /** * (Optional) The stateful rule group rules specifications in Suricata file format, with one rule per l * ine. Use this to import your existing Suricata compatible rule groups. Required unless `rule_group` * is specified. */ rules?: string | core.StringOut; /** * (Optional) A map of key:value pairs to associate with the resource. If configured with a provider [` * default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs * #default_tags-configuration-block) present, tags with matching keys will overwrite those defined at * the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) Whether the rule group is stateless (containing stateless rules) or stateful (containing * stateful rules). Valid values include: `STATEFUL` or `STATELESS`. */ type: string | core.StringOut; } export declare class RuleGroup extends core.Resource { /** * The Amazon Resource Name (ARN) that identifies the rule group. */ arn: string | core.StringOut; /** * (Required, Forces new resource) The maximum number of operating resources that this rule group can u * se. For a stateless rule group, the capacity required is the sum of the capacity requirements of the * individual rules. For a stateful rule group, the minimum capacity required is the number of individ * ual rules. */ capacity: number | core.NumberOut; /** * (Optional) A friendly description of the rule group. */ description?: string | core.StringOut; /** * The Amazon Resource Name (ARN) that identifies the rule group. */ id: string | core.StringOut; /** * (Required, Forces new resource) A friendly name of the rule group. */ name: string | core.StringOut; /** * (Optional) A configuration block that defines the rule group rules. Required unless `rules` is speci * fied. See [Rule Group](#rule-group) below for details. */ ruleGroup?: RuleGroupBlk; /** * (Optional) The stateful rule group rules specifications in Suricata file format, with one rule per l * ine. Use this to import your existing Suricata compatible rule groups. Required unless `rule_group` * is specified. */ rules?: string | core.StringOut; /** * (Optional) A map of key:value pairs to associate with the resource. If configured with a provider [` * default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs * #default_tags-configuration-block) present, tags with matching keys will overwrite those defined at * the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) Whether the rule group is stateless (containing stateless rules) or stateful (containing * stateful rules). Valid values include: `STATEFUL` or `STATELESS`. */ type: string | core.StringOut; /** * A string token used when updating the rule group. */ updateToken: string | core.StringOut; constructor(name: string, args?: RuleGroupArgs); getNamespace(): string; } //# sourceMappingURL=rule_group.d.ts.map