/* eslint-disable */ /** * This file was automatically generated by json-schema-to-typescript. * DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, * and run json-schema-to-typescript to regenerate this file. */ /** * A resource ARN. */ export type ResourceArn = string; export type VariableDefinition = string; export type RulesString = string; export type TargetType = "TLS_SNI" | "HTTP_HOST"; export type GeneratedRulesType = "ALLOWLIST" | "DENYLIST"; export type Port = string; export type Setting = string; export type PortRangeBound = number; export type ProtocolNumber = number; export type TCPFlag = "FIN" | "SYN" | "RST" | "PSH" | "ACK" | "URG" | "ECE" | "CWR"; export type RuleOrder = "DEFAULT_ACTION_ORDER" | "STRICT_ORDER"; /** * Resource type definition for AWS::NetworkFirewall::RuleGroup */ export interface AwsNetworkfirewallRulegroup { RuleGroupName: string; RuleGroupArn?: ResourceArn; RuleGroupId?: string; RuleGroup?: RuleGroup; Type: "STATELESS" | "STATEFUL"; Capacity: number; Description?: string; Tags?: Tag[]; } export interface RuleGroup { RuleVariables?: RuleVariables; ReferenceSets?: ReferenceSets; RulesSource: RulesSource; StatefulRuleOptions?: StatefulRuleOptions; } export interface RuleVariables { IPSets?: { [k: string]: IPSet; }; PortSets?: { [k: string]: PortSet; }; } /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^[A-Za-z0-9_]{1,32}$". */ export interface IPSet { Definition?: VariableDefinition[]; } /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^[A-Za-z0-9_]{1,32}$". */ export interface PortSet { Definition?: VariableDefinition[]; } export interface ReferenceSets { IPSetReferences?: { [k: string]: IPSetReference; }; } /** * This interface was referenced by `undefined`'s JSON-Schema definition * via the `patternProperty` "^[A-Za-z0-9_]{1,32}$". */ export interface IPSetReference { ReferenceArn?: ResourceArn; } export interface RulesSource { RulesString?: RulesString; RulesSourceList?: RulesSourceList; StatefulRules?: StatefulRule[]; StatelessRulesAndCustomActions?: StatelessRulesAndCustomActions; } export interface RulesSourceList { Targets: string[]; TargetTypes: TargetType[]; GeneratedRulesType: GeneratedRulesType; } export interface StatefulRule { Action: "PASS" | "DROP" | "ALERT" | "REJECT"; Header: Header; RuleOptions: RuleOption[]; } export interface Header { Protocol: | "IP" | "TCP" | "UDP" | "ICMP" | "HTTP" | "FTP" | "TLS" | "SMB" | "DNS" | "DCERPC" | "SSH" | "SMTP" | "IMAP" | "MSN" | "KRB5" | "IKEV2" | "TFTP" | "NTP" | "DHCP"; Source: string; SourcePort: Port; Direction: "FORWARD" | "ANY"; Destination: string; DestinationPort: Port; } export interface RuleOption { Keyword: string; Settings?: Setting[]; } export interface StatelessRulesAndCustomActions { StatelessRules: StatelessRule[]; CustomActions?: CustomAction[]; } export interface StatelessRule { RuleDefinition: RuleDefinition; Priority: number; } export interface RuleDefinition { MatchAttributes: MatchAttributes; Actions: string[]; } export interface MatchAttributes { Sources?: Address[]; Destinations?: Address[]; SourcePorts?: PortRange[]; DestinationPorts?: PortRange[]; Protocols?: ProtocolNumber[]; TCPFlags?: TCPFlagField[]; } export interface Address { AddressDefinition: string; } export interface PortRange { FromPort: PortRangeBound; ToPort: PortRangeBound; } export interface TCPFlagField { Flags: TCPFlag[]; Masks?: TCPFlag[]; } export interface CustomAction { ActionName: string; ActionDefinition: ActionDefinition; } export interface ActionDefinition { PublishMetricAction?: PublishMetricAction; } export interface PublishMetricAction { Dimensions: Dimension[]; } export interface Dimension { Value: string; } export interface StatefulRuleOptions { RuleOrder?: RuleOrder; } export interface Tag { Key: string; Value: string; }