{ "$schema": "http://json-schema.org/draft-07/schema", "$id": "task-api", "title": "Task Document", "description": "A Task document in API response format.", "$comment": "No required fields, because projection operators can result in any combination of fields", "required": [], "propertyNames": { "anyOf": [ { "$ref": "task-common#/definitions/commonFieldNames" }, { "enum": [ "groups", "type", "metrics", "incomingRefs" ] } ] }, "allOf": [ { "$ref": "task-common#/definitions/commonFields" }, { "type": "object", "properties": { "groups": { "type": "array", "items": { "oneOf": [ { "$ref": "common#/definitions/groupDocument" }, { "$ref": "common#/definitions/ObjectIdLikeString" } ] } } } }, { "oneOf": [ { "$ref": "#/definitions/manual" }, { "$ref": "#/definitions/operation" }, { "$ref": "#/definitions/automatic" } ] } ], "definitions": { "account-api": { "oneOf": [ { "$ref": "common#/definitions/accountObject" }, { "$ref": "common#/definitions/ObjectIdLikeString" }, { "enum": [ "", "Pronghorn" ] } ] }, "metrics-accounts-api": { "type": "object", "properties": { "user": { "$ref": "#/definitions/account-api" }, "owner": { "$ref": "#/definitions/account-api" } } }, "manual": { "type": "object", "properties": { "type": { "const": "manual" }, "metrics": { "allOf": [ { "$ref": "task-common#/definitions/metrics-common-manual" }, { "$ref": "#/definitions/metrics-accounts-api" } ] } } }, "operation": { "type": "object", "properties": { "type": { "const": "operation" }, "metrics": { "allOf": [ { "$ref": "task-common#/definitions/metrics-common-operation-automatic" }, { "$ref": "#/definitions/metrics-accounts-api" } ] } } }, "automatic": { "type": "object", "properties": { "type": { "const": "automatic" }, "metrics": { "allOf": [ { "$ref": "task-common#/definitions/metrics-common-operation-automatic" }, { "$ref": "#/definitions/metrics-accounts-api" } ] } } } } }