580 lines
14 KiB
JSON
580 lines
14 KiB
JSON
{
|
|
"version":"2.0",
|
|
"metadata":{
|
|
"apiVersion":"2016-06-02",
|
|
"endpointPrefix":"shield",
|
|
"jsonVersion":"1.1",
|
|
"protocol":"json",
|
|
"serviceAbbreviation":"AWS Shield",
|
|
"serviceFullName":"AWS Shield",
|
|
"signatureVersion":"v4",
|
|
"targetPrefix":"AWSShield_20160616",
|
|
"uid":"shield-2016-06-02"
|
|
},
|
|
"operations":{
|
|
"CreateProtection":{
|
|
"name":"CreateProtection",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"CreateProtectionRequest"},
|
|
"output":{"shape":"CreateProtectionResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"InvalidResourceException"},
|
|
{"shape":"InvalidOperationException"},
|
|
{"shape":"LimitsExceededException"},
|
|
{"shape":"ResourceAlreadyExistsException"},
|
|
{"shape":"OptimisticLockException"},
|
|
{"shape":"ResourceNotFoundException"}
|
|
]
|
|
},
|
|
"CreateSubscription":{
|
|
"name":"CreateSubscription",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"CreateSubscriptionRequest"},
|
|
"output":{"shape":"CreateSubscriptionResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"ResourceAlreadyExistsException"}
|
|
]
|
|
},
|
|
"DeleteProtection":{
|
|
"name":"DeleteProtection",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"DeleteProtectionRequest"},
|
|
"output":{"shape":"DeleteProtectionResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"ResourceNotFoundException"},
|
|
{"shape":"OptimisticLockException"}
|
|
]
|
|
},
|
|
"DeleteSubscription":{
|
|
"name":"DeleteSubscription",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"DeleteSubscriptionRequest"},
|
|
"output":{"shape":"DeleteSubscriptionResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"LockedSubscriptionException"},
|
|
{"shape":"ResourceNotFoundException"}
|
|
]
|
|
},
|
|
"DescribeAttack":{
|
|
"name":"DescribeAttack",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"DescribeAttackRequest"},
|
|
"output":{"shape":"DescribeAttackResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"InvalidParameterException"}
|
|
]
|
|
},
|
|
"DescribeProtection":{
|
|
"name":"DescribeProtection",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"DescribeProtectionRequest"},
|
|
"output":{"shape":"DescribeProtectionResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"ResourceNotFoundException"}
|
|
]
|
|
},
|
|
"DescribeSubscription":{
|
|
"name":"DescribeSubscription",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"DescribeSubscriptionRequest"},
|
|
"output":{"shape":"DescribeSubscriptionResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"ResourceNotFoundException"}
|
|
]
|
|
},
|
|
"GetSubscriptionState":{
|
|
"name":"GetSubscriptionState",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"GetSubscriptionStateRequest"},
|
|
"output":{"shape":"GetSubscriptionStateResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"}
|
|
]
|
|
},
|
|
"ListAttacks":{
|
|
"name":"ListAttacks",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"ListAttacksRequest"},
|
|
"output":{"shape":"ListAttacksResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"InvalidParameterException"},
|
|
{"shape":"InvalidOperationException"}
|
|
]
|
|
},
|
|
"ListProtections":{
|
|
"name":"ListProtections",
|
|
"http":{
|
|
"method":"POST",
|
|
"requestUri":"/"
|
|
},
|
|
"input":{"shape":"ListProtectionsRequest"},
|
|
"output":{"shape":"ListProtectionsResponse"},
|
|
"errors":[
|
|
{"shape":"InternalErrorException"},
|
|
{"shape":"ResourceNotFoundException"}
|
|
]
|
|
}
|
|
},
|
|
"shapes":{
|
|
"AttackDetail":{
|
|
"type":"structure",
|
|
"members":{
|
|
"AttackId":{"shape":"AttackId"},
|
|
"ResourceArn":{"shape":"ResourceArn"},
|
|
"SubResources":{"shape":"SubResourceSummaryList"},
|
|
"StartTime":{"shape":"AttackTimestamp"},
|
|
"EndTime":{"shape":"AttackTimestamp"},
|
|
"AttackCounters":{"shape":"SummarizedCounterList"},
|
|
"AttackProperties":{"shape":"AttackProperties"},
|
|
"Mitigations":{"shape":"MitigationList"}
|
|
}
|
|
},
|
|
"AttackId":{
|
|
"type":"string",
|
|
"max":128,
|
|
"min":1,
|
|
"pattern":"[a-zA-Z0-9\\\\-]*"
|
|
},
|
|
"AttackLayer":{
|
|
"type":"string",
|
|
"enum":[
|
|
"NETWORK",
|
|
"APPLICATION"
|
|
]
|
|
},
|
|
"AttackProperties":{
|
|
"type":"list",
|
|
"member":{"shape":"AttackProperty"}
|
|
},
|
|
"AttackProperty":{
|
|
"type":"structure",
|
|
"members":{
|
|
"AttackLayer":{"shape":"AttackLayer"},
|
|
"AttackPropertyIdentifier":{"shape":"AttackPropertyIdentifier"},
|
|
"TopContributors":{"shape":"TopContributors"},
|
|
"Unit":{"shape":"Unit"},
|
|
"Total":{"shape":"Long"}
|
|
}
|
|
},
|
|
"AttackPropertyIdentifier":{
|
|
"type":"string",
|
|
"enum":[
|
|
"DESTINATION_URL",
|
|
"REFERRER",
|
|
"SOURCE_ASN",
|
|
"SOURCE_COUNTRY",
|
|
"SOURCE_IP_ADDRESS",
|
|
"SOURCE_USER_AGENT"
|
|
]
|
|
},
|
|
"AttackSummaries":{
|
|
"type":"list",
|
|
"member":{"shape":"AttackSummary"}
|
|
},
|
|
"AttackSummary":{
|
|
"type":"structure",
|
|
"members":{
|
|
"AttackId":{"shape":"String"},
|
|
"ResourceArn":{"shape":"String"},
|
|
"StartTime":{"shape":"AttackTimestamp"},
|
|
"EndTime":{"shape":"AttackTimestamp"},
|
|
"AttackVectors":{"shape":"AttackVectorDescriptionList"}
|
|
}
|
|
},
|
|
"AttackTimestamp":{"type":"timestamp"},
|
|
"AttackVectorDescription":{
|
|
"type":"structure",
|
|
"required":["VectorType"],
|
|
"members":{
|
|
"VectorType":{"shape":"String"}
|
|
}
|
|
},
|
|
"AttackVectorDescriptionList":{
|
|
"type":"list",
|
|
"member":{"shape":"AttackVectorDescription"}
|
|
},
|
|
"Contributor":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Name":{"shape":"String"},
|
|
"Value":{"shape":"Long"}
|
|
}
|
|
},
|
|
"CreateProtectionRequest":{
|
|
"type":"structure",
|
|
"required":[
|
|
"Name",
|
|
"ResourceArn"
|
|
],
|
|
"members":{
|
|
"Name":{"shape":"ProtectionName"},
|
|
"ResourceArn":{"shape":"ResourceArn"}
|
|
}
|
|
},
|
|
"CreateProtectionResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
"ProtectionId":{"shape":"ProtectionId"}
|
|
}
|
|
},
|
|
"CreateSubscriptionRequest":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"CreateSubscriptionResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"DeleteProtectionRequest":{
|
|
"type":"structure",
|
|
"required":["ProtectionId"],
|
|
"members":{
|
|
"ProtectionId":{"shape":"ProtectionId"}
|
|
}
|
|
},
|
|
"DeleteProtectionResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"DeleteSubscriptionRequest":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"DeleteSubscriptionResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"DescribeAttackRequest":{
|
|
"type":"structure",
|
|
"required":["AttackId"],
|
|
"members":{
|
|
"AttackId":{"shape":"AttackId"}
|
|
}
|
|
},
|
|
"DescribeAttackResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Attack":{"shape":"AttackDetail"}
|
|
}
|
|
},
|
|
"DescribeProtectionRequest":{
|
|
"type":"structure",
|
|
"required":["ProtectionId"],
|
|
"members":{
|
|
"ProtectionId":{"shape":"ProtectionId"}
|
|
}
|
|
},
|
|
"DescribeProtectionResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Protection":{"shape":"Protection"}
|
|
}
|
|
},
|
|
"DescribeSubscriptionRequest":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"DescribeSubscriptionResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Subscription":{"shape":"Subscription"}
|
|
}
|
|
},
|
|
"Double":{"type":"double"},
|
|
"DurationInSeconds":{
|
|
"type":"long",
|
|
"min":0
|
|
},
|
|
"GetSubscriptionStateRequest":{
|
|
"type":"structure",
|
|
"members":{
|
|
}
|
|
},
|
|
"GetSubscriptionStateResponse":{
|
|
"type":"structure",
|
|
"required":["SubscriptionState"],
|
|
"members":{
|
|
"SubscriptionState":{"shape":"SubscriptionState"}
|
|
}
|
|
},
|
|
"Integer":{"type":"integer"},
|
|
"InternalErrorException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true,
|
|
"fault":true
|
|
},
|
|
"InvalidOperationException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"InvalidParameterException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"InvalidResourceException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"LimitNumber":{"type":"long"},
|
|
"LimitType":{"type":"string"},
|
|
"LimitsExceededException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"},
|
|
"Type":{"shape":"LimitType"},
|
|
"Limit":{"shape":"LimitNumber"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"ListAttacksRequest":{
|
|
"type":"structure",
|
|
"members":{
|
|
"ResourceArns":{"shape":"ResourceArnFilterList"},
|
|
"StartTime":{"shape":"TimeRange"},
|
|
"EndTime":{"shape":"TimeRange"},
|
|
"NextToken":{"shape":"Token"},
|
|
"MaxResults":{"shape":"MaxResults"}
|
|
}
|
|
},
|
|
"ListAttacksResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
"AttackSummaries":{"shape":"AttackSummaries"},
|
|
"NextToken":{"shape":"Token"}
|
|
}
|
|
},
|
|
"ListProtectionsRequest":{
|
|
"type":"structure",
|
|
"members":{
|
|
"NextToken":{"shape":"Token"},
|
|
"MaxResults":{"shape":"MaxResults"}
|
|
}
|
|
},
|
|
"ListProtectionsResponse":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Protections":{"shape":"Protections"},
|
|
"NextToken":{"shape":"Token"}
|
|
}
|
|
},
|
|
"LockedSubscriptionException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"Long":{"type":"long"},
|
|
"MaxResults":{
|
|
"type":"integer",
|
|
"box":true,
|
|
"max":10000,
|
|
"min":0
|
|
},
|
|
"Mitigation":{
|
|
"type":"structure",
|
|
"members":{
|
|
"MitigationName":{"shape":"String"}
|
|
}
|
|
},
|
|
"MitigationList":{
|
|
"type":"list",
|
|
"member":{"shape":"Mitigation"}
|
|
},
|
|
"OptimisticLockException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"Protection":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Id":{"shape":"ProtectionId"},
|
|
"Name":{"shape":"ProtectionName"},
|
|
"ResourceArn":{"shape":"ResourceArn"}
|
|
}
|
|
},
|
|
"ProtectionId":{
|
|
"type":"string",
|
|
"max":36,
|
|
"min":1,
|
|
"pattern":"[a-zA-Z0-9\\\\-]*"
|
|
},
|
|
"ProtectionName":{
|
|
"type":"string",
|
|
"max":128,
|
|
"min":1,
|
|
"pattern":"[ a-zA-Z0-9_\\\\.\\\\-]*"
|
|
},
|
|
"Protections":{
|
|
"type":"list",
|
|
"member":{"shape":"Protection"}
|
|
},
|
|
"ResourceAlreadyExistsException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"ResourceArn":{
|
|
"type":"string",
|
|
"min":1
|
|
},
|
|
"ResourceArnFilterList":{
|
|
"type":"list",
|
|
"member":{"shape":"ResourceArn"}
|
|
},
|
|
"ResourceNotFoundException":{
|
|
"type":"structure",
|
|
"members":{
|
|
"message":{"shape":"errorMessage"}
|
|
},
|
|
"exception":true
|
|
},
|
|
"String":{"type":"string"},
|
|
"SubResourceSummary":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Type":{"shape":"SubResourceType"},
|
|
"Id":{"shape":"String"},
|
|
"AttackVectors":{"shape":"SummarizedAttackVectorList"},
|
|
"Counters":{"shape":"SummarizedCounterList"}
|
|
}
|
|
},
|
|
"SubResourceSummaryList":{
|
|
"type":"list",
|
|
"member":{"shape":"SubResourceSummary"}
|
|
},
|
|
"SubResourceType":{
|
|
"type":"string",
|
|
"enum":[
|
|
"IP",
|
|
"URL"
|
|
]
|
|
},
|
|
"Subscription":{
|
|
"type":"structure",
|
|
"members":{
|
|
"StartTime":{"shape":"Timestamp"},
|
|
"TimeCommitmentInSeconds":{"shape":"DurationInSeconds"}
|
|
}
|
|
},
|
|
"SubscriptionState":{
|
|
"type":"string",
|
|
"enum":[
|
|
"ACTIVE",
|
|
"INACTIVE"
|
|
]
|
|
},
|
|
"SummarizedAttackVector":{
|
|
"type":"structure",
|
|
"required":["VectorType"],
|
|
"members":{
|
|
"VectorType":{"shape":"String"},
|
|
"VectorCounters":{"shape":"SummarizedCounterList"}
|
|
}
|
|
},
|
|
"SummarizedAttackVectorList":{
|
|
"type":"list",
|
|
"member":{"shape":"SummarizedAttackVector"}
|
|
},
|
|
"SummarizedCounter":{
|
|
"type":"structure",
|
|
"members":{
|
|
"Name":{"shape":"String"},
|
|
"Max":{"shape":"Double"},
|
|
"Average":{"shape":"Double"},
|
|
"Sum":{"shape":"Double"},
|
|
"N":{"shape":"Integer"},
|
|
"Unit":{"shape":"String"}
|
|
}
|
|
},
|
|
"SummarizedCounterList":{
|
|
"type":"list",
|
|
"member":{"shape":"SummarizedCounter"}
|
|
},
|
|
"TimeRange":{
|
|
"type":"structure",
|
|
"members":{
|
|
"FromInclusive":{"shape":"AttackTimestamp"},
|
|
"ToExclusive":{"shape":"AttackTimestamp"}
|
|
}
|
|
},
|
|
"Timestamp":{"type":"timestamp"},
|
|
"Token":{
|
|
"type":"string",
|
|
"min":1
|
|
},
|
|
"TopContributors":{
|
|
"type":"list",
|
|
"member":{"shape":"Contributor"}
|
|
},
|
|
"Unit":{
|
|
"type":"string",
|
|
"enum":[
|
|
"BITS",
|
|
"BYTES",
|
|
"PACKETS",
|
|
"REQUESTS"
|
|
]
|
|
},
|
|
"errorMessage":{"type":"string"}
|
|
}
|
|
}
|