{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/jaggaer/main/json-schema/jaggaer-optimization-job.json",
  "title": "JAGGAER Quay Optimization Job",
  "description": "Schema for a JAGGAER ASO Quay optimization job, representing a computational task that runs the sourcing optimization algorithm against event bid data.",
  "type": "object",
  "required": [
    "jobId",
    "consumer",
    "customerId",
    "customerName",
    "eventId",
    "inputFilename",
    "status",
    "jobType",
    "optSetType",
    "submitTime"
  ],
  "properties": {
    "jobId": {
      "type": "integer",
      "description": "Unique identifier for the Quay optimization job.",
      "example": 414
    },
    "consumer": {
      "type": "string",
      "description": "The system submitting the optimization job.",
      "enum": ["ASO", "JCS", "USDA"],
      "example": "JCS"
    },
    "customerId": {
      "type": "integer",
      "description": "Identifier for the customer submitting the job.",
      "example": 999
    },
    "customerName": {
      "type": "string",
      "description": "Name of the customer. Maximum 100 characters.",
      "maxLength": 100,
      "example": "QA"
    },
    "eventId": {
      "type": "integer",
      "description": "Identifier for the sourcing event associated with this optimization job.",
      "example": 999999
    },
    "inputFilename": {
      "type": "string",
      "description": "Fully qualified path to the input file on the ASO filesystem. Maximum 100 characters.",
      "maxLength": 100,
      "example": "/dgsq/drm/JCS_Input/tester.txt.gz"
    },
    "status": {
      "type": "string",
      "description": "Current processing status of the optimization job.",
      "enum": [
        "Received",
        "Queued",
        "Requeued",
        "Optimizing",
        "Completed",
        "Failed",
        "Cancelled",
        "Cancelling",
        "Expired",
        "Limited"
      ],
      "example": "Completed"
    },
    "jobType": {
      "type": "string",
      "description": "Type of optimization job.",
      "enum": ["Short", "Long"],
      "example": "Short"
    },
    "optSetType": {
      "type": "string",
      "description": "Type of optimization set used for this job.",
      "enum": ["Short", "Long"],
      "example": "Long"
    },
    "submitTime": {
      "type": "integer",
      "description": "Timestamp when the job was submitted, as 13-digit Unix epoch time in milliseconds.",
      "example": 1584979461000
    },
    "inprocAtSubmit": {
      "type": "integer",
      "description": "Number of other jobs in process at the time this job was submitted.",
      "minimum": 0,
      "example": 0
    },
    "runClient": {
      "type": "string",
      "description": "Hostname of the Quay client that executed this job.",
      "example": "clearbox-01.exp.dev.combinenet.com"
    },
    "workingDirectory": {
      "type": "string",
      "description": "Working directory for this job on the ASO filesystem.",
      "example": "/dgsq/drm/QUAY_Service/2020/2/23/414"
    },
    "processStartTime": {
      "type": "integer",
      "description": "Timestamp when the job started running, as 13-digit Unix epoch time in milliseconds.",
      "example": 1584979460846
    },
    "processStopTime": {
      "type": "integer",
      "description": "Timestamp when the job completed, as 13-digit Unix epoch time in milliseconds.",
      "example": 1584979462117
    },
    "cpuTime": {
      "type": "integer",
      "description": "Elapsed job runtime in milliseconds.",
      "minimum": 0,
      "example": 1271
    },
    "notificationHostname": {
      "type": "string",
      "description": "Optional ASO Clearsuite notification server hostname. For development use only. Maximum 250 characters.",
      "maxLength": 250,
      "example": "aso-csweb.jaggaer.com"
    },
    "notificationPort": {
      "type": "integer",
      "description": "Optional ASO Clearsuite notification server port. For development use only.",
      "minimum": 1,
      "maximum": 65535,
      "example": 80
    }
  },
  "examples": [
    {
      "jobId": 414,
      "consumer": "JCS",
      "customerId": 999,
      "customerName": "QA",
      "eventId": 999999,
      "inputFilename": "/dgsq/drm/JCS_Input/tester.txt.gz",
      "status": "Completed",
      "jobType": "Short",
      "optSetType": "Long",
      "submitTime": 1584979461000,
      "inprocAtSubmit": 0,
      "runClient": "clearbox-01.exp.dev.combinenet.com",
      "workingDirectory": "/dgsq/drm/QUAY_Service/2020/2/23/414",
      "processStartTime": 1584979460846,
      "processStopTime": 1584979462117,
      "cpuTime": 1271
    }
  ]
}
