GET /openapi/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/vnd.oai.openapi
Vary: Accept

openapi: 3.0.2
info:
  title: MUSES Calculation Engine API
  version: 0.11.0
  description: API for the MUSES Calculation Engine
paths:
  /token:
    get:
      operationId: listAuthTokens
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AuthToken'
          description: ''
      tags:
      - token
    post:
      operationId: createAuthToken
      description: ''
      parameters: []
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AuthToken'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AuthToken'
          application/json:
            schema:
              $ref: '#/components/schemas/AuthToken'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthToken'
          description: ''
      tags:
      - token
  /request-access:
    get:
      operationId: listRequestAccesses
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
          description: ''
      tags:
      - request-access
  /api/v0/user/:
    get:
      operationId: listUsers
      description: API endpoint that allows users to be viewed or edited.
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                required:
                - count
                - results
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
          description: ''
      tags:
      - api
    post:
      operationId: createUser
      description: API endpoint that allows users to be viewed or edited.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      tags:
      - api
  /api/v0/user/{id}/:
    get:
      operationId: retrieveUser
      description: API endpoint that allows users to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this user.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      tags:
      - api
    put:
      operationId: updateUser
      description: API endpoint that allows users to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this user.
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      tags:
      - api
    patch:
      operationId: partialUpdateUser
      description: API endpoint that allows users to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this user.
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      tags:
      - api
    delete:
      operationId: destroyUser
      description: API endpoint that allows users to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: A unique integer value identifying this user.
        schema:
          type: string
      responses:
        '204':
          description: ''
      tags:
      - api
  /ce/modules/:
    get:
      operationId: listModules
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
          description: ''
      tags:
      - ce
  /ce/limits/:
    get:
      operationId: listUsageLimits
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
          description: ''
      tags:
      - ce
  /ce/download/{job_id}/{file_path}:
    get:
      operationId: downloadJobFileDownloadViewSet
      description: ''
      parameters:
      - name: job_id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: file_path
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: ''
      tags:
      - ce
    post:
      operationId: downloadJobFileDownloadViewSet
      description: ''
      parameters:
      - name: job_id
        in: path
        required: true
        description: ''
        schema:
          type: string
      - name: file_path
        in: path
        required: true
        description: ''
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema: {}
          application/x-www-form-urlencoded:
            schema: {}
          multipart/form-data:
            schema: {}
      responses:
        '201':
          content:
            application/json:
              schema: {}
          description: ''
      tags:
      - ce
  /ce/download/{upload_id}:
    get:
      operationId: downloadUploadDownloadViewSet
      description: ''
      parameters:
      - name: upload_id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema: {}
          description: ''
      tags:
      - ce
    post:
      operationId: downloadUploadDownloadViewSet
      description: ''
      parameters:
      - name: upload_id
        in: path
        required: true
        description: ''
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema: {}
          application/x-www-form-urlencoded:
            schema: {}
          multipart/form-data:
            schema: {}
      responses:
        '201':
          content:
            application/json:
              schema: {}
          description: ''
      tags:
      - ce
  /api/v0/ce/job/:
    get:
      operationId: listJobs
      description: API endpoint that allows jobs to be viewed or edited.
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                required:
                - count
                - results
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Job'
          description: ''
      tags:
      - api
    post:
      operationId: createJob
      description: API endpoint that allows jobs to be viewed or edited.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Job'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Job'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Job'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
      tags:
      - api
  /api/v0/ce/job/{id}/:
    get:
      operationId: retrieveJob
      description: API endpoint that allows jobs to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
      tags:
      - api
    put:
      operationId: updateJob
      description: API endpoint that allows jobs to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Job'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Job'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Job'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
      tags:
      - api
    patch:
      operationId: partialUpdateJob
      description: API endpoint that allows jobs to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Job'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Job'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Job'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
          description: ''
      tags:
      - api
    delete:
      operationId: destroyJob
      description: API endpoint that allows jobs to be viewed or edited.
      parameters:
      - name: id
        in: path
        required: true
        description: ''
        schema:
          type: string
      responses:
        '204':
          description: ''
      tags:
      - api
  /api/v0/ce/upload/:
    get:
      operationId: listUploads
      description: ''
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                required:
                - count
                - results
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Upload'
          description: ''
      tags:
      - api
    put:
      operationId: createUpload
      description: ''
      parameters: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Upload'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Upload'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Upload'
          description: ''
      tags:
      - api
  /api/v0/ce/upload/{uuid}/:
    get:
      operationId: retrieveUpload
      description: ''
      parameters:
      - name: uuid
        in: path
        required: true
        description: A UUID string identifying this upload.
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Upload'
          description: ''
      tags:
      - api
    patch:
      operationId: partialUpdateUpload
      description: ''
      parameters:
      - name: uuid
        in: path
        required: true
        description: A UUID string identifying this upload.
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Upload'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Upload'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Upload'
          description: ''
      tags:
      - api
    delete:
      operationId: destroyUpload
      description: ''
      parameters:
      - name: uuid
        in: path
        required: true
        description: A UUID string identifying this upload.
        schema:
          type: string
      responses:
        '204':
          description: ''
      tags:
      - api
  /api/v0/ce/metrics/:
    get:
      operationId: listMetrics
      description: ''
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                required:
                - count
                - results
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=400&limit=100
                  previous:
                    type: string
                    nullable: true
                    format: uri
                    example: http://api.example.org/accounts/?offset=200&limit=100
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/Metric'
          description: ''
      tags:
      - api
  /api/v0/ce/module/:
    get:
      operationId: listModules
      description: ''
      parameters: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items: {}
          description: ''
      tags:
      - api
  /api/v0/token/:
    post:
      operationId: createget_token
      description: ''
      parameters: []
      requestBody:
        content:
          application/json:
            schema: {}
          application/x-www-form-urlencoded:
            schema: {}
          multipart/form-data:
            schema: {}
      responses:
        '201':
          content:
            application/json:
              schema: {}
          description: ''
      tags:
      - api
components:
  schemas:
    AuthToken:
      type: object
      properties:
        username:
          type: string
          writeOnly: true
        password:
          type: string
          writeOnly: true
        token:
          type: string
          readOnly: true
      required:
      - username
      - password
    User:
      type: object
      properties:
        url:
          type: string
          readOnly: true
        username:
          type: string
          description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_
            only.
          pattern: ^[\w.@+-]+\z
          maxLength: 150
        email:
          type: string
          format: email
          maxLength: 254
        groups:
          type: array
          items:
            type: string
          description: The groups this user belongs to. A user will get all permissions
            granted to each of their groups.
      required:
      - username
    Job:
      type: object
      properties:
        owner:
          type: string
          readOnly: true
          nullable: true
        created:
          type: string
          format: date-time
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        error_info:
          type: string
          readOnly: true
        status:
          enum:
          - PENDING
          - STARTED
          - SUCCESS
          - FAILURE
          - RETRY
          - REVOKED
          type: string
          readOnly: true
        modified:
          type: string
          format: date-time
          readOnly: true
        files:
          type: string
          readOnly: true
        task_ids:
          type: object
          readOnly: true
          nullable: true
        current_processes:
          type: object
          readOnly: true
        completed_processes:
          type: object
          readOnly: true
        name:
          type: string
        description:
          type: string
        saved:
          type: boolean
        public:
          type: boolean
        config:
          type: object
          nullable: true
    Upload:
      type: object
      properties:
        file:
          type: string
          format: binary
        created:
          type: string
          format: date-time
          readOnly: true
        path:
          type: string
        owner:
          type: string
          readOnly: true
        public:
          type: boolean
        description:
          type: string
        uuid:
          type: string
          format: uuid
          readOnly: true
        size:
          type: integer
          readOnly: true
        checksum:
          type: string
          maxLength: 32
      required:
      - file
    Metric:
      type: object
      properties:
        time_collected:
          type: string
          format: date-time
          readOnly: true
        jobs_total:
          type: integer
          readOnly: true
        jobs_success:
          type: integer
          readOnly: true
        jobs_failure:
          type: integer
          readOnly: true
        users_count:
          type: integer
          readOnly: true
        users_active:
          type: integer
          readOnly: true
        uploads_total:
          type: integer
          readOnly: true
        uploads_size:
          type: integer
          readOnly: true
        job_files_total:
          type: integer
          readOnly: true
        job_files_size:
          type: integer
          readOnly: true
        module_usage:
          type: object
          readOnly: true