{ "$id": "https://raw.githubusercontent.com/floherent/jsonschemas/main/xreporter.json", "$schema": "http://json-schema.org/draft-07/schema#", "title": "xReporter Config", "definitions": { "kebabcase": { "description": "Kebab-case constraint pattern (no spaces)", "type": "string", "pattern": "^[a-z0-9]+(-[a-z0-9]+)*$", "examples": ["kebabcase", "kebab-case-123", "kebab-123-case"] } }, "type": "object", "required": ["outdir", "spark", "input_keys"], "additionalProperties": false, "properties": { "outdir": { "description": "Relative or absolute path to save report files", "type": "string", "format": "uri" }, "verbose": { "description": "Prints additional information to stdout", "type": "boolean", "default": true }, "max_retries": { "description": "Number of retries when failed to generate a report", "type": "integer", "minimum": 0, "maximum": 5, "default": 3 }, "bulk_size": { "description": "Execute bulk operations in batches of this size", "type": "integer", "minimum": 1, "maximum": 10, "default": 5 }, "input_keys": { "oneOf": [ { "description": "List of keys to use as inputs for the Execute APIv3", "type": "array", "items": { "type": "string" }, "minItems": 1, "uniqueItems": true }, { "description": "Comma-separated keys to use as inputs for the report", "type": "string", "examples": ["key1,key2,key3", "key1"] } ] }, "spark": { "description": "Coherent Spark settings", "type": "object", "properties": { "base_url": { "description": "Coherent Spark base URL (https://excel.[region].coherent.global)", "type": "string", "format": "uri", "examples": ["https://excel.us.coherent.global", "https://excel.us.uat.coherent.global/"] }, "bearer_token": { "type": "string" }, "synthetic_key": { "type": "string", "format": "uuid" }, "tenant": { "$ref": "#/definitions/kebabcase" }, "folder": { "description": "Folder name in the Coherent Spark UI", "type": "string", "$comment": "Can be URL encoded" }, "service": { "description": "Service name in the Coherent Spark UI", "type": "string", "$comment": "Can be URL encoded" } }, "required": ["base_url", "tenant", "folder", "service"], "additionalProperties": false, "oneOf": [ { "description": "Access token with or without the word 'Bearer'", "examples": ["Bearer 123", "123"], "required": ["bearer_token"], "not": { "required": ["synthetic_key"] } }, { "description": "Synthetic key with Read and Execute permissions", "required": ["synthetic_key"], "not": { "required": ["bearer_token"] } } ] } } }