@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS WAF
@version 2015-08-24
@auth AWS SigV4
@endpoints 77
@hint download_for_search
@toc root(77)

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {ByteMatchSet: ByteMatchSet?{ByteMatchSetId: str, Name: str?, ByteMatchTuples: [ByteMatchTuple]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {GeoMatchSet: GeoMatchSet?{GeoMatchSetId: str, Name: str?, GeoMatchConstraints: [GeoMatchConstraint]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {IPSet: IPSet?{IPSetId: str, Name: str?, IPSetDescriptors: [IPSetDescriptor]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, MetricName: str, RateKey: str, RateLimit: int(i64), ChangeToken: str}
@optional {Tags: [Tag]}
@returns(200) {Rule: RateBasedRule?{RuleId: str, Name: str?, MetricName: str?, MatchPredicates: [Predicate], RateKey: str, RateLimit: int(i64)}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {RegexMatchSet: RegexMatchSet?{RegexMatchSetId: str?, Name: str?, RegexMatchTuples: [RegexMatchTuple]?}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {RegexPatternSet: RegexPatternSet?{RegexPatternSetId: str, Name: str?, RegexPatternStrings: [str]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, MetricName: str, ChangeToken: str}
@optional {Tags: [Tag]}
@returns(200) {Rule: Rule?{RuleId: str, Name: str?, MetricName: str?, Predicates: [Predicate]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, MetricName: str, ChangeToken: str}
@optional {Tags: [Tag]}
@returns(200) {RuleGroup: RuleGroup?{RuleGroupId: str, Name: str?, MetricName: str?}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {SizeConstraintSet: SizeConstraintSet?{SizeConstraintSetId: str, Name: str?, SizeConstraints: [SizeConstraint]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {SqlInjectionMatchSet: SqlInjectionMatchSet?{SqlInjectionMatchSetId: str, Name: str?, SqlInjectionMatchTuples: [SqlInjectionMatchTuple]}, ChangeToken: str?}

@endpoint POST /
@required {Name: str, MetricName: str, DefaultAction: WafAction, ChangeToken: str}
@optional {Tags: [Tag]}
@returns(200) {WebACL: WebACL?{WebACLId: str, Name: str?, MetricName: str?, DefaultAction: WafAction{Type: str}, Rules: [ActivatedRule], WebACLArn: str?}, ChangeToken: str?}

@endpoint POST /
@required {WebACLId: str, S3BucketName: str, IgnoreUnsupportedType: bool}
@returns(200) {S3ObjectUrl: str}

@endpoint POST /
@required {Name: str, ChangeToken: str}
@returns(200) {XssMatchSet: XssMatchSet?{XssMatchSetId: str, Name: str?, XssMatchTuples: [XssMatchTuple]}, ChangeToken: str?}

@endpoint POST /
@required {ByteMatchSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {GeoMatchSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {IPSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {ResourceArn: str}

@endpoint POST /
@required {ResourceArn: str}

@endpoint POST /
@required {RuleId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RegexMatchSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RegexPatternSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RuleId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RuleGroupId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {SizeConstraintSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {SqlInjectionMatchSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {WebACLId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {XssMatchSetId: str, ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {ByteMatchSetId: str}
@returns(200) {ByteMatchSet: ByteMatchSet?{ByteMatchSetId: str, Name: str?, ByteMatchTuples: [ByteMatchTuple]}}

@endpoint POST /
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {ChangeToken: str}
@returns(200) {ChangeTokenStatus: str?}

@endpoint POST /
@required {GeoMatchSetId: str}
@returns(200) {GeoMatchSet: GeoMatchSet?{GeoMatchSetId: str, Name: str?, GeoMatchConstraints: [GeoMatchConstraint]}}

@endpoint POST /
@required {IPSetId: str}
@returns(200) {IPSet: IPSet?{IPSetId: str, Name: str?, IPSetDescriptors: [IPSetDescriptor]}}

@endpoint POST /
@required {ResourceArn: str}
@returns(200) {LoggingConfiguration: LoggingConfiguration?{ResourceArn: str, LogDestinationConfigs: [str], RedactedFields: [FieldToMatch]?}}

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

@endpoint POST /
@required {RuleId: str}
@returns(200) {Rule: RateBasedRule?{RuleId: str, Name: str?, MetricName: str?, MatchPredicates: [Predicate], RateKey: str, RateLimit: int(i64)}}

@endpoint POST /
@required {RuleId: str}
@optional {NextMarker: str}
@returns(200) {ManagedKeys: [str]?, NextMarker: str?}

@endpoint POST /
@required {RegexMatchSetId: str}
@returns(200) {RegexMatchSet: RegexMatchSet?{RegexMatchSetId: str?, Name: str?, RegexMatchTuples: [RegexMatchTuple]?}}

@endpoint POST /
@required {RegexPatternSetId: str}
@returns(200) {RegexPatternSet: RegexPatternSet?{RegexPatternSetId: str, Name: str?, RegexPatternStrings: [str]}}

@endpoint POST /
@required {RuleId: str}
@returns(200) {Rule: Rule?{RuleId: str, Name: str?, MetricName: str?, Predicates: [Predicate]}}

@endpoint POST /
@required {RuleGroupId: str}
@returns(200) {RuleGroup: RuleGroup?{RuleGroupId: str, Name: str?, MetricName: str?}}

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

@endpoint POST /
@required {SizeConstraintSetId: str}
@returns(200) {SizeConstraintSet: SizeConstraintSet?{SizeConstraintSetId: str, Name: str?, SizeConstraints: [SizeConstraint]}}

@endpoint POST /
@required {SqlInjectionMatchSetId: str}
@returns(200) {SqlInjectionMatchSet: SqlInjectionMatchSet?{SqlInjectionMatchSetId: str, Name: str?, SqlInjectionMatchTuples: [SqlInjectionMatchTuple]}}

@endpoint POST /
@required {WebACLId: str}
@returns(200) {WebACL: WebACL?{WebACLId: str, Name: str?, MetricName: str?, DefaultAction: WafAction{Type: str}, Rules: [ActivatedRule], WebACLArn: str?}}

@endpoint POST /
@required {XssMatchSetId: str}
@returns(200) {XssMatchSet: XssMatchSet?{XssMatchSetId: str, Name: str?, XssMatchTuples: [XssMatchTuple]}}

@endpoint POST /
@optional {RuleGroupId: str, NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, ActivatedRules: [ActivatedRule]?}

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, ByteMatchSets: [ByteMatchSetSummary]?}

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, GeoMatchSets: [GeoMatchSetSummary]?}

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

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

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, Rules: [RuleSummary]?}

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, RegexMatchSets: [RegexMatchSetSummary]?}

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

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

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, Rules: [RuleSummary]?}

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, SizeConstraintSets: [SizeConstraintSetSummary]?}

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, SqlInjectionMatchSets: [SqlInjectionMatchSetSummary]?}

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

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

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

@endpoint POST /
@optional {NextMarker: str, Limit: int}
@returns(200) {NextMarker: str?, XssMatchSets: [XssMatchSetSummary]?}

@endpoint POST /
@required {LoggingConfiguration: LoggingConfiguration}
@returns(200) {LoggingConfiguration: LoggingConfiguration?{ResourceArn: str, LogDestinationConfigs: [str], RedactedFields: [FieldToMatch]?}}

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

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

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

@endpoint POST /
@required {ByteMatchSetId: str, ChangeToken: str, Updates: [ByteMatchSetUpdate]}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {GeoMatchSetId: str, ChangeToken: str, Updates: [GeoMatchSetUpdate]}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {IPSetId: str, ChangeToken: str, Updates: [IPSetUpdate]}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RuleId: str, ChangeToken: str, Updates: [RuleUpdate], RateLimit: int(i64)}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RegexMatchSetId: str, Updates: [RegexMatchSetUpdate], ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RegexPatternSetId: str, Updates: [RegexPatternSetUpdate], ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RuleId: str, ChangeToken: str, Updates: [RuleUpdate]}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {RuleGroupId: str, Updates: [RuleGroupUpdate], ChangeToken: str}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {SizeConstraintSetId: str, ChangeToken: str, Updates: [SizeConstraintSetUpdate]}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {SqlInjectionMatchSetId: str, ChangeToken: str, Updates: [SqlInjectionMatchSetUpdate]}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {WebACLId: str, ChangeToken: str}
@optional {Updates: [WebACLUpdate], DefaultAction: WafAction}
@returns(200) {ChangeToken: str?}

@endpoint POST /
@required {XssMatchSetId: str, ChangeToken: str, Updates: [XssMatchSetUpdate]}
@returns(200) {ChangeToken: str?}

@end
