Files
wyndham-ARR/prompts/arr_opera_daily_processing_result.schema.json
2026-07-29 16:38:05 +08:00

197 lines
5.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ARR authenticated Opera daily processing result",
"type": "object",
"additionalProperties": false,
"required": ["signed_envelope_version", "payload", "signature"],
"properties": {
"signed_envelope_version": {
"type": "string",
"const": "arr-processing-signed-1"
},
"payload": { "$ref": "#/$defs/result" },
"signature": { "$ref": "#/$defs/signature" }
},
"$defs": {
"opaqueId": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-f]{64}$"
},
"signature": {
"type": "object",
"additionalProperties": false,
"required": ["algorithm", "key_id", "issued_at", "nonce", "value"],
"properties": {
"algorithm": { "type": "string", "const": "hmac-sha256" },
"key_id": { "$ref": "#/$defs/opaqueId" },
"issued_at": { "type": "string", "format": "date-time" },
"nonce": { "$ref": "#/$defs/opaqueId" },
"value": { "$ref": "#/$defs/sha256" }
}
},
"baseFile": {
"type": "object",
"additionalProperties": false,
"required": [
"file_handle",
"original_filename",
"sha256",
"byte_size",
"mime_type"
],
"properties": {
"file_handle": { "$ref": "#/$defs/opaqueId" },
"original_filename": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"pattern": "^[^/\\\\]+$"
},
"sha256": { "$ref": "#/$defs/sha256" },
"byte_size": { "type": "integer", "minimum": 0 },
"mime_type": { "type": "string" }
}
},
"dailyReport": {
"allOf": [
{ "$ref": "#/$defs/baseFile" },
{
"properties": {
"original_filename": { "pattern": "^[^/\\\\]+\\.xlsx$" },
"byte_size": { "maximum": 104857600 },
"mime_type": {
"const": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
}
}
]
},
"resultJson": {
"allOf": [
{ "$ref": "#/$defs/baseFile" },
{
"properties": {
"original_filename": { "pattern": "^[^/\\\\]+\\.json$" },
"byte_size": { "maximum": 5242880 },
"mime_type": { "const": "application/json" }
}
}
]
},
"structuredResult": {
"allOf": [
{ "$ref": "#/$defs/baseFile" },
{
"properties": {
"original_filename": { "pattern": "^[^/\\\\]+\\.json$" },
"byte_size": { "maximum": 52428800 },
"mime_type": { "const": "application/json" }
}
}
]
},
"exceptionReport": {
"allOf": [
{ "$ref": "#/$defs/baseFile" },
{
"properties": {
"original_filename": { "pattern": "^[^/\\\\]+\\.xlsx$" },
"byte_size": { "maximum": 20971520 },
"mime_type": {
"const": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
}
}
}
]
},
"result": {
"type": "object",
"additionalProperties": false,
"required": [
"contract_version",
"delivery_id",
"job_id",
"attempt_no",
"remote_run_id",
"status",
"business_date",
"processor_version",
"rule_set_sha256",
"result_schema_version",
"artifacts"
],
"properties": {
"contract_version": {
"type": "string",
"const": "arr-opera-daily-result-1"
},
"delivery_id": { "$ref": "#/$defs/opaqueId" },
"job_id": { "$ref": "#/$defs/opaqueId" },
"attempt_no": { "type": "integer", "minimum": 1, "maximum": 9999 },
"remote_run_id": { "$ref": "#/$defs/opaqueId" },
"status": { "type": "string", "enum": ["success", "failed"] },
"business_date": { "type": ["string", "null"], "format": "date" },
"processor_version": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$"
},
"rule_set_sha256": { "$ref": "#/$defs/sha256" },
"result_schema_version": { "type": "string", "const": "3.0" },
"artifacts": {
"type": "object",
"additionalProperties": false,
"required": [
"daily_report",
"result_json",
"structured_result_json",
"exception_report"
],
"properties": {
"daily_report": {
"oneOf": [{ "$ref": "#/$defs/dailyReport" }, { "type": "null" }]
},
"result_json": { "$ref": "#/$defs/resultJson" },
"structured_result_json": { "$ref": "#/$defs/structuredResult" },
"exception_report": {
"oneOf": [{ "$ref": "#/$defs/exceptionReport" }, { "type": "null" }]
}
}
}
},
"allOf": [
{
"if": {
"properties": { "status": { "const": "success" } },
"required": ["status"]
},
"then": {
"properties": {
"business_date": { "type": "string", "format": "date" },
"artifacts": {
"properties": {
"daily_report": { "$ref": "#/$defs/dailyReport" },
"exception_report": { "type": "null" }
}
}
}
},
"else": {
"properties": {
"artifacts": {
"properties": {
"daily_report": { "type": "null" },
"exception_report": { "$ref": "#/$defs/exceptionReport" }
}
}
}
}
}
]
}
}
}