import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class ActionDefinition { PublishMetricAction ? : PublishMetricAction ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TCPFlagField { Flags ! : List < Value < string > > ; Masks ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Header { Protocol ! : Value < string > ; Source ! : Value < string > ; SourcePort ! : Value < string > ; Direction ! : Value < string > ; Destination ! : Value < string > ; DestinationPort ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Dimension { Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatelessRulesAndCustomActions { StatelessRules ! : List < StatelessRule > ; CustomActions ? : List < CustomAction > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RuleOption { Keyword ! : Value < string > ; Settings ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RuleDefinition { MatchAttributes ! : MatchAttributes ; Actions ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RuleGroupInner { RuleVariables ? : RuleVariables ; RulesSource ! : RulesSource ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RulesSourceList { Targets ! : List < Value < string > > ; TargetTypes ! : List < Value < string > > ; GeneratedRulesType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatelessRule { RuleDefinition ! : RuleDefinition ; Priority ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PortRange { FromPort ! : Value < number > ; ToPort ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class IPSet { Definition ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CustomAction { ActionName ! : Value < string > ; ActionDefinition ! : ActionDefinition ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PortSet { Definition ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class MatchAttributes { Sources ? : List < Address > ; Destinations ? : List < Address > ; SourcePorts ? : List < PortRange > ; DestinationPorts ? : List < PortRange > ; Protocols ? : List < Value < number > > ; TCPFlags ? : List < TCPFlagField > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RuleVariables { IPSets ? : { [ key ] : IPSet ; } ; PortSets ? : { [ key ] : PortSet ; } ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PublishMetricAction { Dimensions ! : List < Dimension > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Address { AddressDefinition ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RulesSource { RulesString ? : Value < string > ; RulesSourceList ? : RulesSourceList ; StatefulRules ? : List < StatefulRule > ; StatelessRulesAndCustomActions ? : StatelessRulesAndCustomActions ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatefulRule { Action ! : Value < string > ; Header ! : Header ; RuleOptions ! : List < RuleOption > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface RuleGroupProperties { RuleGroupName : Value < string > ; RuleGroup ? : RuleGroup ; Type : Value < string > ; Capacity : Value < number > ; Description ? : Value < string > ; Tags ? : List < ResourceTag > ; } export default class RuleGroup extends ResourceBase < RuleGroupProperties > { static ActionDefinition = ActionDefinition ; static TCPFlagField = TCPFlagField ; static Header = Header ; static Dimension = Dimension ; static StatelessRulesAndCustomActions = StatelessRulesAndCustomActions ; static RuleOption = RuleOption ; static RuleDefinition = RuleDefinition ; static RuleGroup = RuleGroupInner ; static RulesSourceList = RulesSourceList ; static StatelessRule = StatelessRule ; static PortRange = PortRange ; static IPSet = IPSet ; static CustomAction = CustomAction ; static PortSet = PortSet ; static MatchAttributes = MatchAttributes ; static RuleVariables = RuleVariables ; static PublishMetricAction = PublishMetricAction ; static Address = Address ; static RulesSource = RulesSource ; static StatefulRule = StatefulRule ; constructor ( properties ) { super ( 'AWS::NetworkFirewall::RuleGroup' , properties ) ; } }