{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-processor-job-schema.json",
  "title": "ProcessorJob",
  "description": "Details of a processor job.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-aiservicedocument-api-openapi.yml#/components/schemas/ProcessorJob",
  "properties": {
    "compartmentId": {
      "description": "The compartment identifier.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "displayName": {
      "description": "The display name of the processor job.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "id": {
      "description": "The id of the processor job.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "inputLocation": {
      "$ref": "#/$defs/InputLocation"
    },
    "lifecycleDetails": {
      "description": "The detailed status of FAILED state.",
      "enum": [
        "PARTIALLY_SUCCEEDED",
        "COMPLETELY_FAILED"
      ],
      "type": "string"
    },
    "lifecycleState": {
      "description": "The current state of the processor job.",
      "enum": [
        "SUCCEEDED",
        "FAILED",
        "ACCEPTED",
        "CANCELED",
        "IN_PROGRESS",
        "CANCELING"
      ],
      "type": "string"
    },
    "outputLocation": {
      "$ref": "#/$defs/OutputLocation"
    },
    "percentComplete": {
      "description": "How much progress the operation has made, compared to the total amount of work to be performed.",
      "format": "float",
      "maximum": 100,
      "minimum": 0,
      "type": "number"
    },
    "processorConfig": {
      "$ref": "#/$defs/ProcessorConfig"
    },
    "timeAccepted": {
      "description": "The job acceptance time.",
      "format": "date-time",
      "type": "string"
    },
    "timeFinished": {
      "description": "The job finish time.",
      "format": "date-time",
      "type": "string"
    },
    "timeStarted": {
      "description": "The job start time.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "id",
    "compartmentId",
    "processorConfig",
    "timeAccepted",
    "outputLocation",
    "lifecycleState"
  ],
  "type": "object",
  "$defs": {
    "InputLocation": {
      "description": "The location of the inputs.",
      "properties": {
        "sourceType": {
          "description": "The type of input location.\nThe allowed values are:\n- `OBJECT_STORAGE_LOCATIONS`: A list of object locations in Object Storage.\n- `INLINE_DOCUMENT_CONTENT`: The content of an inline document.\n",
          "enum": [
            "OBJECT_STORAGE_LOCATIONS",
            "INLINE_DOCUMENT_CONTENT"
          ],
          "type": "string"
        }
      },
      "required": [
        "sourceType"
      ],
      "type": "object"
    },
    "OutputLocation": {
      "description": "The object storage location where to store analysis results.",
      "properties": {
        "bucketName": {
          "description": "The Object Storage bucket name.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "namespaceName": {
          "description": "The Object Storage namespace.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "prefix": {
          "description": "The Object Storage folder name.",
          "maxLength": 1024,
          "minLength": 0,
          "type": "string"
        }
      },
      "required": [
        "namespaceName",
        "bucketName",
        "prefix"
      ],
      "type": "object"
    },
    "ProcessorConfig": {
      "description": "The configuration of a processor.",
      "properties": {
        "processorType": {
          "description": "The type of the processor.",
          "enum": [
            "GENERAL"
          ],
          "type": "string",
          "x-obmcs-top-level-enum": "#/definitions/ProcessorType"
        }
      },
      "required": [
        "processorType"
      ],
      "type": "object"
    }
  }
}