1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287
|
from typing import Any
from moto.core.exceptions import JsonRESTError
class ApiGatewayException(JsonRESTError):
pass
class BadRequestException(ApiGatewayException):
def __init__(self, message: str):
super().__init__("BadRequestException", message)
class NotFoundException(ApiGatewayException):
def __init__(self, message: str):
super().__init__("NotFoundException", message)
class AccessDeniedException(ApiGatewayException):
pass
class ConflictException(ApiGatewayException):
code = 409
def __init__(self, message: str):
super().__init__("ConflictException", message)
class AwsProxyNotAllowed(BadRequestException):
def __init__(self) -> None:
super().__init__(
"Integrations of type 'AWS_PROXY' currently only supports Lambda function and Firehose stream invocations."
)
class CrossAccountNotAllowed(AccessDeniedException):
def __init__(self) -> None:
super().__init__(
"AccessDeniedException", "Cross-account pass role is not allowed."
)
class RoleNotSpecified(BadRequestException):
def __init__(self) -> None:
super().__init__("Role ARN must be specified for AWS integrations")
class IntegrationMethodNotDefined(BadRequestException):
def __init__(self) -> None:
super().__init__("Enumeration value for HttpMethod must be non-empty")
class InvalidOpenAPIDocumentException(BadRequestException):
def __init__(self, cause: Any):
super().__init__(
f"Failed to parse the uploaded OpenAPI document due to: {cause.message}"
)
class InvalidOpenApiDocVersionException(BadRequestException):
def __init__(self) -> None:
super().__init__("Only OpenAPI 3.x.x are currently supported")
class InvalidOpenApiModeException(BadRequestException):
def __init__(self) -> None:
super().__init__(
'Enumeration value of OpenAPI import mode must be "overwrite" or "merge"',
)
class InvalidResourcePathException(BadRequestException):
def __init__(self) -> None:
super().__init__(
"Resource's path part only allow a-zA-Z0-9._- and curly braces at the beginning and the end and an optional plus sign before the closing brace."
)
class InvalidHttpEndpoint(BadRequestException):
def __init__(self) -> None:
super().__init__("Invalid HTTP endpoint specified for URI")
class InvalidArn(BadRequestException):
def __init__(self) -> None:
super().__init__("Invalid ARN specified in the request")
class InvalidIntegrationArn(BadRequestException):
def __init__(self) -> None:
super().__init__("AWS ARN for integration must contain path or action")
class InvalidRequestInput(BadRequestException):
def __init__(self) -> None:
super().__init__("Invalid request input")
class NoIntegrationDefined(NotFoundException):
def __init__(self) -> None:
super().__init__("No integration defined for method")
class NoIntegrationResponseDefined(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid Response status code specified")
class NoMethodDefined(BadRequestException):
def __init__(self) -> None:
super().__init__("The REST API doesn't contain any methods")
class AuthorizerNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid Authorizer identifier specified")
class StageNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid stage identifier specified")
class ApiKeyNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid API Key identifier specified")
class UsagePlanNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid Usage Plan ID specified")
class ApiKeyAlreadyExists(ApiGatewayException):
code = 409
def __init__(self) -> None:
super().__init__("ConflictException", "API Key already exists")
class InvalidDomainName(BadRequestException):
code = 404
def __init__(self) -> None:
super().__init__("No Domain Name specified")
class DomainNameNotFound(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid domain name identifier specified")
class InvalidRestApiId(BadRequestException):
code = 404
def __init__(self) -> None:
super().__init__("No Rest API Id specified")
class InvalidModelName(BadRequestException):
code = 404
def __init__(self) -> None:
super().__init__("No Model Name specified")
class RestAPINotFound(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid Rest API Id specified")
class RequestValidatorNotFound(BadRequestException):
code = 400
def __init__(self) -> None:
super().__init__("Invalid Request Validator Id specified")
class ModelNotFound(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid Model Name specified")
class ApiKeyValueMinLength(BadRequestException):
code = 400
def __init__(self) -> None:
super().__init__("API Key value should be at least 20 characters")
class MethodNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid Method identifier specified")
class InvalidBasePathException(BadRequestException):
code = 400
def __init__(self) -> None:
super().__init__(
"API Gateway V1 doesn't support the slash character (/) in base path mappings. "
"To create a multi-level base path mapping, use API Gateway V2."
)
class DeploymentNotFoundException(NotFoundException):
def __init__(self) -> None:
super().__init__("Invalid Deployment identifier specified")
class InvalidRestApiIdForBasePathMappingException(BadRequestException):
code = 400
def __init__(self) -> None:
super().__init__("Invalid REST API identifier specified")
class InvalidStageException(BadRequestException):
code = 400
def __init__(self) -> None:
super().__init__("Invalid stage identifier specified")
class BasePathConflictException(ConflictException):
def __init__(self) -> None:
super().__init__("Base path already exists for this domain name")
class BasePathNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid base path mapping identifier specified")
class ResourceIdNotFoundException(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("Invalid resource identifier specified")
class VpcLinkNotFound(NotFoundException):
code = 404
def __init__(self) -> None:
super().__init__("VPCLink not found")
class ValidationException(ApiGatewayException):
code = 400
def __init__(self, message: str):
super().__init__("ValidationException", message)
class StageStillActive(BadRequestException):
def __init__(self) -> None:
super().__init__(
"Active stages pointing to this deployment must be moved or deleted"
)
class GatewayResponseNotFound(NotFoundException):
def __init__(self) -> None:
super().__init__("GatewayResponse not found")
|