scitran/core

View on GitHub
swagger/paths/projects.yaml

Summary

Maintainability
Test Coverage
$template_arguments:
  resource: project
  tag: projects
  parameter: ProjectId

/projects:
  $template: templates/container.yaml
  arguments:
    list-output-schema: schemas/output/project-list.json
    create-input-schema: schemas/input/project.json

/projects/{ProjectId}:
  $template: templates/container-item.yaml
  arguments:
    update-input-schema: schemas/input/project-update.json
    get-output-schema: schemas/output/project.json
    delete-description: Only site admins and users with "admin" project permissions may delete a project

/projects/{ProjectId}/info:
  $template: templates/container-item-info.yaml

/projects/groups:
  get:
    summary: List all groups which have a project in them
    operationId: get_all_projects_groups
    tags:
    - projects
    responses:
      '200':
        description: ''
        schema:
          $ref: schemas/output/groups-list.json

'/projects/{ProjectId}/sessions':
  parameters:
    - in: path
      type: string
      name: ProjectId
      required: true
  get:
    summary: List all sessions for the given project.
    operationId: get_project_sessions
    tags:
    - projects
    responses:
      '200':
        description: ''
        schema:
          $ref: schemas/output/session-list.json

'/projects/{ProjectId}/acquisitions':
  parameters:
    - in: path
      type: string
      name: ProjectId
      required: true
  get:
    summary: List all acquisitions for the given project.
    operationId: get_project_acquisitions
    tags:
    - projects
    responses:
      '200':
        description: ''
        schema:
          $ref: schemas/output/acquisition-list.json

/projects/{ProjectId}/rules:
  parameters:
    - in: path
      type: string
      name: ProjectId
      required: true
  get:
    summary: List all rules for a project.
    operationId: get_project_rules
    tags:
    - projects
    - rules
    responses:
      '200':
        description: ''
        schema:
          $ref: schemas/output/rule-list.json
  post:
    summary: Create a new rule for a project.
    operationId: add_project_rule
    tags:
    - projects
    - rules
    responses:
      default:
        description: ''
    parameters:
      - in: body
        name: body
        schema:
          $ref: schemas/input/rule-new.json

/projects/{ProjectId}/rules/{RuleId}:
  parameters:
    - in: path
      type: string
      name: ProjectId
      required: true
    - in: path
      type: string
      name: RuleId
      required: true
  get:
    summary: Get a project rule.
    operationId: get_project_rule
    tags:
    - projects
    - rules
    responses:
      '200':
        description: ''
        schema:
          $ref: schemas/output/rule.json
  put:
    summary: Update a rule on a project.
    operationId: modify_project_rule
    tags:
    - projects
    - rules
    responses:
      default:
        description: ''
    parameters:
      - in: body
        name: body
        schema:
          $ref: schemas/input/rule-update.json        
  delete:
    summary: Remove a project rule.
    operationId: remove_project_rule
    tags:
    - projects
    - rules
    responses:
      '200':
        $ref: '#/responses/200:deleted-with-count'

/projects/{ProjectId}/template:
  parameters:
    - in: path
      type: string
      name: ProjectId
      required: true
  post:
    summary: Set the session template for a project.
    operationId: set_project_template
    tags:
    - projects
    parameters:
      - in: body
        name: body
        schema:
          $ref: schemas/input/project-template.json
    responses:
      '200':
        $ref: '#/responses/200:modified-with-count'
      '404':
        $ref: '#/responses/404:resource-not-found'
  delete:
    summary: Remove the session template for a project.
    operationId: remove_project_template
    tags:
    - projects
    responses:
      '200':
        $ref: '#/responses/200:deleted-with-count'
      '404':
        $ref: '#/responses/404:resource-not-found'

'/projects/{ProjectId}/recalc':
  parameters:
    - in: path
      type: string
      name: ProjectId
      required: true
  post:
    summary: Recalculate if sessions in the project satisfy the template.
    description: Returns list of modified session ids.
    operationId: recalc_project
    tags:
    - projects
    responses:
      '200':
        description: |
          Project's sessions' compliance was recalculated.
          Returns list of session that were modified.
        schema:
          $ref: schemas/output/session-template-recalc.json
      '404':
        $ref: '#/responses/404:resource-not-found'

/projects/recalc:
  post:
    summary: Recalculate all sessions against their project templates.
    description: |
      Iterates all projects that have a session template.
      Recalculate if projects' sessions satisfy the template.
      Returns list of modified session ids.
    operationId: recalc_all_projects
    tags:
    - projects
    responses:
      '200':
        description: |
          Projects' sessions' compliance was recalculated.
          Returns list of session that were modified.
        schema:
          $ref: schemas/output/session-template-recalc.json


# ===== Tags =====
/projects/{ProjectId}/tags:
  $template: templates/tags.yaml
/projects/{ProjectId}/tags/{TagValue}:
  $template: templates/tags-tag.yaml

# ===== Packfile =====
/projects/{ProjectId}/packfile-start:
  $template: templates/packfile-start.yaml
/projects/{ProjectId}/packfile:
  $template: templates/packfile.yaml
/projects/{ProjectId}/packfile-end:
  $template: templates/packfile-end.yaml

# ===== Files =====
/projects/{ProjectId}/files:
  $template: templates/file-list-upload.yaml
/projects/{ProjectId}/files/{FileName}:
  $template: templates/file-item.yaml
/projects/{ProjectId}/files/{FileName}/info:
  $template: templates/file-item-info.yaml

# ===== Permissions =====
/projects/{ProjectId}/permissions:
  $template: templates/permissions.yaml
/projects/{ProjectId}/permissions/{UserId}:
  $template: templates/permissions-user.yaml

# ===== Notes =====
/projects/{ProjectId}/notes:
  $template: templates/notes.yaml
/projects/{ProjectId}/notes/{NoteId}:
  $template: templates/notes-note.yaml

# ===== Analyses =====
/projects/{ProjectId}/analyses:
  $template: templates/analyses-list.yaml
  arguments:
    allowCreate: true
/projects/{ProjectId}/analyses/{AnalysisId}:
  $template: templates/analysis-item.yaml
  arguments:
    supportsDelete: true
/projects/{ProjectId}/analyses/{AnalysisId}/inputs:
  $template: templates/analysis-files.yaml
  arguments:
    filegroup: inputs
/projects/{ProjectId}/analyses/{AnalysisId}/inputs/{Filename}:
  $template: templates/analysis-files-create-ticket-filename.yaml
  arguments:
    filegroup: inputs
/projects/{ProjectId}/analyses/{AnalysisId}/files:
  $template: templates/analysis-files.yaml
  arguments:
    filegroup: outputs
/projects/{ProjectId}/analyses/{AnalysisId}/files/{Filename}:
  $template: templates/analysis-files-create-ticket-filename.yaml
  arguments:
    filegroup: outputs
/projects/{ProjectId}/analyses/{AnalysisId}/notes:
  $template: templates/analysis-notes.yaml
/projects/{ProjectId}/analyses/{AnalysisId}/notes/{NoteId}:
  $template: templates/analysis-notes-item.yaml