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
|
from typing import Any
from moto.core.exceptions import AWSError, JsonRESTError, RESTError
ERROR_WITH_MODEL_NAME = """{% extends 'single_error' %}
{% block extra %}<ModelName>{{ model }}</ModelName>{% endblock %}
"""
class SagemakerClientError(RESTError):
extended_templates = {"model_error": ERROR_WITH_MODEL_NAME}
env = RESTError.extended_environment(extended_templates)
def __init__(self, *args: Any, **kwargs: Any):
kwargs.setdefault("template", "single_error")
super().__init__(*args, **kwargs)
class ModelError(RESTError):
extended_templates = {"model_error": ERROR_WITH_MODEL_NAME}
env = RESTError.extended_environment(extended_templates)
def __init__(self, *args: Any, **kwargs: Any):
kwargs.setdefault("template", "model_error")
super().__init__(*args, **kwargs)
class MissingModel(ModelError):
code = 404
def __init__(self, model: str):
super().__init__("NoSuchModel", "Could not find model", model=model)
class ValidationError(JsonRESTError):
def __init__(self, message: str):
super().__init__("ValidationException", message)
class AWSValidationException(AWSError):
TYPE = "ValidationException"
class ResourceInUseException(AWSError):
TYPE = "ResourceInUse"
class ConflictException(AWSError):
TYPE = "ConflictException"
class ResourceNotFound(JsonRESTError):
def __init__(self, message: str):
super().__init__(__class__.__name__, message) # type: ignore
|