One Codex Controls API

The Controls API from One Codex — 9 operation(s) for controls.

OpenAPI Specification

one-codex-controls-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  description: The One Codex API (v1) -- programmatic access to One Codex's suite of microbial genomics data storage, analysis, and query tools.
  title: One Codex API (v1) Account Controls API
  version: v1
servers:
- url: https://app.onecodex.com
security:
- apiKeyAuth: []
tags:
- name: Controls
paths:
  /api/v1/controls:
    get:
      operationId: get_controls_instances
      parameters:
      - description: Page number. Defaults to 1. See Pagination for more details.
        in: query
        name: page
        required: false
        schema:
          default: 1
          format: int32
          type: integer
      - description: Number of requested paginated records. Defaults to 50. See Pagination for more details.
        in: query
        name: per_page
        required: false
        schema:
          default: 50
          format: int32
          type: integer
      - description: 'Optional Mongo-style JSON sort clause, e.g., `sort={"created_at": true}` to sort by created_at (descending)'
        in: query
        name: sort
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          default: null
      - description: 'Optional Mongo-style JSON filter clause, e.g., `where={"$uri": {"$eq": "/api/v1/samples/0ee172af60e84f61"}}`'
        in: query
        name: where
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          default: null
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/controls'
                type: array
          description: OK
      summary: GET controls instances
      tags:
      - Controls
  /api/v1/controls/public:
    get:
      operationId: get_controls_instances_public
      parameters:
      - description: Page number. Defaults to 1. See Pagination for more details.
        in: query
        name: page
        required: false
        schema:
          default: 1
          format: int32
          type: integer
      - description: Number of requested paginated records. Defaults to 50. See Pagination for more details.
        in: query
        name: per_page
        required: false
        schema:
          default: 50
          format: int32
          type: integer
      - description: 'Optional Mongo-style JSON sort clause, e.g., `sort={"created_at": true}` to sort by created_at (descending)'
        in: query
        name: sort
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          default: null
      - description: 'Optional Mongo-style JSON filter clause, e.g., `where={"$uri": {"$eq": "/api/v1/samples/0ee172af60e84f61"}}`'
        in: query
        name: where
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          default: null
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/controls'
                type: array
          description: OK
      summary: GET controls instances_public
      tags:
      - Controls
  /api/v1/controls/{id}:
    get:
      operationId: get_controls_self
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controls'
          description: OK
      summary: GET controls
      tags:
      - Controls
  /api/v1/controls/{id}/cancel:
    post:
      operationId: post_controls_cancel
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controls'
          description: OK
      summary: POST controls cancel
      tags:
      - Controls
  /api/v1/controls/{id}/file_details:
    get:
      operationId: get_controls_file_details
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  files:
                    description: A list of output files.
                    items:
                      properties:
                        filename:
                          description: The filename of the output file.
                          title: Filename
                          type: string
                        filepath:
                          description: The full file path.
                          title: Filepath
                          type: string
                        size:
                          description: File size in bytes.
                          minimum: 0
                          title: Size
                          type: integer
                        url:
                          description: Pre-signed download URL.
                          title: Url
                          type: string
                      required:
                      - filename
                      - filepath
                      - size
                      - url
                      title: AnalysisFileDetailsSchema
                      type: object
                    title: Files
                    type: array
                required:
                - files
                title: AnalysisFileDetailsResponse
                type: object
          description: OK
      summary: GET controls file_details
      tags:
      - Controls
  /api/v1/controls/{id}/files:
    delete:
      operationId: delete_controls_files
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
      summary: DELETE controls files
      tags:
      - Controls
    get:
      operationId: get_controls_files
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                description: A mapping of filenames to download URLs.
                type: object
          description: OK
      summary: GET controls files
      tags:
      - Controls
  /api/v1/controls/{id}/logs:
    get:
      operationId: get_controls_logs
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      - in: query
        name: tail
        required: false
        schema:
          anyOf:
          - minimum: 1
            type: integer
          - type: 'null'
          default: null
      responses:
        '200':
          description: OK
      summary: GET controls logs
      tags:
      - Controls
  /api/v1/controls/{id}/rerun:
    post:
      operationId: post_controls_rerun
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controls'
          description: OK
      summary: POST controls rerun
      tags:
      - Controls
  /api/v1/controls/{id}/results:
    get:
      operationId: get_controls_results
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  analysis_type:
                    title: Analysis Type
                    type: string
                  control_job:
                    title: Control Job
                    type: string
                  false_positive_orgs:
                    title: False Positive Orgs
                  filename:
                    title: Filename
                    type: string
                  metrics:
                    title: Metrics
                  product_code:
                    title: Product Code
                    type: string
                  true_positive_orgs:
                    title: True Positive Orgs
                required:
                - analysis_type
                - control_job
                - false_positive_orgs
                - filename
                - metrics
                - product_code
                - true_positive_orgs
                title: ControlResultsResponse
                type: object
          description: OK
      summary: GET controls results
      tags:
      - Controls
components:
  schemas:
    controls:
      properties:
        $uri:
          example: /api/v1/controls/0d77065796f8d173
          pattern: ^/api/v1/controls/[a-f0-9]{16}$
          readOnly: true
          title: $Uri
          type: string
        complete:
          default: false
          title: Complete
          type: boolean
        created_at:
          description: Timestamp for when the object was created on the One Codex platform, encoded as a [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) timestamp.
          format: date-time
          title: Created At
          type: string
        error_msg:
          anyOf:
          - maxLength: 255
            type: string
          - type: 'null'
          default: null
          description: The error message from the analysis, if it failed.
          title: Error Msg
        job:
          description: 'A reference to the versioned job underlying the analysis, e.g., `{"$ref": "/api/v1/jobs/d512cb556241440f"}`.'
          properties:
            $ref:
              example: /api/v1/jobs/a1b2c3d4e5f67890
              format: uri
              pattern: ^/api/v1/jobs/[a-f0-9]{16}$
              type: string
          title: jobs
          type: object
        job_args:
          additionalProperties: true
          default: {}
          description: The arguments passed into this analysis (can be `null`).
          title: Job Args
          type: object
        sample:
          description: 'A reference to the sample underlying the analysis, e.g., `{"$ref": "/api/v1/sample/0ee172af60e84f61"}`.'
          properties:
            $ref:
              example: /api/v1/samples/a1b2c3d4e5f67890
              format: uri
              pattern: ^/api/v1/samples/[a-f0-9]{16}$
              type: string
          title: samples
          type: object
        success:
          default: false
          title: Success
          type: boolean
        updated_at:
          anyOf:
          - format: date-time
            type: string
          - type: 'null'
          default: null
          description: Timestamp for when the object was last updated on the One Codex platform, encoded as a [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) timestamp.
          title: Updated At
      required:
      - $uri
      - created_at
      - job
      - sample
      title: controls
      type: object
  securitySchemes:
    apiKeyAuth:
      in: header
      name: X-API-Key
      type: apiKey