ecli-server-codegen 1.0.0

RESTFul APIs provided by ecli-server
Documentation
openapi: 3.0.3
info:
  description: RESTFul APIs provided by ecli-server
  license:
    name: MIT
  title: ecli API
  version: 1.0.0
servers:
- url: http://localhost:8527
paths:
  /task:
    get:
      operationId: getTaskList
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/task_list_response'
          description: List of running tasks
      summary: Get list of running tasks
    post:
      operationId: startTask
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartTaskRequest'
        description: Task data
        required: true
      responses:
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Invalid arguments
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/startTask_200_response'
          description: List of running tasks
      summary: Start a new task
    summary: Endpoints for tasks
  /stop:
    description: Stop a task by id or name
    post:
      operationId: stopTaskByID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/simple_id_request'
        description: Task id
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                properties: {}
                type: object
          description: Status of stopping the task
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Invalid handle
        "500":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Failed to terminate
      summary: Stop a task by id
  /log:
    post:
      description: get log from server
      operationId: getTaskLogByID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTaskLogRequest'
        required: true
      responses:
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Invalid handle
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/GetTaskLogResponse_inner'
                title: GetTaskLogResponse
                type: array
          description: The log fetched
      summary: get log
  /pause:
    description: Pause a task by id
    post:
      operationId: pauseTaskByID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/simple_id_request'
        description: Task id
        required: true
      responses:
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Failed to pause
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Invalid handle
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/task_status'
          description: Status of pausing the task
      summary: Pause a task by id
  /resume:
    description: Resume a task by id
    post:
      operationId: resumeTaskByID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/simple_id_request'
        description: Task id
        required: true
      responses:
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Failed to resume
        "404":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/general_error'
          description: Invalid handle
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/task_status'
          description: Status of the task
      summary: Resume a task by id
components:
  schemas:
    general_error:
      properties:
        message:
          description: description of the unexpected situation
          type: string
      required:
      - message
      type: object
    simple_id_request:
      properties:
        id:
          format: uint64
          type: integer
      required:
      - id
      type: object
    task_status:
      description: The status of the task
      enum:
      - running
      - paused
      type: string
    program_type:
      enum:
      - wasm
      - json
      - tar
      type: string
    log_type:
      enum:
      - stderr
      - stdout
      - plain
      type: string
    task_list_response:
      example:
        tasks:
        - name: name
          id: 0
          status: null
        - name: name
          id: 0
          status: null
      properties:
        tasks:
          items:
            $ref: '#/components/schemas/task_list_response_tasks_inner'
          type: array
      required:
      - tasks
      type: object
    StartTaskRequest:
      example:
        program_type: null
        btf_archive_path: btf_archive_path
        program_data_buf: program_data_buf
        extra_args:
        - extra_args
        - extra_args
        program_name: program_name
        export_json: true
      properties:
        program_data_buf:
          description: Base64-encoded program data
          type: string
        program_type:
          $ref: '#/components/schemas/program_type'
        program_name:
          description: "The name of the program. If not provided, will generate a\
            \ random one"
          type: string
        btf_archive_path:
          description: Btf archive path in the server.
          type: string
        extra_args:
          description: Command line arguments to the eBPF program
          items:
            type: string
          type: array
        export_json:
          description: Whether to let the bpf-loader program dumps json. Only works
            for json & tar program
          type: boolean
      required:
      - program_data_buf
      - program_type
      title: StartTaskRequest
      type: object
    startTask_200_response:
      example:
        id: 0
        task_list:
          tasks:
          - name: name
            id: 0
            status: null
          - name: name
            id: 0
            status: null
      properties:
        id:
          format: uint64
          type: integer
        task_list:
          $ref: '#/components/schemas/task_list_response'
      required:
      - id
      - task_list
      type: object
    GetTaskLogRequest:
      example:
        maximum_count: 1
        log_cursor: 6
        id: 0
      properties:
        id:
          description: The program ID
          format: uint64
          type: integer
        log_cursor:
          description: "Only fetch logs after this cursor (included). If not provided,\
            \ return logs stored with minimum cursor"
          format: uint64
          type: integer
        maximum_count:
          description: "Fetch at most such number of logs. If not provided, use a\
            \ default value that server specified"
          format: uint64
          type: integer
      required:
      - id
      title: GetTaskLogRequest
      type: object
    GetTaskLogResponse_inner_log:
      example:
        log_type: null
        log: log
        timestamp: 6
      properties:
        log:
          type: string
        timestamp:
          format: uint64
          type: integer
        log_type:
          $ref: '#/components/schemas/log_type'
      required:
      - log
      - log_type
      - timestamp
      type: object
    GetTaskLogResponse_inner:
      example:
        cursor: 0
        log:
          log_type: null
          log: log
          timestamp: 6
      properties:
        cursor:
          format: uint64
          type: integer
        log:
          $ref: '#/components/schemas/GetTaskLogResponse_inner_log'
      required:
      - cursor
      - log
      type: object
    task_list_response_tasks_inner:
      example:
        name: name
        id: 0
        status: null
      properties:
        status:
          $ref: '#/components/schemas/task_status'
        id:
          description: The ID of the task
          format: uint64
          type: integer
        name:
          description: The name of the task
          type: string
      required:
      - id
      - name
      - status
      type: object