@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Shield
@version 2016-06-02
@auth AWS SigV4
@endpoints 36
@hint download_for_search
@toc root(36)

@endpoint POST /
@required {LogBucket: str}

@endpoint POST /
@required {RoleArn: str}

@endpoint POST /
@required {ProtectionId: str, HealthCheckArn: str}

@endpoint POST /
@required {EmergencyContactList: [EmergencyContact]}

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

@endpoint POST /
@required {ProtectionGroupId: str, Aggregation: str, Pattern: str}
@optional {ResourceType: str, Members: [str], Tags: [Tag]}

@endpoint POST /

@endpoint POST /
@required {ProtectionId: str}

@endpoint POST /
@required {ProtectionGroupId: str}

@endpoint POST /

@endpoint POST /
@required {AttackId: str}
@returns(200) {Attack: AttackDetail?{AttackId: str?, ResourceArn: str?, SubResources: [SubResourceSummary]?, StartTime: str(timestamp)?, EndTime: str(timestamp)?, AttackCounters: [SummarizedCounter]?, AttackProperties: [AttackProperty]?, Mitigations: [Mitigation]?}}

@endpoint POST /
@returns(200) {TimeRange: TimeRange{FromInclusive: str(timestamp)?, ToExclusive: str(timestamp)?}, DataItems: [AttackStatisticsDataItem]}

@endpoint POST /
@returns(200) {RoleArn: str?, LogBucketList: [str]?}

@endpoint POST /
@returns(200) {EmergencyContactList: [EmergencyContact]?}

@endpoint POST /
@optional {ProtectionId: str, ResourceArn: str}
@returns(200) {Protection: Protection?{Id: str?, Name: str?, ResourceArn: str?, HealthCheckIds: [str]?, ProtectionArn: str?, ApplicationLayerAutomaticResponseConfiguration: ApplicationLayerAutomaticResponseConfiguration?{Status: str, Action: ResponseAction{Block: BlockAction?, Count: CountAction?}}}}

@endpoint POST /
@required {ProtectionGroupId: str}
@returns(200) {ProtectionGroup: ProtectionGroup{ProtectionGroupId: str, Aggregation: str, Pattern: str, ResourceType: str?, Members: [str], ProtectionGroupArn: str?}}

@endpoint POST /
@returns(200) {Subscription: Subscription?{StartTime: str(timestamp)?, EndTime: str(timestamp)?, TimeCommitmentInSeconds: int(i64)?, AutoRenew: str?, Limits: [Limit]?, ProactiveEngagementStatus: str?, SubscriptionLimits: SubscriptionLimits{ProtectionLimits: ProtectionLimits{ProtectedResourceTypeLimits: [Limit]}, ProtectionGroupLimits: ProtectionGroupLimits{MaxProtectionGroups: int(i64), PatternTypeLimits: ProtectionGroupPatternTypeLimits}}, SubscriptionArn: str?}}

@endpoint POST /
@required {ResourceArn: str}

@endpoint POST /

@endpoint POST /
@required {LogBucket: str}

@endpoint POST /

@endpoint POST /
@required {ProtectionId: str, HealthCheckArn: str}

@endpoint POST /
@required {ResourceArn: str, Action: ResponseAction}

@endpoint POST /

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

@endpoint POST /
@optional {ResourceArns: [str], StartTime: TimeRange, EndTime: TimeRange, NextToken: str, MaxResults: int}
@returns(200) {AttackSummaries: [AttackSummary]?, NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int, InclusionFilters: InclusionProtectionGroupFilters}
@returns(200) {ProtectionGroups: [ProtectionGroup], NextToken: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int, InclusionFilters: InclusionProtectionFilters}
@returns(200) {Protections: [Protection]?, NextToken: str?}

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

@endpoint POST /
@required {ResourceARN: str}
@returns(200) {Tags: [Tag]?}

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

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

@endpoint POST /
@required {ResourceArn: str, Action: ResponseAction}

@endpoint POST /
@optional {EmergencyContactList: [EmergencyContact]}

@endpoint POST /
@required {ProtectionGroupId: str, Aggregation: str, Pattern: str}
@optional {ResourceType: str, Members: [str]}

@endpoint POST /
@optional {AutoRenew: str}

@end
