Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Swagger open api macro
swagger: "2.0"
info:
  version: "0.0.1"
  title: ARES Kudo API server
# during dev, should point to your local machine
host: localhost:3000
# basePath prefixes all resource paths

basePath: /api
#

tags:
  - name: ARES Kudo Required
    description: Required APIs to load and store a drawing
  - name: ARES Kudo Optional
    description: Optional APIs to improve interactions for loading and storing a drawing
  - name: File Sessions
    description: Optional File Session Handling
  - name: Commenting
    description: API support for commenting panel
  - name: User Sessions
    description: Optional User Session Handling
  - name: Block Library
    description: API support for Block Library

schemes:
  # tip: remove http to make production-grade
  - http
  - https
# format of bodies a client can send (Content-Type)
consumes:
  - application/json
# format of the responses to the client (Accepts)
produces:
  - application/json
parameters:
  fileId:
    name: fileId
    in: path
    description: The id of the file
    required: true
    type: string
  sessionIdlibId:
    name: sessionIdlibId
    in: headerpath
    description: The id of the userlibrary
sessionId     required: true
    type: string
  threadIditemId:
    name: threadIditemId
    in: path
    description: The id of the comment threadblock
    required: true
    type: string
  markupIdownerType:
    name: markupIdownerType
    in: pathheader
    description: Type of the markuplibrary (PUBLIC/USER/ORG)
    required: truefalse
    type: string
  commentIdsessionId:
    name: commentIdsessionid
    in: pathheader
    description: the commentuser sessionId
    required: true
    type: string
  attachmentIdthreadId:
    name: attachmentIdthreadId
    in: path
    description: the attachmentcomment thread
    required: true
    type: string
  optionalSessionIdmarkupId:
    name: sessionIdmarkupId
    in: headerpath
    description: the usermarkup
sessionId
    required: falsetrue
    type: string
paths:   /files/{fileId}/diffscommentId:
    parametersname: commentId
    in: path
- $ref: '#/parameters/fileId'  description: the comment
  - $ref: '#/parameters/optionalSessionId'
    # binds a127 app logic to a route
    x-swagger-router-controller: files

    get:
      description: Returns file content
      # used as the method name of the controller
      operationId: diffs_get
      tags:
        - ARES Kudo Required
      responses required: true
    type: string
  attachmentId:
    name: attachmentId
    in: path
    description: the attachment
    required: true
    type: string
  optionalSessionId:
    name: sessionid
    in: header
    description: the user sessionId
    required: false
    type: string
paths:
  /library/blocks:
    parameters:
      - $ref: "#/parameters/optionalSessionId"
      - $ref: "#/parameters/ownerType"

    x-swagger-router-controller: blocks

    get:
      description: Returns block libraries

      operationId: libraries_get
      tags:
        - Block Library
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/LibrariesResponse"
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /library/blocks/{libId}/items:
    parameters:
      - $ref: "#/parameters/libId"
      - $ref: "#/parameters/optionalSessionId"

    x-swagger-router-controller: blocks

    get:
      description: Returns blocks of a library

      operationId: blocks_get
      tags:
        - Block Library
      responses:
        "200":
          description: Success
          schema:
            $ref: "#/definitions/BlocksResponse"
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /library/blocks/{libId}/items/{itemId}/content:
    parameters:
      - $ref: "#/parameters/libId"
      - $ref: "#/parameters/itemId"
      - $ref: "#/parameters/optionalSessionId"
      - in: query
        name: fileType
        required: false
        default: "dwg"
        type: string

    x-swagger-router-controller: blocks

    get:
      description: Returns block file

      operationId: block_getfile
      tags:
        - Block Library
      produces:
        - application/octet-stream
      responses:
        "200":
          description: Success
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /library/blocks/{libId}/items/{itemId}/thumbnail:
    parameters:
      - $ref: "#/parameters/libId"
      - $ref: "#/parameters/itemId"
      - $ref: "#/parameters/optionalSessionId"
      - in: query
        name: fileType
        required: false
        default: "png"
        type: string

    x-swagger-router-controller: blocks

    get:
      description: Returns block thumbnail

      operationId: block_getthumbnail
      tags:
        - Block Library
      produces:
        - application/octet-stream
      responses:
        "200":
          description: Success
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /files:
    parameters:
      - $ref: "#/parameters/optionalSessionId"
    x-swagger-router-controller: files
    post:
      description: Create/Update a file
      # used as the method name of the controller
      operationId: post_file
      tags:
        - ARES Kudo Required
      consumes:
        - multipart/form-data
      parameters:
        - in: header
          name: fileId
          description: ID of the file (New file will be created if this value is not specified)
          required: false
          type: string
        - in: formData
          name: file
          required: true
          type: file
      responses:
        "200":
          description: Success
          schema:
            required:
              - id
              - filename
              - isNewFile
              - changeId
            properties:
              id:
                type: string
              filename:
                type: string
              isNewFile:
                type: boolean
              changeId:
                type: string
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/data:
    parameters:
      - $ref: "#/parameters/fileId"
      - $ref: "#/parameters/optionalSessionId"
    # binds a127 app logic to a route
    x-swagger-router-controller: files

    get:
      description: Returns file content
      # used as the method name of the controller
      operationId: data_get
      tags:
        - ARES Kudo Required
      produces:
        - application/octet-stream
      responses:
        "200":
          description: Success
        # responses may fall through to errors
        "404":
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /files/{fileId}/xref/search:
    # binds a127 app logic to a route
    x-swagger-router-controller: files
    post:
      description: XRef search
      # used as the method name of the controller
      operationId: xref_search
      tags:
        - ARES Kudo Optional
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/optionalSessionId"
        - name: body
          in: body
          required: true
          schema:
            required:
              - path
            properties:
        "200":      path:
    description: Success           schematype: array
           required:     description: xrefs paths to search
     - status          items:
    - baseContent             propertiestype: string
      responses:
         status"200":
          description: Success
     type: string    schema:
            defaulttype: "ok"array
              baseContentitems:
                type: stringobject
                descriptionproperties:
Base64 encoded content of file             path:
   # responses may fall through to errors         "404"type:    string
      description: Error           schemafiles:
            $ref: "#/definitions/ErrorResponse"     puttype: array
      description: Update file content       # used asitems:
the method name of the controller       operationId: diffs_put       tagstype:  object
      - ARES Kudo Required       parameters:    properties:
    - name: body           in: body    "_id":
      required: true           schema:      type: string
     required:   # responses may fall through to errors
     - baseContent  default:
          propertiesdescription:
  Error
           baseContentschema:
            $ref: "#/definitions/ErrorResponse"
  type/files/{fileId}/preview:
string    # binds a127 app logic to a route
     descriptionx-swagger-router-controller: Base64files
encoded content of file post:
      description: Optionally handle receiving updates previews
      responses:# used as the method name of the controller
"200":      operationId: preview_post
   description: Success  tags:
        schema:- ARES Kudo Optional
         requiredparameters:
        - $ref: "#/parameters/fileId"
   - status    - $ref: "#/parameters/optionalSessionId"
        - changeIdin: formData
           propertiesname: file
          required:  true
status:          type: file
      typeresponses:
string        "200":
        default: "ok"   description: Success
          changeIdschema:
            type: object
  type: string         #properties:
responses may fall through to errors         defaultstatus:
          description: Error     type: string
    schema:             $refdefault: "#/definitions/ErrorResponseok"
  /files:     post: # responses may fall through to description: Createerrors
a new file      default:
# used as the method name of the controller  description: Error
   operationId: post_file       tagsschema:
        - ARES Kudo Optional $ref: "#/definitions/ErrorResponse"

   consumes/files/{fileId}/info:
    # binds a127 app logic - multipart/form-data
to a route
     parametersx-swagger-router-controller: files
    get:
  - in: header  description: Returns file information
     name: folderId# used as the method name of the controller
  required: true   operationId: info_get
      typetags: string
        - in:ARES formDataKudo Required
         nameparameters:
file        -   required$ref: true"#/parameters/fileId"
        -  type$ref: file"#/parameters/optionalSessionId"
      responses:
        "200":
          description: Success
          schema:
            required:
              - status
            type: object
- changeId
            properties:
              status: 
                type: string
                default: "ok"
              changeIdfilename:
                type: string
        # responses may fall through to errors
        default folderId:
          description: Error           schematype: string
           $ref: "#/definitions/ErrorResponse"   /files/{fileId}/xref/search:
    # binds a127 app logic to a route
    x-swagger-router-controller: filesowner:
         post:       descriptiontype: string
XRef search       # usedresponses asmay thefall methodthrough nameto oferrors
the controller       operationId"401":
xref_search          tagsdescription: User is not  autenticated
   - ARES Kudo Optional    schema:
  parameters:         - $ref: '"#/parametersdefinitions/fileId'ErrorResponse"
        - $ref"404":
'#/parameters/optionalSessionId'         - name: bodydescription: File is not found
          inschema:
    body        $ref: "#/definitions/ErrorResponse"
  required/files/{fileId}/session:
true    # binds a127 app logic to a schema:route
    parameters:
      - required$ref: "#/parameters/fileId"
      - $ref: "#/parameters/sessionId"

    x- pathswagger-router-controller: files_sessions
    get:
      description: properties:get file sessions
      # used as the method name path:of the controller
      operationId: session_get
      typetags:
array        - File Sessions
      descriptionresponses:
xrefs paths to search     "200":
          description: Success
           itemsschema:
            # a pointer to a definition
 type: string       responses:         "200":$ref: "#/definitions/SessionsResponse"
        # responses description: Success
 may fall through to errors
        schemadefault:
            typedescription: arrayError
            itemsschema:
              type$ref: object"#/definitions/ErrorResponse"
    post:
         propertiesdescription: Create file session. Sessions need to be either of type "view" or  "edit"
  path:    # used as the method name of the controller
       typeoperationId: stringsession_post
      tags:
        - files:File Sessions
      parameters:
        -  typename: arraybody
          in: body
      items:    required: true
          schema:
    type: object       required:
             properties: - mode
            properties:
       "_id":        mode:
                type: string
        # responses may fall through to errors  description: Type of session requested
  default:           description: Error  enum: [view, edit]
      schema:        fileId:
    $ref: "#/definitions/ErrorResponse"   /files/{fileId}/preview:     # binds a127 app logictype: tostring
a route     x-swagger-router-controller: files     post:    description: fileId for description:the Optionallyfile handlefor receivingwhich updatesthe previewssession is being requested
   # used as theresponses:
method name of the controller    "200":
  operationId: preview_post       tagsdescription: Success
       -  ARES Kudoschema:
Optional       parameters:     required:
   - $ref: '#/parameters/fileId'         - $ref: '#/parameters/optionalSessionId'status
      responses:        - "200_id":
 
        description: Success   properties:
       schema:       status:
     type: object          type: string
 properties:               statusdefault: "ok"
                type"_id":
string                 defaulttype: "ok"string
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"
    delete:
      description: delete file session
      # used as the method  /files/{fileId}/info:
 name of the controller
  # binds a127 app logic to a routeoperationId: session_delete
      x-swagger-router-controllertags:
files     get:   - File Sessions
 description: Returns file information  responses:
    # used as the method"200":
name of the controller       operationIddescription: info_getSuccess
          tagsschema:
        -   ARES Kudo# Requireda pointer to a definition
  parameters:         - $ref: '"#/parameters/fileId'
definitions/SessionsResponse"
       - $ref: '#/parameters/optionalSessionId' responses may fall through to  responses:errors
        "200"default:
          description: SuccessError
          schema:
            required:$ref: "#/definitions/ErrorResponse"
  /auth:
    # binds a127 app logic to a -route
status    x-swagger-router-controller: auth
    get:
  type: object   description: validate user session
      properties:# used as the method name of the controller
      statustags:
        - User Sessions
      typeoperationId: stringauth_get
      parameters:
        - default$ref: "ok#/parameters/optionalSessionId"
      responses:
       filename: # responses may fall through to errors
        "200":
 type: string        description: Success
     folderId:     schema:
            type: stringobject
            properties:
 owner:             status:
    type: string         # responses maytype: fallstring
through to errors         "401":     default: "ok"
    description: User is not autenticated401:
          schemadescription: Authorization information is missing or invalid.
  /users:
   $ref: "#/definitions/ErrorResponse" binds a127 app logic to a route
 "404":   x-swagger-router-controller: users
    get:
 description: File is not found description: Get user data and preferences
    schema:  # used as the method name of the controller
  $ref: "#/definitions/ErrorResponse"   /files/{fileId}/sessionoperationId: users_get
   # binds a127 apptags:
logic to a route     parameters:- Users
     - $refparameters:
 '#/parameters/fileId'       - $ref: '"#/parameters/optionalSessionId'sessionId"
      x-swagger-router-controllerresponses:
files     get:       description200:
get file sessions       # useddescription: asSuccess
the method name of the controller       operationIdschema:
session_get
      tags:      $ref: '#/definitions/GetUserResponse'
 - File Sessions     400:
 responses:         "200"description: Something went wrong while getting the userdata from json file.
 description: Success      default:
    schema:      description: Error
     # a pointer to a definitionschema:
            $ref: "#/definitions/SessionsResponseErrorResponse"
    put:
   # responses may falldescription: throughUpdate touser errorsdata and preferences
      default:# used as the method name of the controller
  description: Error   operationId: users_put
      schematags:
            $ref: "#/definitions/ErrorResponse"- Users
    post:       descriptionparameters:
Create file session. Sessions need to be either of- type$ref: "view#/parameters/sessionId"
or "edit"       #- usedname: asbody
the method name of the controller     in: body
operationId: session_post       tags:  required: true
     - File Sessions    schema:
  parameters:         - name$ref: body'#/definitions/UserPreferencesObject'

         in: bodyresponses:
          required200:
true           schemadescription: Success
           requiredschema:
              - modetype: object
            properties:
              modestatus:
                type: string
                descriptiondefault: Type"ok"
of session requested      400:
          description: Something went enum: [view, edit]
     wrong while saving the userdata into the json file.
        fileIddefault:
          description: Error
          typeschema:
string            $ref: "#/definitions/ErrorResponse"

  description: fileId for the file for which the session is being requested/v1/files/{fileId}/annotations:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    responsesget:
      description:  "200":
Returns annotations for a file
      # used as description:the Successmethod name of the controller
      schemaoperationId: annotations_get
      tags:
     required:   - Commenting
      parameters:
   - status    - $ref: "#/parameters/fileId"
        - $ref: "_id#/parameters/sessionId"
        - name: timestamp
 properties:         type: integer
    status:      in: query
          typerequired: false
string          description: timestamp of last request to only default: "ok"
send new items
      responses:
      "_id":  # responses may fall through to errors
        type"200": string
        # responses may fall through to errorsdescription: Success
          defaultschema:
          description: Error type: object
        schema:    properties:
        $ref: "#/definitions/ErrorResponse"     deletestatus:
       description: delete file session      type: #string
used as the method name of the controller       operationId: session_delete default: "ok"
    tags:         - Fileresults:
Sessions       responses:         "200"type: object
         description:  Success     properties:
     schema:             #timestamp:
a pointer to a definition             $ref: "#/definitions/SessionsResponse"  type: integer
     # responses may fall through to errors         defaultdescription: time of response
       description: Error           schemacommmentThreads:
            $ref: "#/definitions/ErrorResponse"   /auth:    type: #array
binds a127 app logic to a route     x-swagger-router-controller: auth     get:   description: ""
  description: validate user session       # used as the method name of the controlleritems:
      tags:         - User Sessions     type: object
operationId: auth_get       parameters:         - $refmarkups:
'#/parameters/optionalSessionId'       responses:         # responses may fall throughtype: toarray
errors         "200":           description: Success""
          schema:             typeitems:
object             properties:         type: object
    status:              status:
   type: string                type: default:string
"ok"         401:           descriptiondefault: Authorization"ok"
information is missing or invalid.
  /users /v1/files/{fileId}/markups:
    # binds a127 app logic to a route
    x-swagger-router-controller: userscomments
    get:
      description: Returns user objectmarkups for a file
      # used as the method name of the controller
      operationId: users_get
      tags:
        - User Sessions
      parameters:
      operationId: markups_get
-  $ref: '#/parameters/sessionId'   tags:
   responses:     - Commenting
  # responses may fall throughparameters:
to errors       - $ref: "200#/parameters/fileId":
        -  description$ref: Success"#/parameters/sessionId"
        -  schemaname: timestamp
           type: objectinteger
            propertiesin: query
             statusrequired: false
          description: timestamp of last request to type:only stringsend new items
      responses:
       default: "ok"# responses may fall through to errors
        results"200":
          description: Success
     type: array    schema:
            itemstype: object
            properties:
       type: object      status:
              properties:  type: string
                   fname:default: "ok"
              results:
         type: string      type: object
                 descriptionproperties:
first name                 timestamp:
     surname:               type: integer
        type: string           description: time of response
          description: last name of user    markups:
                  "_id":  type: array
                     typedescription: string""
                      emailitems:
                        type: stringobject
                  status:
   licenseExpirationDate:                 type: string
      type: integer             default: "ok"
  /v1/files/{fileId}/commentThreads:
    # preferences:binds a127 app logic to a route
    x-swagger-router-controller: comments
    get:
      description: type:Returns objectcomments for a file
      # used as the method name of the controller
      propertiesoperationId: commentThreads_get
      tags:
        - Commenting
      parameters:
   preferences_display:     - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        -  typename: objecttimestamp
          type: integer
          in: query
    properties:      required: false
          description: timestamp of last request to only send new items
    graphicswinmodelbackgrndcolor:  responses:
        # responses may fall through to errors
         "200":
     type: string    description: Success
          schema:
            type: object
  default: White         properties:
                 viewstatus:
                type: string
          type: object     default: "ok"
              results:
     window:           type: object
                typeproperties:
object                  timestamp:
        variables:            type: integer
               type: object    description: time of response
                     propertiescommmentThreads:
                    type: array
         dynasnap:           description: ""
                    typeitems:
string                      type: object
         default: "63"     put:   status:
   description: Returns user object       # used as the method name of thetype: controllerstring
      operationId: users_put       tags:      default: "ok"
 - User Sessions /v1/files/{fileId}/commentThread:
    # binds a127 parameters:app logic to a route
    x-swagger-router-controller: $ref: '#/parameters/sessionId'comments
    post:
     - namedescription: bodyAdd a new commentThread for a file
     in: body# used as the method name of the controller
  required: true   operationId: commentThread_post
      schematags:
        - Commenting
  properties:    parameters:
        -  preferences:$ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
     type: object  - name: body
          in: body
description: user preferences        required: true
       properties:   schema:
            type: object
 window:           properties:
         type: object    title:
                propertiestype: string
              text:
       edit:         type: string
              typestate:
object                type: string
       properties:         enum: [ACTIVE, RESOLVED]
               dockwidgetsids:
                type: array
          type: object     items:
                  type: string
   properties:   responses:
        # responses may fall through to errors
        "200":
   layerwindow:       description: Success
          schema:
             type: object
            properties:
                   propertiesstatus:
                type: string
                hdefault: "ok"
              timestamp:
                type:  integer
 type: string              description: time of response
  /v1/files/{fileId}/commentThread/{threadId}:
    # binds a127 app logic to a route
    descriptionx-swagger-router-controller: heightcomments
 o the layerwindow put:
      responsesdescription: Update a commentThread
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200"operationId: commentThread_put
      tags:
  description: Success     -  Commenting
   schema:   parameters:
        - type$ref: object"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
 properties:       - $ref: "#/parameters/threadId"
     status:   - name: body
          in: body
type: string         required: true
      default: "ok"   /v1/files/{fileId}/annotationsschema:
    # binds a127 app logic to a route     x-swagger-router-controller: commentstype: object
     get:       description: Returns annotations for a fileproperties:
        # used as the method name oftitle:
the controller       operationId: annotations_get       tagstype: string
       - Commenting      text:
parameters:         - $ref: '#/parameters/fileId'     type: string
  - $ref: '#/parameters/sessionId'         - nameids:
timestamp           type: integer    type:  array
    in: query           requireditems:
false           description: timestamp of last request to only send newtype: itemsstring
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                 type: string
                default: "ok"
              resultstimestamp:
                type: object integer
                description: time of response
    get:
      properties:description: get a commentThread
      # used as the method name of the controller
      timestampoperationId: commentThread_get
      tags:
        - Commenting
   type   parameters:
integer        - $ref: "#/parameters/fileId"
        -  description$ref: time of response"#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
      responses:
  commmentThreads:      # responses may fall through to errors
        type"200":
 array         description: Success
          descriptionschema:
""            type: object
         items:   properties:
              status:
    type: object           type: string
      markups:          default: "ok"
         type: array    timestamp:
                descriptiontype: ""integer
                description: time of response
items:    delete:
      description: Delete a comment Thread
      # type:used objectas the method name of the controller
      operationId: commentThread_delete
    status:  tags:
        - Commenting
      parameters:
 type: string      - $ref: "#/parameters/fileId"
        -    default$ref: "ok#/parameters/sessionId"
  /v1/files/{fileId}/markups:     # binds- a127 app logic to a route
    x-swagger-router-controller: comments$ref: "#/parameters/threadId"
      responses:
     get:   # responses may fall description:through Returnsto markupserrors
for a file      "200":
# used as the method name of the controller   description: Success
  operationId: markups_get       tagsschema:
        - Commenting   type: object
  parameters:         - $ref: '#/parameters/fileId'properties:
        - $ref: '#/parameters/sessionId'     status:
   - name: timestamp           type: integer
 string
        in: query       default: "ok"
  required: false           descriptiontimestamp:
timestamp  of last request to only send new items       responsestype: integer
       # responses may fall through to errors   description: time of response
  "200"/v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:
    # binds a127 app logic to description:a Successroute
    x-swagger-router-controller: comments
    schemaput:
      description: Update a comment
  type: object   # used as the method name of the controller
 properties:     operationId: comment_put
      tags:
 status:       - Commenting
      parameters:
  type: string     - $ref: "#/parameters/fileId"
        - default$ref: "ok#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
        -  results$ref: "#/parameters/commentId"
        - name: body
    type: object     in: body
          propertiesrequired: true
           schema:
     timestamp:       type: object
            typeproperties:
integer              text:
      description: time of response       type: string
      responses:
   markups:     # responses may fall through to errors
        "200":
type: array         description: Success
          descriptionschema:
""            type: object
       items:     properties:
                 typestatus:
object                type: string
 status:               default: "ok"
    type: string         timestamp:
           default: "ok"    /v1/files/{fileId}/commentThread:type: integer
    # binds a127 app logic to a route     x-swagger-router-controllerdescription: commentstime of response
  post:  get:
    description: Add a new commentThreaddescription: forRetrieve a filecomment
      # used as the method name of the controller
      operationId: commentThreadcomment_postget
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - name$ref: body"#/parameters/threadId"
        -  in$ref: body"#/parameters/commentId"
          requiredresponses:
true        # responses may schema:fall through to errors
          type"200":
object             propertiesdescription: Success
             title:
   schema:
            type: stringobject
              textproperties:
                type: string
              statestatus:
                type: string
                enumdefault: [ACTIVE, RESOLVED]"ok"
               idstimestamp:
                type: arrayinteger
                itemsdescription: time of response
               typedelete:
string      description: responses:Delete a comment
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200"operationId: comment_delete
      tags:
  description: Success     - Commenting
    schema:  parameters:
        -  type$ref: object"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
 properties:       - $ref: "#/parameters/threadId"
     status:   - $ref: "#/parameters/commentId"
       responses:
    type: string   # responses may fall through to errors
       default: "ok200":
          description: Success
  timestamp:        schema:
        type: integer   type: object
            description: time of response
  /v1/files/{fileId}/commentThread/{threadId}:properties:
      # binds a127 app logic to a route status:
   x-swagger-router-controller: comments     put:       descriptiontype: Updatestring
a commentThread        # used as the method name of the controllerdefault: "ok"
      operationId: commentThread_put       tagstimestamp:
        - Commenting       parameterstype: integer
       -   $ref: '#/parameters/fileId'     description: time of response
- $ref: '#/parameters/sessionId' /v1/files/{fileId}/commentThread/{threadId}/comment:
    # binds a127 app logic to -a $ref: '#/parameters/threadId'route
    x-swagger-router-controller: comments
   - namepost:
body      description: Post a new comment
in: body     # used as the method name required:of truethe controller
      operationId: comment_post
 schema:     tags:
        type:- objectCommenting
      parameters:
     properties:   - $ref: "#/parameters/fileId"
        - title:$ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
     type: string  - name: body
          textin: body
          required: true
    type: string     schema:
         ids:   type: object
            typeproperties:
array                 itemstext:

                 type: string
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                 type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/markup:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
     descriptionpost: time
of response     getdescription: Add a new markup  for description: get a commentThread file
      # used as the method name of the controller
      operationId: commentThreadmarkup_getpost
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $refname: '#/parameters/threadId' body
          responsesin: body
       # responses may fallrequired: throughtrue
to errors         "200"schema:
            descriptiontype: Successobject
            schemaproperties:
              typetitle:
object                propertiestype: string
              statustext:
                 type: string
               state:
default: "ok"               timestamptype: string
                type: integerenum: [ACTIVE, RESOLVED]
              ids:
    description:   time of response     /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:  type: array
    # binds a127 app logic to a route     x-swagger-router-controller: commentsitems:
           put:       descriptiontype: Update a comment string
      responses:
        # usedresponses asmay thefall methodthrough nameto oferrors
the controller       operationId"200":
comment_put          tagsdescription: Success
       - Commenting  schema:
     parameters:       type: object
- $ref: '#/parameters/fileId'         - $ref: '#/parameters/sessionId'properties:
        - $ref: '#/parameters/threadId'    status:
    - $ref: '#/parameters/commentId'         - nametype: bodystring
           in: body    default: "ok"
     required: true        timestamp:
  schema:              type: objectinteger
             properties:   description: time of response
  /v1/files/{fileId}/markup/{markupId}:
    # text:binds a127 app logic to a route
    x-swagger-router-controller: comments
    typeput:
string      description: responses:Update a markup
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200":operationId: markup_put
      tags:
    description: Success   - Commenting
      schemaparameters:
        - $ref: "#/parameters/fileId"
  type: object     - $ref: "#/parameters/sessionId"
     properties:   - $ref: "#/parameters/markupId"
        - statusname: body
          in: body
    type: string     required: true
          defaultschema:
"ok"            type: object
 timestamp:           properties:
     type: integer        title:
        description: time of response     gettype: string
     description: Retrieve a comment      text:
 # used as the method name of the controller       operationIdtype: comment_getstring
        tags:      ids:
  - Commenting       parameters:      type: array
 - $ref: '#/parameters/fileId'         - $ref: '#/parameters/sessionId'  items:
      - $ref: '#/parameters/threadId'         - $reftype: '#/parameters/commentId'string
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status: 
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
    deleteget:
      description: Deleteget a comment markup
      # used as the method name of the controller
      operationId: commentmarkup_deleteget
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/threadId'
        - $ref: '#/parameters/commentId'markupId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                 type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/commentThread/{threadId}/comment:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    postdelete:
      description: Postdelete a new commentmarkup
       # used as the method name of the controller
      operationId: commentmarkup_postdelete
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/threadId'markupId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
         - nameschema:
body            intype: bodyobject
          required: true properties:
         schema:     status:
        type: object       type: string
    properties:            default: "ok"
 text:              timestamp:
  type: string       responses:      type: integer
 # responses may fall through to errors         "200"description: time of response
  /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:
    description:# Successbinds a127 app logic to a route
    schemax-swagger-router-controller: comments
    put:
      typedescription: objectUpdate a comment
      # used as the properties:method name of the controller
          statusoperationId: markupcomment_put
      tags:
        - type:Commenting
string      parameters:
        -  default$ref: "ok#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
   timestamp:     - $ref: "#/parameters/markupId"
        - type$ref: integer"#/parameters/commentId"
        - name: body
     description: time of response   /v1/files/{fileId}/markup:
    # binds a127 app logic to a routein: body
          x-swagger-router-controllerrequired: comments
true
   post:       descriptionschema:
Add a new markup for a file       # usedtype: asobject
the method name of the controller       operationIdproperties:
markup_post       tags:         -text:
Commenting       parameters:         - $reftype: '#/parameters/fileId'string
        - $refresponses:
'#/parameters/sessionId'        # - name: body
 responses may fall through to errors
        in"200":
body           requireddescription: trueSuccess
          schema: 
            type: object
            properties:
              titlestatus:
                type: string
                default: "ok"
             text timestamp:
                type: stringinteger
              state:  description: time of response
    get:
      typedescription: stringRetrieve a markup comment
      # used as the method name of enum: [ACTIVE, RESOLVED]the controller
      operationId: markupcomment_get
       idstags:
        - Commenting
      typeparameters:
 array       - $ref: "#/parameters/fileId"
        - items:$ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
        - type$ref: string"#/parameters/commentId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                 type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/markup/{markupId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    putdelete:
      description: UpdateDelete a markup comment
      # used as the method name of the controller
      operationId: markupmarkupcomment_putdelete
      tags:
        - Commenting
      parameters:
        - $ref: '#/parameters/fileId'
        - $ref:
'#/parameters/sessionId'
        - $ref: '#/parameters/markupId'
        - name: body
          in: body
 "#/parameters/fileId"
        - required$ref: true"#/parameters/sessionId"
        -  schema$ref: "#/parameters/markupId"
        - $ref: "#/parameters/commentId"
 type: object    responses:
        properties:# responses may fall through to errors
        title"200":
          description: Success
    type: string     schema:
         text:   type: object
            typeproperties:
string               idsstatus:
                type: arraystring
                itemsdefault: "ok"
              timestamp:
  type: string       responses:      type: integer
 # responses may fall through to errors         "200"description: time of response
  /v1/files/{fileId}/markup/{markupId}/comment:
    description:# Successbinds a127 app logic to a route
    schemax-swagger-router-controller: comments
    post:
      typedescription: objectPost a new markup comment
      # used properties:as the method name of the controller
        statusoperationId: markupcomment_post
      tags:
        - type: stringCommenting
      parameters:
        - default$ref: "ok#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
   timestamp:     - $ref: "#/parameters/markupId"
        - typename: integerbody
                descriptionin: timebody
of response     get:       descriptionrequired: get atrue
markup        # used asschema:
the method name of the controller       operationIdtype: markup_get
object
     tags:       properties:
 - Commenting       parameters:         - $ref: '#/parameters/fileId'
  text:
     - $ref: '#/parameters/sessionId'         - $reftype: '#/parameters/markupId'string
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                 type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/attachment:
    x-swagger-router-controller: comments
    deletepost:
      description: deleteCreate a markup attachment
      # used as the method name of the controller
      operationId: markupattachment_deletepost
      tags:
        - Commenting
      consumes:
        - multipart/form-data
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - in: formData
          name: attachment
          required: true
          type: file
    -  $refresponses:
 '#/parameters/markupId'       responses"200":
        #  responsesdescription: maySuccess
fall through to errors       schema:
 "200":           description: Successrequired:
              - status
 schema:             type:- objectchangeId
            properties:
              status:
                 type: string
                default: "ok"
              timestampchangeId:
                type: integer string
        # responses may fall through to errors
        default:
          description: Error
  time  of response     /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:schema:
      # binds a127 app logic to a route      $ref: "#/definitions/ErrorResponse"
  /v1/files/{fileId}/attachments:
    x-swagger-router-controller: comments
    putget:
      description: UpdateRetrieve aall comment attachments
      # used as the method name of the controller
      operationId: markupcommentattachments_putget
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
           - $ref: '#/parameters/markupId'properties:
              status:
    - $ref: '#/parameters/commentId'         - nametype: bodystring
           in: body    default: "ok"
     required: true        timestamp:
  schema:              type: objectinteger
             properties:   description: time of response
  /v1/files/{fileId}/attachments/{attachmentId}:
    # text:binds a127 app logic to a route
    x-swagger-router-controller: comments
    typeget:
string       responsesdescription: Retrieve attachment
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200"operationId: attachment_get
       tags:
 description: Success      - Commenting
   schema:   parameters:
        - type$ref: object"#/parameters/fileId"
        -    properties:
    $ref: "#/parameters/sessionId"
        - status$ref: "#/parameters/attachmentId"
      responses:
        # type:responses stringmay fall through to errors
         "200":
  default: "ok"       description: Success
      timestamp:    schema:
            type: integerobject
            properties:
      description: time of response     getstatus:
       description: Retrieve a markup comment     type: string
 # used as the method name of the controller       operationIddefault: markupcomment_get"ok"
      tags:        timestamp:
- Commenting       parameters:        type: -integer
$ref: '#/parameters/fileId'         - $ref: '#/parameters/sessionId'    description: time of response
 - $ref/swagger:
'#/parameters/markupId'    x-swagger-pipe: swagger_raw
# complex objects have schema -definitions
$refdefinitions:
'#/parameters/commentId'  SessionsResponse:
    responsesrequired:
      - status
# responses may fall through to errors- results
    properties:
  "200":    status:
      description: Success type: string
        schemadefault: "ok"
      results:
    type: object   type: array
        propertiesitems:
          type: object
  status:        properties:
         type: string  mode:
              defaulttype: "ok"string
              timestampenum: [view, edit]
              typeusername:
integer              type:  string
description: time of response     delete:    sessionId:
  description: Delete a markup comment        #type: usedstring
as the method name of the controller       operationIduserId:
markupcomment_delete       tags:       type: string
-
Commenting  LibrariesResponse:
    parametersrequired:
      - status
- $ref: '#/parameters/fileId'    - results
   - $refproperties: '#/parameters/sessionId'

      status:
       - $reftype: '#/parameters/markupId'string
        - $refdefault: '#/parameters/commentId'"ok"
      responsesresults:
        type: array
    # responses may fall throughitems:
to errors         "200"type: object
          descriptionproperties:
 Success           schemaid:
              type: objectstring
            propertiesname:
              statustype: string
  BlocksResponse:
    required:
      - status
 type: string    - results
    properties:
      defaultstatus:
"ok"        type: string
        timestampdefault: "ok"
      results:
        type: integerarray
        items:
       description   type: timeobject
of response
  /v1/files/{fileId}/markup/{markupId}/comment:         properties:
# binds a127 app logic to a route     x-swagger-router-controller: commentsid:
       post:       descriptiontype: Poststring
 a new markup comment        #name:
used as the method name of the controller       operationIdtype: markupcomment_post string
          tags:  thumbnail:
      - Commenting       parameterstype: string

  ErrorResponse:
   - $refrequired:
'#/parameters/fileId'      - message
   - $refproperties: '#/parameters/sessionId'
      message:
    - $ref: '#/parameters/markupId'  type: string
     - nameerrrorId:
  body      type: string

  inGetUserResponse:
  body  required:
      - status
required: true     - results
    schemaproperties:
      status:
        type: string
 object       default: "ok"
    properties:  results:
        type: array
  text:      items:
          type$ref: string'#/definitions/UserPreferencesObject'

  UserPreferencesObject:
  responses:  type: object
    properties:
# responses may fall through to errorspreferences:
        "200"type: object
         descriptionproperties: Success
          schemavariables:
            type: object
            properties:
              statuspolarang:
                 type: string
                default: "ok90"
              timestamposmode:
                type: integerstring
                descriptiondefault: time"663"
of response   /v1/files/{fileId}/attachments:     post:       descriptionzoomWheel:
Create a markup attachment       # used as the method name of the controller
      operationId type: post_markupstring
      tags:         - Commenting
      consumes default: "0"
        - multipart/form-data       parameterslwdefault:
        - $ref: '#/parameters/fileId'      type: string
 - $ref: '#/parameters/sessionId'         - in: formData  default: "25"
       name: file      dynasnap:
    required: true           type: filestring
        responses:        default: "20039":
          description: Success   graphicswinmodelbackgrndcolor:
       schema:         type: string
  required:              default: -"White"
status              cursorMode:
- changeId             properties:  type: string
           status:     default: "2"
           typepreferences_display:
string            type: object
    default: "ok"       properties:
       changeId:       graphicswinmodelbackgrndcolor:
         type: string      type: string
 # responses may fall through to errors         default:   "White"
       description: Error      propertieswindowdisplaymode:
    schema:             $ref: "#/definitions/ErrorResponse"
type: string
   get:       description: Retrieve all attachments   default: "0"
   # used as the method name of the controllerwindow:
      operationId: attachments_get     type: object
tags:         - Commenting  properties:
    parameters:         - $refedit: 
'#/parameters/fileId'         - $ref: '#/parameters/sessionId'     type: object
responses:         # responses may fall through to errors properties:
       "200":           descriptiondockwidgets:
Success           schema:         type: object
   type: object             properties:   properties:
           status:           layerwindow:
      type: string                 defaulttype: "ok"object
              timestamp:          properties:
      type: integer                 description: time ofvisible:
response   /v1/files/{fileId}/attachments/{attachmentId}:     # binds a127 app logic to a route     x-swagger-router-controller: comments     get:  type: string
   description: Retrieve attachment        # used as the method name of the controller       operationIddefault: attachment_get"1"
      tags:         - Commenting       parameters:   iscollapsed:
     - $ref: '#/parameters/fileId'         - $ref: '#/parameters/sessionId'         - $reftype: '#/parameters/attachmentId'string
      responses:
        # responses may fall through to errors        default: "200false":
          description: Success           schema:      description: true/false if the layer panel is type:collapsed objector not
           properties:               statush:
                  type: string         type: string
       default: "ok"               timestamp:     description: height of the layerwindow
       type: integer              propertywindow:
  description: time of response   /swagger:     x-swagger-pipe: swagger_raw # complex objects have schema definitions definitions:   SessionsResponsetype: object
   required:       - status       - results     properties:
      status:          type: string         defaultvisible:
"ok"         results:         type: array         itemstype: string
              type: object             propertiesdefault: "1"
              mode:            iscollapsed:
    type:   string                 enum: [view, edit]  type: string
           username:                 typedefault: string"false"
              sessionId:              description: true/false if type:the stringproperties panel is collapsed or not
         userId:                 type: stringh:
          ErrorResponse:     required:       - message     propertiestype: string
     message:         type: string       errrorId:      description: height of type:property stringpanel