@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS WAFV2
@version 2019-07-29
@auth AWS SigV4
@endpoints 54
@hint download_for_search
@toc root(54)

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

@endpoint POST /
@required {Scope: str, Rules: [Rule]}
@returns(200) {Capacity: int(i64)?}

@endpoint POST /
@required {Scope: str, TokenDomains: [str]}
@returns(200) {APIKey: str?}

@endpoint POST /
@required {Name: str, Scope: str, IPAddressVersion: str, Addresses: [str]}
@optional {Description: str, Tags: [Tag]}
@returns(200) {Summary: IPSetSummary?{Name: str?, Id: str?, Description: str?, LockToken: str?, ARN: str?}}

@endpoint POST /
@required {Name: str, Scope: str, RegularExpressionList: [Regex]}
@optional {Description: str, Tags: [Tag]}
@returns(200) {Summary: RegexPatternSetSummary?{Name: str?, Id: str?, Description: str?, LockToken: str?, ARN: str?}}

@endpoint POST /
@required {Name: str, Scope: str, Capacity: int(i64), VisibilityConfig: VisibilityConfig}
@optional {Description: str, Rules: [Rule], Tags: [Tag], CustomResponseBodies: map<str,CustomResponseBody>}
@returns(200) {Summary: RuleGroupSummary?{Name: str?, Id: str?, Description: str?, LockToken: str?, ARN: str?}}

@endpoint POST /
@required {Name: str, Scope: str, DefaultAction: DefaultAction, VisibilityConfig: VisibilityConfig}
@optional {Description: str, Rules: [Rule], Tags: [Tag], CustomResponseBodies: map<str,CustomResponseBody>, CaptchaConfig: CaptchaConfig, ChallengeConfig: ChallengeConfig, TokenDomains: [str], AssociationConfig: AssociationConfig}
@returns(200) {Summary: WebACLSummary?{Name: str?, Id: str?, Description: str?, LockToken: str?, ARN: str?}}

@endpoint POST /
@required {Scope: str, APIKey: str}

@endpoint POST /
@required {WebACLArn: str, WebACLLockToken: str}
@returns(200) {NextWebACLLockToken: str?}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, LockToken: str}

@endpoint POST /
@required {ResourceArn: str}
@optional {LogType: str, LogScope: str}

@endpoint POST /
@required {ResourceArn: str}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, LockToken: str}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, LockToken: str}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, LockToken: str}

@endpoint POST /
@required {Scope: str}
@returns(200) {ManagedProducts: [ManagedProductDescriptor]?}

@endpoint POST /
@required {VendorName: str, Scope: str}
@returns(200) {ManagedProducts: [ManagedProductDescriptor]?}

@endpoint POST /
@required {VendorName: str, Name: str, Scope: str}
@optional {VersionName: str}
@returns(200) {VersionName: str?, SnsTopicArn: str?, Capacity: int(i64)?, Rules: [RuleSummary]?, LabelNamespace: str?, AvailableLabels: [LabelSummary]?, ConsumedLabels: [LabelSummary]?}

@endpoint POST /
@required {ResourceArn: str}

@endpoint POST /
@required {Platform: str, ReleaseVersion: str}
@returns(200) {Url: str?}

@endpoint POST /
@required {Scope: str, APIKey: str}
@returns(200) {TokenDomains: [str]?, CreationTimestamp: str(timestamp)?}

@endpoint POST /
@required {Name: str, Scope: str, Id: str}
@returns(200) {IPSet: IPSet?{Name: str, Id: str, ARN: str, Description: str?, IPAddressVersion: str, Addresses: [str]}, LockToken: str?}

@endpoint POST /
@required {ResourceArn: str}
@optional {LogType: str, LogScope: str}
@returns(200) {LoggingConfiguration: LoggingConfiguration?{ResourceArn: str, LogDestinationConfigs: [str], RedactedFields: [FieldToMatch]?, ManagedByFirewallManager: bool?, LoggingFilter: LoggingFilter?{Filters: [Filter], DefaultBehavior: str}, LogType: str?, LogScope: str?}}

@endpoint POST /
@required {Name: str, Scope: str, Id: str}
@returns(200) {ManagedRuleSet: ManagedRuleSet?{Name: str, Id: str, ARN: str, Description: str?, PublishedVersions: map<str,ManagedRuleSetVersion>?, RecommendedVersion: str?, LabelNamespace: str?}, LockToken: str?}

@endpoint POST /
@required {Platform: str, ReleaseVersion: str}
@returns(200) {MobileSdkRelease: MobileSdkRelease?{ReleaseVersion: str?, Timestamp: str(timestamp)?, ReleaseNotes: str?, Tags: [Tag]?}}

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

@endpoint POST /
@required {Scope: str, WebACLName: str, WebACLId: str, RuleName: str}
@optional {RuleGroupRuleName: str}
@returns(200) {ManagedKeysIPV4: RateBasedStatementManagedKeysIPSet?{IPAddressVersion: str?, Addresses: [str]?}, ManagedKeysIPV6: RateBasedStatementManagedKeysIPSet?{IPAddressVersion: str?, Addresses: [str]?}}

@endpoint POST /
@required {Name: str, Scope: str, Id: str}
@returns(200) {RegexPatternSet: RegexPatternSet?{Name: str?, Id: str?, ARN: str?, Description: str?, RegularExpressionList: [Regex]?}, LockToken: str?}

@endpoint POST /
@optional {Name: str, Scope: str, Id: str, ARN: str}
@returns(200) {RuleGroup: RuleGroup?{Name: str, Id: str, Capacity: int(i64), ARN: str, Description: str?, Rules: [Rule]?, VisibilityConfig: VisibilityConfig{SampledRequestsEnabled: bool, CloudWatchMetricsEnabled: bool, MetricName: str}, LabelNamespace: str?, CustomResponseBodies: map<str,CustomResponseBody>?, AvailableLabels: [LabelSummary]?, ConsumedLabels: [LabelSummary]?}, LockToken: str?}

@endpoint POST /
@required {WebAclArn: str, RuleMetricName: str, Scope: str, TimeWindow: TimeWindow, MaxItems: int(i64)}
@returns(200) {SampledRequests: [SampledHTTPRequest]?, PopulationSize: int(i64)?, TimeWindow: TimeWindow?{StartTime: str(timestamp), EndTime: str(timestamp)}}

@endpoint POST /
@required {Name: str, Scope: str, Id: str}
@returns(200) {WebACL: WebACL?{Name: str, Id: str, ARN: str, DefaultAction: DefaultAction{Block: BlockAction?{CustomResponse: CustomResponse?}, Allow: AllowAction?{CustomRequestHandling: CustomRequestHandling?}}, Description: str?, Rules: [Rule]?, VisibilityConfig: VisibilityConfig{SampledRequestsEnabled: bool, CloudWatchMetricsEnabled: bool, MetricName: str}, Capacity: int(i64)?, PreProcessFirewallManagerRuleGroups: [FirewallManagerRuleGroup]?, PostProcessFirewallManagerRuleGroups: [FirewallManagerRuleGroup]?, ManagedByFirewallManager: bool?, LabelNamespace: str?, CustomResponseBodies: map<str,CustomResponseBody>?, CaptchaConfig: CaptchaConfig?{ImmunityTimeProperty: ImmunityTimeProperty?{ImmunityTime: int(i64)}}, ChallengeConfig: ChallengeConfig?{ImmunityTimeProperty: ImmunityTimeProperty?{ImmunityTime: int(i64)}}, TokenDomains: [str]?, AssociationConfig: AssociationConfig?{RequestBody: map<str,RequestBodyAssociatedResourceTypeConfig>?}}, LockToken: str?, ApplicationIntegrationURL: str?}

@endpoint POST /
@required {ResourceArn: str}
@returns(200) {WebACL: WebACL?{Name: str, Id: str, ARN: str, DefaultAction: DefaultAction{Block: BlockAction?{CustomResponse: CustomResponse?}, Allow: AllowAction?{CustomRequestHandling: CustomRequestHandling?}}, Description: str?, Rules: [Rule]?, VisibilityConfig: VisibilityConfig{SampledRequestsEnabled: bool, CloudWatchMetricsEnabled: bool, MetricName: str}, Capacity: int(i64)?, PreProcessFirewallManagerRuleGroups: [FirewallManagerRuleGroup]?, PostProcessFirewallManagerRuleGroups: [FirewallManagerRuleGroup]?, ManagedByFirewallManager: bool?, LabelNamespace: str?, CustomResponseBodies: map<str,CustomResponseBody>?, CaptchaConfig: CaptchaConfig?{ImmunityTimeProperty: ImmunityTimeProperty?{ImmunityTime: int(i64)}}, ChallengeConfig: ChallengeConfig?{ImmunityTimeProperty: ImmunityTimeProperty?{ImmunityTime: int(i64)}}, TokenDomains: [str]?, AssociationConfig: AssociationConfig?{RequestBody: map<str,RequestBodyAssociatedResourceTypeConfig>?}}}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, APIKeySummaries: [APIKeySummary]?, ApplicationIntegrationURL: str?}

@endpoint POST /
@required {VendorName: str, Name: str, Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, Versions: [ManagedRuleGroupVersion]?, CurrentDefaultVersion: str?}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, ManagedRuleGroups: [ManagedRuleGroupSummary]?}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, IPSets: [IPSetSummary]?}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int, LogScope: str}
@returns(200) {LoggingConfigurations: [LoggingConfiguration]?, NextMarker: str?}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, ManagedRuleSets: [ManagedRuleSetSummary]?}

@endpoint POST /
@required {Platform: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {ReleaseSummaries: [ReleaseSummary]?, NextMarker: str?}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, RegexPatternSets: [RegexPatternSetSummary]?}

@endpoint POST /
@required {WebACLArn: str}
@optional {ResourceType: str}
@returns(200) {ResourceArns: [str]?}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, RuleGroups: [RuleGroupSummary]?}

@endpoint POST /
@required {ResourceARN: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, TagInfoForResource: TagInfoForResource?{ResourceARN: str?, TagList: [Tag]?}}

@endpoint POST /
@required {Scope: str}
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, WebACLs: [WebACLSummary]?}

@endpoint POST /
@required {LoggingConfiguration: LoggingConfiguration}
@returns(200) {LoggingConfiguration: LoggingConfiguration?{ResourceArn: str, LogDestinationConfigs: [str], RedactedFields: [FieldToMatch]?, ManagedByFirewallManager: bool?, LoggingFilter: LoggingFilter?{Filters: [Filter], DefaultBehavior: str}, LogType: str?, LogScope: str?}}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, LockToken: str}
@optional {RecommendedVersion: str, VersionsToPublish: map<str,VersionToPublish>}
@returns(200) {NextLockToken: str?}

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

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

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

@endpoint POST /
@required {Name: str, Scope: str, Id: str, Addresses: [str], LockToken: str}
@optional {Description: str}
@returns(200) {NextLockToken: str?}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, LockToken: str, VersionToExpire: str, ExpiryTimestamp: str(timestamp)}
@returns(200) {ExpiringVersion: str?, ExpiryTimestamp: str(timestamp)?, NextLockToken: str?}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, RegularExpressionList: [Regex], LockToken: str}
@optional {Description: str}
@returns(200) {NextLockToken: str?}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, VisibilityConfig: VisibilityConfig, LockToken: str}
@optional {Description: str, Rules: [Rule], CustomResponseBodies: map<str,CustomResponseBody>}
@returns(200) {NextLockToken: str?}

@endpoint POST /
@required {Name: str, Scope: str, Id: str, DefaultAction: DefaultAction, VisibilityConfig: VisibilityConfig, LockToken: str}
@optional {Description: str, Rules: [Rule], CustomResponseBodies: map<str,CustomResponseBody>, CaptchaConfig: CaptchaConfig, ChallengeConfig: ChallengeConfig, TokenDomains: [str], AssociationConfig: AssociationConfig}
@returns(200) {NextLockToken: str?}

@end
