{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Opera report processing result", "type": "object", "additionalProperties": false, "required": [ "version", "status", "business_date", "month_key", "message", "metrics", "outputs", "errors" ], "properties": { "version": { "type": "string", "enum": ["1.0", "2.0"] }, "processing_mode": { "type": "string", "const": "daily" }, "status": { "type": "string", "enum": ["success", "failed"] }, "business_date": { "type": ["string", "null"], "format": "date" }, "month_key": { "type": ["string", "null"], "pattern": "^[0-9]{4}-[0-9]{2}$" }, "message": { "type": "string" }, "metrics": { "type": "object", "additionalProperties": false, "required": [ "source_rows", "removed_by_rate_code", "removed_as_duplicates", "output_rows", "channels" ], "properties": { "source_rows": { "type": "integer", "minimum": 0 }, "removed_by_rate_code": { "type": "integer", "minimum": 0 }, "removed_as_duplicates": { "type": "integer", "minimum": 0 }, "output_rows": { "type": "integer", "minimum": 0 }, "channels": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["worksheet", "rows"], "properties": { "worksheet": { "type": "string" }, "rows": { "type": "integer", "minimum": 0 } } } } } }, "outputs": { "type": "object", "additionalProperties": false, "required": ["daily_report", "monthly_report", "exception_report"], "properties": { "daily_report": { "type": ["string", "null"], "pattern": "^[^/\\\\]+\\.xlsx$" }, "monthly_report": { "type": ["string", "null"], "pattern": "^[^/\\\\]+\\.xlsx$" }, "exception_report": { "type": ["string", "null"], "pattern": "^[^/\\\\]+\\.xlsx$" } } }, "errors": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": [ "code", "stage", "source_location", "company_name", "rate_code", "effective_rate_amount", "confirmation_no", "message" ], "properties": { "code": { "type": "string" }, "stage": { "type": "string" }, "source_location": { "type": ["string", "null"] }, "company_name": { "type": ["string", "null"] }, "rate_code": { "type": ["string", "null"] }, "effective_rate_amount": { "type": ["number", "null"] }, "confirmation_no": { "type": ["string", "null"] }, "message": { "type": "string" } } } } }, "allOf": [ { "if": { "properties": { "version": { "const": "2.0" } }, "required": ["version"] }, "then": { "required": ["processing_mode"], "properties": { "processing_mode": { "const": "daily" }, "outputs": { "properties": { "monthly_report": { "type": "null" } } } } }, "else": { "not": { "required": ["processing_mode"] } } }, { "if": { "properties": { "status": { "const": "success" } }, "required": ["status"] }, "then": { "properties": { "outputs": { "properties": { "daily_report": { "type": "string" }, "exception_report": { "type": "null" } } }, "errors": { "maxItems": 0 } } }, "else": { "properties": { "outputs": { "properties": { "daily_report": { "type": "null" }, "monthly_report": { "type": "null" }, "exception_report": { "type": "string" } } }, "errors": { "minItems": 1 } } } }, { "if": { "properties": { "version": { "const": "1.0" }, "status": { "const": "success" } }, "required": ["version", "status"] }, "then": { "properties": { "outputs": { "properties": { "monthly_report": { "type": "string" } } } } } } ] }