V13-FE-011: finalize search list layout slice
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://kbx.local/contracts/problems/kbx.problem.schema.json",
|
||||
"title": "KBX Problem",
|
||||
"oneOf": [
|
||||
{ "$ref": "#/$defs/validation" },
|
||||
{ "$ref": "#/$defs/businessRule" },
|
||||
{ "$ref": "#/$defs/conflict" },
|
||||
{ "$ref": "#/$defs/permission" },
|
||||
{ "$ref": "#/$defs/notFound" },
|
||||
{ "$ref": "#/$defs/integration" },
|
||||
{ "$ref": "#/$defs/system" }
|
||||
],
|
||||
"$defs": {
|
||||
"base": {
|
||||
"type": "object",
|
||||
"required": ["type", "title"],
|
||||
"properties": {
|
||||
"type": { "type": "string" },
|
||||
"title": { "type": "string", "minLength": 1 },
|
||||
"detail": { "type": ["string", "null"] },
|
||||
"correlationId": { "type": ["string", "null"] }
|
||||
}
|
||||
},
|
||||
"action": {
|
||||
"type": "object",
|
||||
"required": ["id", "label"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"label": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"validationError": {
|
||||
"type": "object",
|
||||
"required": ["code", "message"],
|
||||
"properties": {
|
||||
"field": { "type": ["string", "null"] },
|
||||
"rowKey": { "type": ["string", "null"] },
|
||||
"code": { "type": "string", "minLength": 1 },
|
||||
"message": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"validation": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "errors"],
|
||||
"properties": {
|
||||
"type": { "const": "validation" },
|
||||
"errors": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/validationError" } }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"businessRule": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "code"],
|
||||
"properties": {
|
||||
"type": { "const": "business-rule" },
|
||||
"code": { "type": "string", "minLength": 1 },
|
||||
"actions": { "type": "array", "items": { "$ref": "#/$defs/action" } }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"conflict": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "code"],
|
||||
"properties": {
|
||||
"type": { "const": "conflict" },
|
||||
"code": { "type": "string", "minLength": 1 },
|
||||
"currentVersion": { "type": ["integer", "null"], "minimum": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"permission": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "code"],
|
||||
"properties": {
|
||||
"type": { "const": "permission" },
|
||||
"code": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"notFound": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "code"],
|
||||
"properties": {
|
||||
"type": { "const": "not-found" },
|
||||
"code": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"integration": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "code", "retryable"],
|
||||
"properties": {
|
||||
"type": { "const": "integration" },
|
||||
"code": { "type": "string", "minLength": 1 },
|
||||
"retryable": { "type": "boolean" }
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"system": {
|
||||
"allOf": [
|
||||
{ "$ref": "#/$defs/base" },
|
||||
{
|
||||
"type": "object",
|
||||
"required": ["type", "code", "correlationId"],
|
||||
"properties": {
|
||||
"type": { "const": "system" },
|
||||
"code": { "type": "string", "minLength": 1 },
|
||||
"correlationId": { "type": "string", "minLength": 1 },
|
||||
"retryable": { "type": "boolean" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user