@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Network Firewall
@version 2020-11-12
@auth AWS SigV4
@endpoints 36
@hint download_for_search
@toc root(36)

@endpoint POST /
@required {FirewallPolicyArn: str}
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str}
@returns(200) {FirewallArn: str?, FirewallName: str?, FirewallPolicyArn: str?, UpdateToken: str?}

@endpoint POST /
@required {SubnetMappings: [SubnetMapping]}
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str}
@returns(200) {FirewallArn: str?, FirewallName: str?, SubnetMappings: [SubnetMapping]?, UpdateToken: str?}

@endpoint POST /
@required {FirewallName: str, FirewallPolicyArn: str, VpcId: str, SubnetMappings: [SubnetMapping]}
@optional {DeleteProtection: bool, SubnetChangeProtection: bool, FirewallPolicyChangeProtection: bool, Description: str, Tags: [Tag], EncryptionConfiguration: EncryptionConfiguration}
@returns(200) {Firewall: Firewall?{FirewallName: str?, FirewallArn: str?, FirewallPolicyArn: str, VpcId: str, SubnetMappings: [SubnetMapping], DeleteProtection: bool?, SubnetChangeProtection: bool?, FirewallPolicyChangeProtection: bool?, Description: str?, FirewallId: str, Tags: [Tag]?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}}, FirewallStatus: FirewallStatus?{Status: str, ConfigurationSyncStateSummary: str, SyncStates: map<str,SyncState>?, CapacityUsageSummary: CapacityUsageSummary?{CIDRs: CIDRSummary?{AvailableCIDRCount: int?, UtilizedCIDRCount: int?, IPSetReferences: map<str,IPSetMetadata>?}}}}

@endpoint POST /
@required {FirewallPolicyName: str, FirewallPolicy: FirewallPolicy}
@optional {Description: str, Tags: [Tag], DryRun: bool, EncryptionConfiguration: EncryptionConfiguration}
@returns(200) {UpdateToken: str, FirewallPolicyResponse: FirewallPolicyResponse{FirewallPolicyName: str, FirewallPolicyArn: str, FirewallPolicyId: str, Description: str?, FirewallPolicyStatus: str?, Tags: [Tag]?, ConsumedStatelessRuleCapacity: int?, ConsumedStatefulRuleCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, LastModifiedTime: str(timestamp)?}}

@endpoint POST /
@required {RuleGroupName: str, Type: str, Capacity: int}
@optional {RuleGroup: RuleGroup, Rules: str, Description: str, Tags: [Tag], DryRun: bool, EncryptionConfiguration: EncryptionConfiguration, SourceMetadata: SourceMetadata, AnalyzeRuleGroup: bool}
@returns(200) {UpdateToken: str, RuleGroupResponse: RuleGroupResponse{RuleGroupArn: str, RuleGroupName: str, RuleGroupId: str, Description: str?, Type: str?, Capacity: int?, RuleGroupStatus: str?, Tags: [Tag]?, ConsumedCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, SourceMetadata: SourceMetadata?{SourceArn: str?, SourceUpdateToken: str?}, SnsTopic: str?, LastModifiedTime: str(timestamp)?, AnalysisResults: [AnalysisResult]?}}

@endpoint POST /
@required {TLSInspectionConfigurationName: str, TLSInspectionConfiguration: TLSInspectionConfiguration}
@optional {Description: str, Tags: [Tag], EncryptionConfiguration: EncryptionConfiguration}
@returns(200) {UpdateToken: str, TLSInspectionConfigurationResponse: TLSInspectionConfigurationResponse{TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str, TLSInspectionConfigurationId: str, TLSInspectionConfigurationStatus: str?, Description: str?, Tags: [Tag]?, LastModifiedTime: str(timestamp)?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, Certificates: [TlsCertificateData]?, CertificateAuthority: TlsCertificateData?{CertificateArn: str?, CertificateSerial: str?, Status: str?, StatusMessage: str?}}}

@endpoint POST /
@optional {FirewallName: str, FirewallArn: str}
@returns(200) {Firewall: Firewall?{FirewallName: str?, FirewallArn: str?, FirewallPolicyArn: str, VpcId: str, SubnetMappings: [SubnetMapping], DeleteProtection: bool?, SubnetChangeProtection: bool?, FirewallPolicyChangeProtection: bool?, Description: str?, FirewallId: str, Tags: [Tag]?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}}, FirewallStatus: FirewallStatus?{Status: str, ConfigurationSyncStateSummary: str, SyncStates: map<str,SyncState>?, CapacityUsageSummary: CapacityUsageSummary?{CIDRs: CIDRSummary?{AvailableCIDRCount: int?, UtilizedCIDRCount: int?, IPSetReferences: map<str,IPSetMetadata>?}}}}

@endpoint POST /
@optional {FirewallPolicyName: str, FirewallPolicyArn: str}
@returns(200) {FirewallPolicyResponse: FirewallPolicyResponse{FirewallPolicyName: str, FirewallPolicyArn: str, FirewallPolicyId: str, Description: str?, FirewallPolicyStatus: str?, Tags: [Tag]?, ConsumedStatelessRuleCapacity: int?, ConsumedStatefulRuleCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, LastModifiedTime: str(timestamp)?}}

@endpoint POST /
@required {ResourceArn: str}

@endpoint POST /
@optional {RuleGroupName: str, RuleGroupArn: str, Type: str}
@returns(200) {RuleGroupResponse: RuleGroupResponse{RuleGroupArn: str, RuleGroupName: str, RuleGroupId: str, Description: str?, Type: str?, Capacity: int?, RuleGroupStatus: str?, Tags: [Tag]?, ConsumedCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, SourceMetadata: SourceMetadata?{SourceArn: str?, SourceUpdateToken: str?}, SnsTopic: str?, LastModifiedTime: str(timestamp)?, AnalysisResults: [AnalysisResult]?}}

@endpoint POST /
@optional {TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str}
@returns(200) {TLSInspectionConfigurationResponse: TLSInspectionConfigurationResponse{TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str, TLSInspectionConfigurationId: str, TLSInspectionConfigurationStatus: str?, Description: str?, Tags: [Tag]?, LastModifiedTime: str(timestamp)?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, Certificates: [TlsCertificateData]?, CertificateAuthority: TlsCertificateData?{CertificateArn: str?, CertificateSerial: str?, Status: str?, StatusMessage: str?}}}

@endpoint POST /
@optional {FirewallName: str, FirewallArn: str}
@returns(200) {UpdateToken: str?, Firewall: Firewall?{FirewallName: str?, FirewallArn: str?, FirewallPolicyArn: str, VpcId: str, SubnetMappings: [SubnetMapping], DeleteProtection: bool?, SubnetChangeProtection: bool?, FirewallPolicyChangeProtection: bool?, Description: str?, FirewallId: str, Tags: [Tag]?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}}, FirewallStatus: FirewallStatus?{Status: str, ConfigurationSyncStateSummary: str, SyncStates: map<str,SyncState>?, CapacityUsageSummary: CapacityUsageSummary?{CIDRs: CIDRSummary?{AvailableCIDRCount: int?, UtilizedCIDRCount: int?, IPSetReferences: map<str,IPSetMetadata>?}}}}

@endpoint POST /
@optional {FirewallPolicyName: str, FirewallPolicyArn: str}
@returns(200) {UpdateToken: str, FirewallPolicyResponse: FirewallPolicyResponse{FirewallPolicyName: str, FirewallPolicyArn: str, FirewallPolicyId: str, Description: str?, FirewallPolicyStatus: str?, Tags: [Tag]?, ConsumedStatelessRuleCapacity: int?, ConsumedStatefulRuleCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, LastModifiedTime: str(timestamp)?}, FirewallPolicy: FirewallPolicy?{StatelessRuleGroupReferences: [StatelessRuleGroupReference]?, StatelessDefaultActions: [str], StatelessFragmentDefaultActions: [str], StatelessCustomActions: [CustomAction]?, StatefulRuleGroupReferences: [StatefulRuleGroupReference]?, StatefulDefaultActions: [str]?, StatefulEngineOptions: StatefulEngineOptions?{RuleOrder: str?, StreamExceptionPolicy: str?}, TLSInspectionConfigurationArn: str?, PolicyVariables: PolicyVariables?{RuleVariables: map<str,IPSet>?}}}

@endpoint POST /
@optional {FirewallArn: str, FirewallName: str}
@returns(200) {FirewallArn: str?, LoggingConfiguration: LoggingConfiguration?{LogDestinationConfigs: [LogDestinationConfig]}}

@endpoint POST /
@required {ResourceArn: str}
@returns(200) {Policy: str?}

@endpoint POST /
@optional {RuleGroupName: str, RuleGroupArn: str, Type: str, AnalyzeRuleGroup: bool}
@returns(200) {UpdateToken: str, RuleGroup: RuleGroup?{RuleVariables: RuleVariables?{IPSets: map<str,IPSet>?, PortSets: map<str,PortSet>?}, ReferenceSets: ReferenceSets?{IPSetReferences: map<str,IPSetReference>?}, RulesSource: RulesSource{RulesString: str?, RulesSourceList: RulesSourceList?{Targets: [str], TargetTypes: [str], GeneratedRulesType: str}, StatefulRules: [StatefulRule]?, StatelessRulesAndCustomActions: StatelessRulesAndCustomActions?{StatelessRules: [StatelessRule], CustomActions: [CustomAction]?}}, StatefulRuleOptions: StatefulRuleOptions?{RuleOrder: str?}}, RuleGroupResponse: RuleGroupResponse{RuleGroupArn: str, RuleGroupName: str, RuleGroupId: str, Description: str?, Type: str?, Capacity: int?, RuleGroupStatus: str?, Tags: [Tag]?, ConsumedCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, SourceMetadata: SourceMetadata?{SourceArn: str?, SourceUpdateToken: str?}, SnsTopic: str?, LastModifiedTime: str(timestamp)?, AnalysisResults: [AnalysisResult]?}}

@endpoint POST /
@optional {RuleGroupName: str, RuleGroupArn: str, Type: str}
@returns(200) {RuleGroupArn: str, RuleGroupName: str, Description: str?, Type: str?, Capacity: int?, StatefulRuleOptions: StatefulRuleOptions?{RuleOrder: str?}, LastModifiedTime: str(timestamp)?}

@endpoint POST /
@optional {TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str}
@returns(200) {UpdateToken: str, TLSInspectionConfiguration: TLSInspectionConfiguration?{ServerCertificateConfigurations: [ServerCertificateConfiguration]?}, TLSInspectionConfigurationResponse: TLSInspectionConfigurationResponse{TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str, TLSInspectionConfigurationId: str, TLSInspectionConfigurationStatus: str?, Description: str?, Tags: [Tag]?, LastModifiedTime: str(timestamp)?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, Certificates: [TlsCertificateData]?, CertificateAuthority: TlsCertificateData?{CertificateArn: str?, CertificateSerial: str?, Status: str?, StatusMessage: str?}}}

@endpoint POST /
@required {SubnetIds: [str]}
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str}
@returns(200) {FirewallArn: str?, FirewallName: str?, SubnetMappings: [SubnetMapping]?, UpdateToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, FirewallPolicies: [FirewallPolicyMetadata]?}

@endpoint POST /
@optional {NextToken: str, VpcIds: [str], MaxResults: int}
@returns(200) {NextToken: str?, Firewalls: [FirewallMetadata]?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int, Scope: str, ManagedType: str, Type: str}
@returns(200) {NextToken: str?, RuleGroups: [RuleGroupMetadata]?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, TLSInspectionConfigurations: [TLSInspectionConfigurationMetadata]?}

@endpoint POST /
@required {ResourceArn: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, Tags: [Tag]?}

@endpoint POST /
@required {ResourceArn: str, Policy: str}

@endpoint POST /
@required {ResourceArn: str, Tags: [Tag]}

@endpoint POST /
@required {ResourceArn: str, TagKeys: [str]}

@endpoint POST /
@required {DeleteProtection: bool}
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str}
@returns(200) {FirewallArn: str?, FirewallName: str?, DeleteProtection: bool?, UpdateToken: str?}

@endpoint POST /
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str, Description: str}
@returns(200) {FirewallArn: str?, FirewallName: str?, Description: str?, UpdateToken: str?}

@endpoint POST /
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str, EncryptionConfiguration: EncryptionConfiguration}
@returns(200) {FirewallArn: str?, FirewallName: str?, UpdateToken: str?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}}

@endpoint POST /
@required {UpdateToken: str, FirewallPolicy: FirewallPolicy}
@optional {FirewallPolicyArn: str, FirewallPolicyName: str, Description: str, DryRun: bool, EncryptionConfiguration: EncryptionConfiguration}
@returns(200) {UpdateToken: str, FirewallPolicyResponse: FirewallPolicyResponse{FirewallPolicyName: str, FirewallPolicyArn: str, FirewallPolicyId: str, Description: str?, FirewallPolicyStatus: str?, Tags: [Tag]?, ConsumedStatelessRuleCapacity: int?, ConsumedStatefulRuleCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, LastModifiedTime: str(timestamp)?}}

@endpoint POST /
@required {FirewallPolicyChangeProtection: bool}
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str}
@returns(200) {UpdateToken: str?, FirewallArn: str?, FirewallName: str?, FirewallPolicyChangeProtection: bool?}

@endpoint POST /
@optional {FirewallArn: str, FirewallName: str, LoggingConfiguration: LoggingConfiguration}
@returns(200) {FirewallArn: str?, FirewallName: str?, LoggingConfiguration: LoggingConfiguration?{LogDestinationConfigs: [LogDestinationConfig]}}

@endpoint POST /
@required {UpdateToken: str}
@optional {RuleGroupArn: str, RuleGroupName: str, RuleGroup: RuleGroup, Rules: str, Type: str, Description: str, DryRun: bool, EncryptionConfiguration: EncryptionConfiguration, SourceMetadata: SourceMetadata, AnalyzeRuleGroup: bool}
@returns(200) {UpdateToken: str, RuleGroupResponse: RuleGroupResponse{RuleGroupArn: str, RuleGroupName: str, RuleGroupId: str, Description: str?, Type: str?, Capacity: int?, RuleGroupStatus: str?, Tags: [Tag]?, ConsumedCapacity: int?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, SourceMetadata: SourceMetadata?{SourceArn: str?, SourceUpdateToken: str?}, SnsTopic: str?, LastModifiedTime: str(timestamp)?, AnalysisResults: [AnalysisResult]?}}

@endpoint POST /
@required {SubnetChangeProtection: bool}
@optional {UpdateToken: str, FirewallArn: str, FirewallName: str}
@returns(200) {UpdateToken: str?, FirewallArn: str?, FirewallName: str?, SubnetChangeProtection: bool?}

@endpoint POST /
@required {TLSInspectionConfiguration: TLSInspectionConfiguration, UpdateToken: str}
@optional {TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str, Description: str, EncryptionConfiguration: EncryptionConfiguration}
@returns(200) {UpdateToken: str, TLSInspectionConfigurationResponse: TLSInspectionConfigurationResponse{TLSInspectionConfigurationArn: str, TLSInspectionConfigurationName: str, TLSInspectionConfigurationId: str, TLSInspectionConfigurationStatus: str?, Description: str?, Tags: [Tag]?, LastModifiedTime: str(timestamp)?, NumberOfAssociations: int?, EncryptionConfiguration: EncryptionConfiguration?{KeyId: str?, Type: str}, Certificates: [TlsCertificateData]?, CertificateAuthority: TlsCertificateData?{CertificateArn: str?, CertificateSerial: str?, Status: str?, StatusMessage: str?}}}

@end
