swagger: "2.0"
info:
  title: oc-shared
  description: |
    Manages shared workspaces and their synchronization
  version: 1.0.0
  termsOfService: http://cloud.o-forge.io/
  contact:
    email: admin@o-cloud.io
  license:
    name: AGPL
    url: https://www.gnu.org/licenses/agpl-3.0.html
basePath: /oc/
paths:
  /collaborative_area/:
    get:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.GetAll
      parameters:
      - in: query
        name: is_draft
        description: draft wished
        type: string
      responses:
        "200":
          description: '{shared_workspace} models.shared_workspace'
    post:
      tags:
      - collaborative_area
      description: |-
        create shared workspace
        <br>
      operationId: CollaborativeAreaController.Create
      parameters:
      - in: body
        name: data
        description: body for data content (Json format)
        required: true
        schema:
          $ref: '#/definitions/json'
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
  /collaborative_area/{id}:
    get:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Get
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
    put:
      tags:
      - collaborative_area
      description: |-
        create shared workspaces
        <br>
      operationId: CollaborativeAreaController.Update
      parameters:
      - in: path
        name: id
        description: the shared workspace id you want to get
        required: true
        type: string
      - in: body
        name: body
        description: The shared workspace content
        required: true
        schema:
          $ref: '#/definitions/models.workspace'
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
    delete:
      tags:
      - collaborative_area
      description: |-
        delete the shared workspace
        <br>
      operationId: CollaborativeAreaController.Delete
      parameters:
      - in: path
        name: id
        description: The id you want to delete
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} delete success!'
  /collaborative_area/{id}/peer/{id2}:
    post:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Add Peer
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      - in: body
        name: body
        description: The shared workspace content
        required: true
        schema:
          $ref: '#/definitions/models.workspace'
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
    delete:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Remove Peer
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
  /collaborative_area/{id}/rule/{id2}:
    post:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Add Rule
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
    delete:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Remove Rule
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
  /collaborative_area/{id}/workflow/{id2}:
    post:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Add Workflow
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
    delete:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Remove Workflow
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
  /collaborative_area/{id}/workspace/{id2}:
    post:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Add Workspace
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
    delete:
      tags:
      - collaborative_area
      description: |-
        find shared workspace by id
        <br>
      operationId: CollaborativeAreaController.Remove Workspace
      parameters:
      - in: path
        name: id
        description: the id you want to get
        required: true
        type: string
      - in: path
        name: id2
        description: the id you want to add
        required: true
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
  /collaborative_area/search/{search}:
    get:
      tags:
      - collaborative_area
      description: |-
        search shared workspace
        <br>
      operationId: CollaborativeAreaController.Search
      parameters:
      - in: path
        name: search
        description: the word search you want to get
        required: true
        type: string
      - in: query
        name: is_draft
        description: draft wished
        type: string
      responses:
        "200":
          description: '{shared workspace} models.shared_workspace'
  /version/:
    get:
      tags:
      - version
      description: |-
        get version
        <br>
      operationId: VersionController.GetAll
      responses:
        "200":
          description: ""
  /version/status:
    get:
      tags:
      - version
      description: |-
        get status
        <br>
      operationId: VersionController.Status
      responses:
        "200":
          description: ""
definitions:
  json:
    title: json
    type: object
  models.rule:
    title: rule
    type: object
  models.workspace:
    title: workspace
    type: object
tags:
- name: collaborative_area
  description: |
    Operations about workspace
- name: version
  description: |
    VersionController operations for Version