basePath: /api/v1
definitions:
  controller.CommonResult:
    properties:
      code:
        type: integer
      data:
        type: object
      message:
        type: string
    type: object
  model.ProjectModel:
    properties:
      id:
        type: integer
      name:
        type: string
    type: object
  model.TaskModel:
    properties:
      id:
        type: integer
      name:
        type: string
      status:
        type: string
      type:
        type: string
      url:
        type: string
      version:
        type: string
    type: object
  model.VulnerabilityModel:
    properties:
      class:
        type: string
      description:
        type: string
      fixed_version:
        type: string
      id:
        type: integer
      installed_version:
        type: string
      package_name:
        type: string
      severity:
        type: string
      target:
        type: string
      title:
        type: string
      type:
        type: string
      vulnerability_id:
        type: string
    type: object
  project.createProjectReq:
    properties:
      name:
        type: string
    required:
    - name
    type: object
  project.createProjectRsp:
    properties:
      project:
        $ref: '#/definitions/model.ProjectModel'
    type: object
  project.createTaskReq:
    properties:
      type:
        type: string
      url:
        type: string
    required:
    - type
    - url
    type: object
  project.createTaskRsp:
    properties:
      task:
        $ref: '#/definitions/model.TaskModel'
    type: object
  project.deleteProjectRsp:
    type: object
  project.deleteTaskRsp:
    type: object
  project.getProjectInfoRsp:
    properties:
      project:
        $ref: '#/definitions/project.projectInfo'
    type: object
  project.getProjectListRsp:
    properties:
      projects:
        items:
          $ref: '#/definitions/project.projectInfo'
        type: array
    type: object
  project.getProjectReportRsp:
    properties:
      project:
        $ref: '#/definitions/project.projectInfo'
      tasks:
        items:
          $ref: '#/definitions/project.getTaskReportRsp'
        type: array
    type: object
  project.getTaskInfoRsp:
    properties:
      task:
        $ref: '#/definitions/project.taskInfo'
    type: object
  project.getTaskListRsp:
    properties:
      tasks:
        items:
          $ref: '#/definitions/project.taskInfo'
        type: array
    type: object
  project.getTaskReportRsp:
    properties:
      task:
        $ref: '#/definitions/project.taskInfo'
      vulnerabilities:
        items:
          $ref: '#/definitions/model.VulnerabilityModel'
        type: array
    type: object
  project.projectInfo:
    properties:
      id:
        type: integer
      image:
        type: integer
      name:
        type: string
      repository:
        type: integer
      total:
        type: integer
    type: object
  project.taskInfo:
    properties:
      critical:
        type: integer
      high:
        type: integer
      id:
        type: integer
      low:
        type: integer
      medium:
        type: integer
      name:
        type: string
      status:
        type: string
      total:
        type: integer
      type:
        type: string
      unknown:
        type: integer
      url:
        type: string
      version:
        type: string
    type: object
info:
  contact: {}
  description: API Documents of Baseline Check Server
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: http://swagger.io/terms/
  title: Baseline Server API
  version: "1.0"
paths:
  /project:
    get:
      description: Get project list in pages
      parameters:
      - in: query
        name: page
        required: true
        type: integer
      - in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.getProjectListRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Get Project List
      tags:
      - Project
    post:
      consumes:
      - application/json
      description: Create a new project
      parameters:
      - description: create project request
        in: body
        name: createProjectReq
        required: true
        schema:
          $ref: '#/definitions/project.createProjectReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.createProjectRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Create Project
      tags:
      - Project
  /project/{project_id}:
    delete:
      description: Delete project
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.deleteProjectRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Delete Project
      tags:
      - Project
    get:
      description: Get project info in pages
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.getProjectInfoRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Get Project Info
      tags:
      - Project
  /project/{project_id}/report:
    get:
      consumes:
      - application/json
      description: Get specific project report
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.getProjectReportRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Get Project Report
      tags:
      - Project
  /project/{project_id}/task:
    get:
      consumes:
      - application/json
      description: Get all tasks in specific project
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      - in: query
        name: page
        required: true
        type: integer
      - in: query
        name: page_size
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.getTaskListRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Get Task List
      tags:
      - Project
    post:
      consumes:
      - application/json
      description: Create a new scan task
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      - description: create task request
        in: body
        name: createTaskReq
        required: true
        schema:
          $ref: '#/definitions/project.createTaskReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.createTaskRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Create Task
      tags:
      - Project
  /project/{project_id}/task/{task_id}:
    delete:
      consumes:
      - application/json
      description: Delete specific task
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      - description: task id
        in: path
        name: task_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.deleteTaskRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Delete Task
      tags:
      - Project
    get:
      consumes:
      - application/json
      description: Get specific task info
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      - description: task id
        in: path
        name: task_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.getTaskInfoRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Get Task Info
      tags:
      - Project
  /project/{project_id}/task/{task_id}/report:
    get:
      consumes:
      - application/json
      description: Get specific task report
      parameters:
      - description: project id
        in: path
        name: project_id
        required: true
        type: integer
      - description: task id
        in: path
        name: task_id
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/controller.CommonResult'
            - properties:
                data:
                  $ref: '#/definitions/project.getTaskReportRsp'
              type: object
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/controller.CommonResult'
      summary: Get Task Report
      tags:
      - Project
swagger: "2.0"
