* feat(artifacts): read Godot PCK packs Add a Godot Engine PCK artifact reader for standalone packs and packs embedded behind an executable trailer (formats 2 and 3). Members are uncompressed byte ranges verified against their declared MD5 on read. Encrypted directories, sparse bundles, patch removal entries, unknown flags and format 1 fail closed as unavailable; encrypted members are reported without being read. inspect-artifact and extract-artifact recognize standalone packs by their GDPC magic. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(artifacts): bound Godot PCK metadata and own member streams Cap member paths at 4096 bytes and the retained directory at 64 MiB before allocation. Read members with positional chunk reads through pipeline so cancellation is typed, abandoned consumers release their source, and the shared descriptor stays reader-owned. Retain the root descriptor for godot-pck inventory, as for ZIP and universal Mach-O. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * feat(artifacts): complete Godot PCK facts, integrity and selected views * fix(artifacts): preserve atomic-root inventory Evidence * fix(artifacts): bound aggregate PCK member expansion --------- Co-authored-by: Samucahub <151155051+Samucahub@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
778 lines
23 KiB
JSON
778 lines
23 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"oneOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "invalid_request" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "access_denied" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "artifact_changed" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "unreadable_output" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "capability_unavailable" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "unsupported_target" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "provider_unavailable" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "provider_timeout" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "resource_constraint" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "cancelled" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "artifact_integrity_mismatch" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"anyOf": [
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"logical_path": { "type": "string" },
|
|
"declared_sha256": {
|
|
"anyOf": [{ "type": "string" }, { "type": "null" }]
|
|
},
|
|
"calculated_sha256": {
|
|
"anyOf": [{ "type": "string" }, { "type": "null" }]
|
|
},
|
|
"unpacked": { "type": "boolean" }
|
|
},
|
|
"required": [
|
|
"logical_path",
|
|
"declared_sha256",
|
|
"calculated_sha256",
|
|
"unpacked"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"logical_path": { "type": "string" },
|
|
"algorithm": { "type": "string", "const": "md5" },
|
|
"declared_md5": {
|
|
"type": "string",
|
|
"pattern": "^[a-f0-9]{32}$"
|
|
},
|
|
"calculated_md5": {
|
|
"anyOf": [
|
|
{ "type": "string", "pattern": "^[a-f0-9]{32}$" },
|
|
{ "type": "null" }
|
|
]
|
|
},
|
|
"unpacked": { "type": "boolean" }
|
|
},
|
|
"required": [
|
|
"logical_path",
|
|
"algorithm",
|
|
"declared_md5",
|
|
"calculated_md5",
|
|
"unpacked"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"code",
|
|
"category",
|
|
"message",
|
|
"retryable",
|
|
"remediation",
|
|
"details"
|
|
],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "artifact_operation_failed" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "evidence_integrity_mismatch" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "truncated" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "process_capture_failed" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "cleanup_incomplete" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "revision_conflict" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "configuration_invalid" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "target_unavailable" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
},
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"code": { "type": "string", "const": "execution_failure" },
|
|
"category": {
|
|
"type": "string",
|
|
"enum": [
|
|
"invalid_input",
|
|
"unsupported_provider",
|
|
"unsupported_target",
|
|
"integrity_mismatch",
|
|
"truncated",
|
|
"cancelled",
|
|
"timeout",
|
|
"resource_constraint",
|
|
"unavailable",
|
|
"execution_failure"
|
|
]
|
|
},
|
|
"message": { "type": "string", "minLength": 1 },
|
|
"retryable": { "type": "boolean" },
|
|
"remediation": {
|
|
"type": "object",
|
|
"properties": { "action": { "type": "string", "minLength": 1 } },
|
|
"required": ["action"],
|
|
"additionalProperties": false
|
|
},
|
|
"details": {
|
|
"type": "object",
|
|
"propertyNames": { "type": "string" },
|
|
"additionalProperties": {}
|
|
}
|
|
},
|
|
"required": ["code", "category", "message", "retryable", "remediation"],
|
|
"additionalProperties": false
|
|
}
|
|
]
|
|
}
|