400 = Bad Request
401 = Unauthorized
403 = Forbidden
404 = Not Found
405 = Method Not Allowed
406 = Not Acceptable
407 = Proxy Authentication Required
408 = Request Timeout
409 = Conflict
410 = Gone
411 = Length Required
412 = Precondition Failed
413 = Payload Too Large
414 = URI Too Long
415 = Unsupported Media Type
416 = Range Not Satisfiable
417 = Expectation Failed
422 = Unprocessable Content
424 = Failed Dependency
428 = Precondition Required
429 = Too Many Requests
431 = Request Header Fields Too Large
451 = Unavailable For Legal Reasons
500 = Internal Server Error
501 = The server does not support the functionality required to fulfill the request
502 = Bad Gateway
503 = Service Unavailable
504 = Gateway Timeout

MULTIPLE_ERRORS = Multiple errors occurred, see details below.

# -------------------------------------------------------------------------------------------------
# all texts below are subject to change!
# -------------------------------------------------------------------------------------------------

# fragments
ENTITY = entity
TYPE = type
FUNCTION = function
ACTION = action

# assert
ASSERT_VALID_ELEMENT = Element is not valid
ASSERT_RANGE = Value {0} is not in specified range [{1}, {2}]
ASSERT_FORMAT = Value "{0}" is not in specified format "{1}"
ASSERT_DATA_TYPE = Value {0} is not a valid {1}
ASSERT_ARRAY = Value must be an array
ASSERT_ENUM = Value {0} is invalid according to enum declaration {{1}}
ASSERT_NOT_NULL = Value is required
ASSERT_TARGET = "Value doesn't exist"

# db
NO_DATABASE_CONNECTION = No database connection
ENTITY_ALREADY_EXISTS = Entity already exists
ENTITY_LOCKED = Entity locked
UNIQUE_CONSTRAINT_VIOLATION = Unique constraint violation
FK_CONSTRAINT_VIOLATION = Foreign key constraint violation

# remote
INVALID_CONTENT_TYPE_ONLY_JSON = Invalid content type. Only "application/json" is supported.

# access control
INSERTABLE = insertable
READABLE = readable
UPDATABLE = updatable
DELETABLE = deletable
ENTITY_IS_INSERT_ONLY = Entity "{0}" is insert-only
ENTITY_IS_READ_ONLY = Entity "{0}" is read-only
ENTITY_IS_NOT_CRUD = Entity "{0}" is not {1}
ENTITY_IS_NOT_CRUD_VIA_NAVIGATION = Entity "{0}" is not {1} via navigation "{2}"
ENTITY_IS_AUTOEXPOSED = Entity "{0}" is not explicitly exposed as part of the service
ENTITY_IS_AUTOEXPOSE_READONLY = Entity "{0}" is explicitly exposed as readonly
EXPAND_IS_RESTRICTED = Navigation property "{0}" is not allowed for expand operation

# rest protocol adapter
INVALID_RESOURCE = "{0}" is not a valid resource
INVALID_PARAMETER = "{0}" is not a valid parameter
INVALID_PARAMETER_VALUE_TYPE = Parameter value for "{0}" must be of type "{1}"
INVALID_OPERATION_FOR_ENTITY = Entity "{0}" has no {1} "{2}"
NO_MATCHING_RESOURCE = The server has not found a resource matching the requested URI
INVALID_POST = POST is only allowed on resource collections and actions
INVALID_PUT = PUT is only allowed on a specific resource
INVALID_PATCH = PATCH is only allowed on a specific resource
INVALID_DELETE = DELETE is only supported on a specific resource
CRUD_VIA_NAVIGATION_NOT_SUPPORTED = CRUD via navigations is not yet supported

# OData protocol adapter
BATCH_TOO_MANY_REQ = Batch request contains too many requests

# draft
DRAFT_ALREADY_EXISTS = A draft for this entity already exists
DRAFT_NOT_EXISTING = No draft for this entity exists
DRAFT_LOCKED_BY_ANOTHER_USER = The entity is locked by user "{0}"
DRAFT_MODIFICATION_ONLY_VIA_ROOT = A draft-enabled entity can only be modified via its root entity
ACTIVE_MODIFICATION_VIA_DRAFT = Active entities cannot be modified via draft request
DRAFT_ACTIVE_DELETE_FORBIDDEN_DRAFT_EXISTS = Entity cannot be deleted because a draft exists

# singleton
SINGLETON_NOT_NULLABLE = The singleton entity is not nullable
