{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$ref": "#/definitions/AuditApiNamesResult",
  "definitions": {
    "AuditApiNamesResult": {
      "type": "object",
      "properties": {
        "findings": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/SalesforceApiAuditFinding"
          }
        },
        "models": {
          "$ref": "#/definitions/SalesforceApiModelSummary"
        }
      },
      "required": ["findings", "models"],
      "additionalProperties": false
    },
    "SalesforceApiAuditFinding": {
      "type": "object",
      "properties": {
        "file": {
          "type": "string"
        },
        "line": {
          "type": "number"
        },
        "token": {
          "type": "string"
        },
        "classification": {
          "anyOf": [
            {
              "$ref": "#/definitions/SalesforceApiClassification"
            },
            {
              "type": "string",
              "const": "unclassified"
            }
          ]
        },
        "expected": {
          "type": "string"
        },
        "source": {
          "type": "string"
        }
      },
      "required": ["file", "line", "token", "classification"],
      "additionalProperties": false
    },
    "SalesforceApiClassification": {
      "type": "string",
      "enum": ["standard", "managed-package", "legacy-package", "custom-extension", "invalid-alias"]
    },
    "SalesforceApiModelSummary": {
      "type": "object",
      "properties": {
        "automotive": {
          "$ref": "#/definitions/SalesforceApiModel"
        },
        "commerce": {
          "$ref": "#/definitions/SalesforceApiModel"
        },
        "nonprofit": {
          "$ref": "#/definitions/SalesforceApiModel"
        },
        "education": {
          "$ref": "#/definitions/SalesforceApiModel"
        }
      },
      "additionalProperties": false
    },
    "SalesforceApiModel": {
      "type": "string",
      "enum": ["current", "legacy", "parallel"]
    }
  }
}
