{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/benchling/json-schema/WorkflowFlowchartNodeConfig.json",
  "title": "WorkflowFlowchartNodeConfig",
  "properties": {
    "id": {
      "description": "The ID of the workflow flowchart node config",
      "readOnly": true,
      "type": "string"
    },
    "nodeDetails": {
      "discriminator": {
        "mapping": {
          "END": "#/components/schemas/WorkflowEndNodeDetails",
          "OUTPUT": "#/components/schemas/WorkflowOutputNodeDetails",
          "ROOT": "#/components/schemas/WorkflowRootNodeDetails",
          "ROUTER": "#/components/schemas/WorkflowRouterNodeDetails",
          "TASK": "#/components/schemas/WorkflowTaskNodeDetails"
        },
        "propertyName": "nodeType"
      },
      "oneOf": [
        {
          "$ref": "#/components/schemas/WorkflowRootNodeDetails"
        },
        {
          "$ref": "#/components/schemas/WorkflowOutputNodeDetails"
        },
        {
          "$ref": "#/components/schemas/WorkflowTaskNodeDetails"
        },
        {
          "$ref": "#/components/schemas/WorkflowRouterNodeDetails"
        },
        {
          "$ref": "#/components/schemas/WorkflowEndNodeDetails"
        }
      ]
    },
    "nodeType": {
      "description": "The type associated with the node config",
      "enum": [
        "ROOT",
        "OUTPUT",
        "TASK",
        "ROUTER",
        "END"
      ],
      "type": "string"
    }
  },
  "type": "object"
}