Nuix Job API

The Job API from Nuix — 3 operation(s) for job.

OpenAPI Specification

nuix-job-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: NUIX ECC REST API Command Reference Case Job API
  description: 'Welcome to the Nuix ECC REST API command reference. From here you can access all available ECC REST APIs.  You can also send REST commands to your running ECC Server, as well as view the responses.


    **Note\:** The Nuix ECC User Guide includes a gloassary which defines specialized terms such as `Case`, `Custodian` and `Target` which are mentioned throughout this command reference.


    **Note\:** This command reference has been updated for Nuix ECC version 9.12.0.'
  contact:
    name: Nuix
    url: https://nuix.github.io/sdk-docs/latest/
    email: APISupport@nuix.com
  license:
    name: Licence
    url: https://www.nuix.com/sites/default/files/20200210_EULA_v1.pdf
  version: ${customer.version}
servers:
- url: '{protocol}://{address}:{port}/api/ecc'
  variables:
    protocol:
      default: https
      description: protocol for communication
      enum:
      - http
      - https
    address:
      default: 127.0.0.1
      description: The location which the ECC resides
    port:
      default: '80'
      description: 80, 443 or alternative
security:
- BasicAuth: []
tags:
- name: Job
paths:
  /v2/jobs/{id}:
    get:
      tags:
      - Job
      summary: Display details of the specified job
      description: Display details the job specified by the id in the path (URL)
      operationId: jobDetails
      parameters:
      - name: id
        in: path
        description: id of the job
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Job details found
          content:
            application/json:
              schema:
                type: object
                properties:
                  jobs:
                    type: array
                    items:
                      $ref: '#/components/schemas/jobDetail'
              example:
                jobs:
                - id: 103
                  taskName: Collect
                  label: ''
                  caseName: Testing
                  status: Cancelled
                  warnings: 3
                  errors: 1
                  bytesCollected: 0
                  bytesToCollect: 0
                  filesCollected: 0
                  filesToCollect: 126600
                  collectionId: 103
                  collectionName: Email Collect3
                  custodianName: ''
                  custodianId: 1
                  targetName: ''
                  targetId: 1
                  destination: 'c:\collection\Testing\Email Collect3\AUSYD-L-NX0142\FileSafe\AUSYD-L-NX0142 2020-07-18 21-08-23.


                    mfs01'
                  beginTime: '2020-07-18T11:08:23.


                    711Z'
                  endTime: '2020-07-18T11:09:53.


                    757Z'
                  computerId: E21287F5-9E96-6CFF-0624-056AFA28E902
                  computerName: AUSYD-L-NX0142
        '400':
          description: Job ID not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/standardResponse'
              example:
                code: 400
                id: 101
                message: Invalid Job ID supplied
  /v2/jobs:
    post:
      tags:
      - Job
      summary: Lists all jobs that match the specified filter
      description: 'Lists all jobs matching the filter criteria specified in the JSON body.


        ### Job fields available for filtering and sorting\:


        | Field name        | Type    | Description / Possible Values            |

        | ----------------- | ------- | ---------------------------------------- |

        | BeginTime         | String  | Job start date and time                  |

        | BytesCollected    | String  | Bytes collected so far                   |

        | BytesToCollect    | Long    | Total bytes to be collected              |

        | CaseName          | String  | Case name                                |

        | CollectionID      | Long    | Collection ID number                     |

        | CollectionName    | String  | Collection name                          |

        | ComputerID        | String  | Computer ID number                       |

        | ComputerName      | String  | Computer name                            |

        | CustodianID       | Long    | Custodian ID number                      |

        | CustodianName     | String  | Custodian name                           |

        | Destination       | String  | Destination path                         |

        | DestinationType   | String  | Destination type, one of                 |

        | EndTime           | String  | Job end date and time                    |

        | ID                | Long    | Job ID number                            |

        | Label             | String  | Label value associated with this Job     |

        | NumErrors         | Long    | Number of errors encountered so far      |

        | NumFilesCollected | Long    | Number of files collected so far         |

        | NumFilesToCollect | Long    | Total number fo files to collect         |

        | NumWarninings     | Long    | Number of warnings encountered so far    |

        | PausedMinutes:    | String  | Number of minutes to job has been paused |

        | Priority          | String  | Job priority number                      |

        | ProgramName       | String  | Name of program performing the job       |

        | ReportingTime     | String  | Date and time of last job status report  |

        | Stage             | String  | Job stage                                |

        | Status            | String  | Job status (see list below)              |

        | SubmitTime        | String  | Date and time job was sbmitted           |

        | TargetID          | Long    | Target ID number                         |

        | TargetName        | String  | Target name                              |

        | TaskName          | String  | Task name                                |

        | TaskNumber        | Integer | Task ID number                           |

        | TotalTasks        | Integer | Total number of tasks in this job        |



        ### Job status values\:


        Awaiting Resource, Cancelled, Cancelling, Failed, Finished, Paused, Pausing, PickedUp, Ready, Resumed, Resuming, Running, Suspended, Suspending, Waiting'
      operationId: listJobsByFilter
      parameters:
      - name: offset
        in: query
        description: zero-based offset in the list of computers at which retrieval should start
        required: false
        schema:
          type: integer
      - name: version
        in: query
        description: 'version of the Jobs table, obtained from the last call to this function.


          The Jobs table in the ECC Server database gets a new version whenever it is modified.

          This version is returned in the response body for this query in the field `tableVersion`.


          If `version` is supplied, it is compared to the current version of the Jobs table.

          If the version numbers match, there is no updated data since the last call,

          and the query is aborted with a **204, ''No Content.''** response code.'
        required: false
        schema:
          type: integer
      - name: countOnly
        in: query
        description: 'if `true`, the total count for this query (ignoring `limit` and `offset`) is returned in the Response Body, with no other data.


          This should be used ahead of the actual query to determine the total number of records in the response.'
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/listJobRequest'
            example:
              limit: -1
              filters:
              - name: CollectionID
                value: 109
      responses:
        '200':
          description: Job Listing was submitted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  tableVersion:
                    type: integer
                    description: 'current version of the Jobs table in the ECC database.


                      Use this in subsequent Job List commands, in the query field `version`, to prevent unneeded queries.'
                  totalCount:
                    type: integer
                    description: total number of jobs for this response, as if `limit` was not provided
                  startRow:
                    type: integer
                    description: starting row of this response within the total count
                  endRow:
                    type: integer
                    description: ending row of this response within the total count
                  next:
                    type: string
                    description: 'URL to get the next set of responses.


                      Included only if `endRow` does not include all available responses.'
                  jobs:
                    type: array
                    items:
                      $ref: '#/components/schemas/jobListDetail'
              example:
                tableVersion: 0
                totalCount: 2
                startRow: 0
                endRow: 0
                next: /api/ecc/v2/jobs?offset=1
                jobs:
                - id: 109
                  taskName: Collect
                  label: ''
                  caseName: Group
                  status: Finished
                  warnings: 0
                  errors: 1
                  bytesCollected: 138007
                  bytesToCollect: 138007
                  filesCollected: 5
                  filesToCollect: 30
                  collectionId: 109
                  collectionName: 'Group Test 8.


                    12pm'
                  custodianName: Unassigned
                  custodianId: 1
                  targetName: _System
                  targetId: 1
                  destination: 'c:\collection\Group\Group Test 8.


                    12pm\AUSYD-L-NX0142\FileSafe\AUSYD-L-NX0142 2020-07-19 20-13-13.


                    mfs01'
                  beginTime: '2020-07-19T10:13:13.


                    000Z'
                  endTime: '2020-07-19T10:14:00.


                    000Z'
                  computerId: E21287F5-9E96-6CFF-0624-056AFA28E902
                  computerName: AUSYD-L-NX0142
  /v2/jobAction/{id}:
    post:
      tags:
      - Job
      summary: Modifies the state of the specified job
      description: 'Modify the job state of the job identified by the id in the URL.  The `action` string in the body applies the following state change to the job\:


        | Action   | Description                                             |

        | -------- | ------------------------------------------------------- |

        | Cancel   | cancels the job                                         |

        | Pause    | pause the job (can be continued)                        |

        | Continue | continues a paused job                                  |

        | Resume   | resumes a failed or stopped job from where it stopped   |

        | Restart  | restarts a job from the beginning                       |'
      operationId: jobAction
      parameters:
      - name: id
        in: path
        description: id of the job
        required: true
        schema:
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/jobActionRequest'
            example:
              action: Pause
      responses:
        '200':
          description: Job status changed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/standardResponse'
              example:
                code: 200
                id: 100
                message: OK
        '400':
          description: error response - job status has not been changed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/standardResponse'
              examples:
                job_action_not_recognized:
                  summary: Job action not recognized
                  value:
                    code: 400
                    id: 101
                    message: Action Terminate is not a recognized job state.
                job_action_unknown:
                  summary: Job action unknown
                  value:
                    code: 400
                    id: 101
                    message: Job action, null is an unknown action.
                job_action_unavailable:
                  summary: Job action unavailable
                  value:
                    code: 400
                    id: 101
                    message: Action Pause is unavailable in Paused state of a job.
                job_action_error:
                  summary: Job action error
                  value:
                    code: 400
                    id: 101
                    message: Error changing the job state to Paused
components:
  schemas:
    standardResponse:
      type: object
      properties:
        code:
          type: integer
          description: http response status code
        id:
          type: integer
          description: id of the affected Object
        message:
          type: string
          description: http status message
    jobDetail:
      type: object
      properties:
        id:
          type: integer
          description: id of the job
        taskType:
          type: string
          description: type of the task, one of `Collect`, `Relocate`, `Deploy` or `Launch`
        status:
          type: string
          description: current status of the job (see values below)
        warnings:
          type: integer
          description: current number of warnings
        errors:
          type: integer
          description: current number of errors
        bytesCollected:
          type: integer
          description: bytes currently collected
        bytesToCollect:
          type: integer
          description: total bytes to collect in the job
        filesCollected:
          type: integer
          description: files currently collected
        filesToCollect:
          type: integer
          description: total files to collect in the job
        collectionName:
          type: string
          description: name of the collection this job is running in
        collectionId:
          type: integer
          description: id of the collection this job is running in
        custodianName:
          type: string
          description: name of the custodian associated with this collection, if any
        custodianId:
          type: integer
          description: id of the custodian associated with this collection, if any
        targetName:
          type: string
          description: name of the target this job is collecting from
        targetId:
          type: integer
          description: id of the target this job is collecting from
        destination:
          type: string
          description: destination path for this job
        startTime:
          type: string
          description: date/time of the start of this job
        endTime:
          type: string
          description: date/time of the end of this job
    jobListDetail:
      type: object
      properties:
        id:
          type: integer
          description: id of the job
        taskName:
          type: string
          description: Name of task, one of `Collect`, `Relocate` `Deploy` or `Launch`.
        label:
          type: string
          description: 'Optional, user-defined label for this job.


            Can be used subsequently as search criteria for jobs.'
        caseName:
          type: string
          description: name of the Case this job is running under
        status:
          type: string
          description: current status of the job (see values below)
        warnings:
          type: integer
          description: current number of warnings
        errors:
          type: integer
          description: current number of errors
        bytesCollected:
          type: integer
          description: bytes currently collected
        bytesToCollect:
          type: integer
          description: total bytes to collect in the job
        filesCollected:
          type: integer
          description: files currently collected
        filesToCollect:
          type: integer
          description: total files to collect in the job
        collectionId:
          type: integer
          description: id of the collection this job is running in
        collectionName:
          type: string
          description: name of the collection this job is running in
        custodianName:
          type: string
          description: name of the custodian associated with this collection, if any
        custodianId:
          type: integer
          description: id of the custodian associated with this collection, if any
        targetName:
          type: string
          description: name of the target this job is collecting from
        targetId:
          type: integer
          description: id of the target this job is collecting from
        destination:
          type: string
          description: destination path for this job
        startTime:
          type: string
          description: date/time of the start of this job
        endTime:
          type: string
          description: date/time of the end of this job
        computerId:
          type: integer
          description: id of the computer on which this job is running
        computerName:
          type: string
          description: name of the computer on which this job is running
    jobActionRequest:
      type: object
      properties:
        action:
          type: string
          description: action to be applied to the specified job.
          enum:
          - Cancel
          - Pause
          - Continue
          - Resume
          - Restart
    listJobRequest:
      type: object
      properties:
        limit:
          type: integer
          description: optional, maximum number of jobs to be included in the response.
        jobId:
          type: integer
          description: 'optional, id of a specific job to retrieve.


            If provided, other parameters are ignored, as only the specified job is included in the response.'
        sortBy:
          type: string
          description: optional, field name to sort result (see list of field names in the description of this command).
          enum:
          - ID
          - CollectionID
          - CustodianID
          - TargetID
          - ComputerID
          - TaskName
          - TaskNumber
          - Label
          - TotalTasks
          - ProgramName
          - Destination
          - DestinationType
          - CaseName
          - CollectionName
          - CustodianName
          - TargetName
          - ComputerName
          - Status
          - Priority
          - Stage
          - SubmitTime
          - BeginTime
          - EndTime
          - NumFilesToCollect
          - NumFilesCollected
          - BytesToCollect
          - BytesCollected
          - NumWarninings
          - NumErrors
          - ReportingTime
          - PausedMinutes
        ascending:
          type: boolean
          description: 'optional, `true` to sort results in ascending order, `false` for descending.


            If omitted, sort is ascending'
        filters:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the field to filter by.  See the list of field names in the description of this command.
                enum:
                - ID
                - CollectionID
                - CustodianID
                - TargetID
                - ComputerID
                - TaskName
                - TaskNumber
                - Label
                - TotalTasks
                - ProgramName
                - Destination
                - DestinationType
                - CaseName
                - CollectionName
                - CustodianName
                - TargetName
                - ComputerName
                - Status
                - Priority
                - Stage
                - SubmitTime
                - BeginTime
                - EndTime
                - NumFilesToCollect
                - NumFilesCollected
                - BytesToCollect
                - BytesCollected
                - NumWarninings
                - NumErrors
                - ReportingTime
                - PausedMinutes
              value:
                description: The value of the specified field to filter by.  The type can vary depending on the field (see the field list in this command's description).  String comparisons are case-sensitive.
        where:
          type: string
          description: 'optional, SQL WHERE clause (minus the word WHERE) used to construct more complex filtering.


            If `where` is specified or present then the `filters` field is ignored.'
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic