import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class CustomAction { ActionName ! : Value < string > ; ActionDefinition ! : ActionDefinition ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatelessRuleGroupReference { ResourceArn ! : Value < string > ; Priority ! : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StatefulRuleGroupReference { ResourceArn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PublishMetricAction { Dimensions ! : List < Dimension > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ActionDefinition { PublishMetricAction ? : PublishMetricAction ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Dimension { Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class FirewallPolicyInner { StatelessDefaultActions ! : List < Value < string > > ; StatelessFragmentDefaultActions ! : List < Value < string > > ; StatelessCustomActions ? : List < CustomAction > ; StatelessRuleGroupReferences ? : List < StatelessRuleGroupReference > ; StatefulRuleGroupReferences ? : List < StatefulRuleGroupReference > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface FirewallPolicyProperties { FirewallPolicyName : Value < string > ; FirewallPolicy : FirewallPolicy ; Description ? : Value < string > ; Tags ? : List < ResourceTag > ; } export default class FirewallPolicy extends ResourceBase < FirewallPolicyProperties > { static CustomAction = CustomAction ; static StatelessRuleGroupReference = StatelessRuleGroupReference ; static StatefulRuleGroupReference = StatefulRuleGroupReference ; static PublishMetricAction = PublishMetricAction ; static ActionDefinition = ActionDefinition ; static Dimension = Dimension ; static FirewallPolicy = FirewallPolicyInner ; constructor ( properties ) { super ( 'AWS::NetworkFirewall::FirewallPolicy' , properties ) ; } }