Validere job API

Bulk Job status

OpenAPI Specification

validere-job-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: Activity Log
  title: CarbonHub activities job API
  version: 1.0.0
servers:
- url: https://api.validere.io
security:
- Staging: []
- Integration: []
- Local: []
tags:
- description: Bulk Job status
  name: job
paths:
  /app/v1/jobs/search:
    post:
      operationId: search_jobs
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/Paginated'
              - $ref: '#/components/schemas/JobSort'
              - $ref: '#/components/schemas/JobFilter'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedJobs'
          description: A successful operation
      summary: Search jobs
      tags:
      - job
  /app/v2/jobs/{job_id}:
    get:
      operationId: get_job_v2
      parameters:
      - $ref: '#/components/parameters/JobId'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobV2'
          description: A successful operation
      summary: Get a job
      tags:
      - job
  /app/v1/jobs/{job_id}/items:
    get:
      operationId: get_job_items
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/SortBy'
      - $ref: '#/components/parameters/SortDirection'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedJobItems'
          description: A successful operation
      summary: List job items
      tags:
      - job
components:
  parameters:
    PageSize:
      description: page size
      in: query
      name: page_size
      required: false
      schema:
        type: number
    SortBy:
      description: sort by
      in: query
      name: sort_by
      required: false
      schema:
        type: string
    Page:
      description: page number
      in: query
      name: page
      required: false
      schema:
        type: number
    SortDirection:
      description: sort direction
      example: desc
      in: query
      name: sort_direction
      required: false
      schema:
        enum:
        - asc
        - desc
        type: string
    JobId:
      description: Job ID
      in: path
      name: job_id
      required: true
      schema:
        format: uuid
        type: string
  schemas:
    PagedJobItems:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - properties:
          data:
            items:
              $ref: '#/components/schemas/JobItem'
            type: array
        type: object
    JobSort:
      properties:
        sort_by:
          enum:
          - id
          - status
          - type
          - started_at
          - finished_at
          example: type
          type: string
        sort_direction:
          default: desc
          description: Sort direction
          enum:
          - asc
          - desc
          example: desc
          type: string
    Job:
      type: object
      properties:
        id:
          type: string
          format: uuid
        company_id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/JobStatus'
        type:
          $ref: '#/components/schemas/JobType'
        started_at:
          type: string
          format: date-time
        finished_at:
          type: string
          format: date-time
        duration:
          type: number
        input:
          type: object
        output:
          type: object
        total_items:
          type: number
        processed_items:
          type: number
        item_status_counts:
          $ref: '#/components/schemas/JobItemStatusCounts'
    JobV2:
      properties:
        id:
          type: string
          format: uuid
        company_id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/JobStatus'
        type:
          $ref: '#/components/schemas/JobType'
        started_at:
          type: string
          format: date-time
        finished_at:
          type: string
          format: date-time
        duration:
          type: number
        input:
          type: object
        total_items:
          type: number
        processed_items:
          type: number
        item_status_counts:
          $ref: '#/components/schemas/JobItemStatusCounts'
    Pagination:
      properties:
        page_number:
          type: number
          example: 0
        page_size:
          type: number
          example: 10
        total_entries:
          type: number
          example: 58
        total_pages:
          type: number
          example: 6
      type: object
    JobType:
      type: string
      enum:
      - run_calculation
      - apply_default_record_configuration
      - apply_default_calculator_configuration
    JobStatus:
      type: string
      enum:
      - started
      - finished
      - failed
      - partial
    JobFilter:
      properties:
        filter:
          properties:
            id:
              type: string
              format: uuid
            status:
              $ref: '#/components/schemas/JobStatus'
            type:
              $ref: '#/components/schemas/JobType'
            started_at:
              type: string
              format: date-time
            finished_at:
              type: string
              format: date-time
    JobItem:
      properties:
        key:
          type: string
        company_id:
          type: string
          format: uuid
        job_id:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/BulkItemStatus'
        input:
          type: object
        output:
          type: object
    Paginated:
      properties:
        page:
          default: 0
          description: Which page to return
          example: 0
          type: number
        page_size:
          default: 10
          description: How many items to list in a page
          example: 20
          type: number
    BulkItemStatus:
      type: string
      enum:
      - success
      - failed
      - skipped
    JobItemStatusCounts:
      type: object
      properties:
        success:
          type: number
        failed:
          type: number
        skipped:
          type: number
    PagedJobs:
      allOf:
      - $ref: '#/components/schemas/Pagination'
      - properties:
          data:
            items:
              $ref: '#/components/schemas/Job'
            type: array
        type: object