TenantAtlas/specs/157-reason-code-translation/contracts/reason-translation-entry.schema.json
2026-03-22 21:18:37 +01:00

111 lines
2.1 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://tenantpilot.local/contracts/reason-translation-entry.schema.json",
"title": "Reason Translation Entry",
"type": "object",
"additionalProperties": false,
"required": [
"artifactKey",
"internalCode",
"operatorLabel",
"shortExplanation",
"actionability",
"diagnosticVisibility",
"nextStepPolicy"
],
"properties": {
"artifactKey": {
"type": "string"
},
"internalCode": {
"type": "string"
},
"operatorLabel": {
"type": "string",
"minLength": 1
},
"shortExplanation": {
"type": "string",
"minLength": 1
},
"actionability": {
"type": "string",
"enum": [
"retryable_transient",
"permanent_configuration",
"prerequisite_missing",
"non_actionable"
]
},
"diagnosticVisibility": {
"type": "string",
"enum": [
"always_available",
"secondary_only"
]
},
"nextStepPolicy": {
"type": "string",
"enum": [
"required",
"optional",
"none"
]
},
"taxonomyTerms": {
"type": "array",
"items": {
"type": "string"
}
},
"legacyInputs": {
"type": "array",
"items": {
"type": "string"
}
}
},
"allOf": [
{
"if": {
"properties": {
"actionability": {
"const": "prerequisite_missing"
}
},
"required": [
"actionability"
]
},
"then": {
"properties": {
"nextStepPolicy": {
"enum": [
"required",
"optional"
]
}
}
}
},
{
"if": {
"properties": {
"actionability": {
"const": "non_actionable"
}
},
"required": [
"actionability"
]
},
"then": {
"properties": {
"nextStepPolicy": {
"const": "none"
}
}
}
}
]
}