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 user sessionIdlibrary
    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
  pathscommentId:
  /files/{fileId}/diffs  name: commentId
   parameters in: path
    description: -the $ref: '#/parameters/fileId'comment
    required: true
 - $ref: '#/parameters/optionalSessionId'  type: string
  attachmentId:
    #name: bindsattachmentId
a127 app logic to ain: routepath
    x-swagger-router-controller: files
description: the attachment
    required: true
    gettype: string
  optionalSessionId:
  description  name: Returnssessionid
file content   in: header
  # used asdescription: the user methodsessionId
name of the controller required: false
    operationIdtype: diffs_getstring
paths:
  /library/blocks:
  tags:
   parameters:
      - $ref: "#/parameters/optionalSessionId"
      - ARES Kudo Required
$ref: "#/parameters/ownerType"

    x-swagger-router-controller: blocks

    responses: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

"200":    get:
      description: SuccessReturns block file

       schemaoperationId: block_getfile
      tags:
    required:    - Block Library
      produces:
 - status      - application/octet-stream
      responses:
- baseContent       "200":
     properties:     description: Success
        statusdefault:
          description: Error
     type: string    schema:
            default$ref: "ok#/definitions/ErrorResponse"

  /library/blocks/{libId}/items/{itemId}/thumbnail:
          baseContentparameters:
      - $ref: "#/parameters/libId"
      - type$ref: string"#/parameters/itemId"
      - $ref: "#/parameters/optionalSessionId"
      - descriptionin: Base64query
encoded content of file     name: fileType
          # responses may fall throughrequired: tofalse
errors        default: "404png":
        type: string
description:
Error    x-swagger-router-controller: blocks

    schemaget:
      description: Returns block  thumbnail

$ref: "#/definitions/ErrorResponse"     putoperationId: block_getthumbnail
     description tags:
 Update  file content    - Block Library
# used as the method name ofproduces:
the controller       operationId: diffs_put- application/octet-stream
      tagsresponses:
        -"200":
 ARES Kudo Required       parametersdescription: Success
       - namedefault: body
          indescription: bodyError
          requiredschema:
  true           schema$ref: "#/definitions/ErrorResponse"

  /files:
    parameters:
      - required:$ref: "#/parameters/optionalSessionId"
    x-swagger-router-controller: files
    post:
   - baseContent  description: Create/Update a file
      # properties:used as the method name of the controller
       baseContentoperationId: post_file
      tags:
        type:- stringARES Kudo Required
      consumes:
       description: Base64 encoded content of file- multipart/form-data
      parameters:
        - in: header
    responses:      name: fileId
 "200":           description: ID Successof the file (New file will be created if this value schema:is not specified)
          required: false
          type: string
 - status      - in: formData
      - changeId   name: file
        properties:  required: true
           statustype: file
      responses:
         type"200":
string          description: Success
     default: "ok"    schema:
          changeId:  required:
              type:- stringid
        # responses may fall through to errors   - filename
    default:          - description:isNewFile
Error           schema:   - changeId
        $ref: "#/definitions/ErrorResponse"   /filesproperties:
    parameters:       - $ref: '#/parameters/optionalSessionId'
 id:
   x-swagger-router-controller: files     post:       descriptiontype: Create/Updatestring
a file       # used as the method name offilename:
the controller       operationId: post_file       tagstype: string
       -   ARES Kudo Required  isNewFile:
    consumes:          - multipart/form-data type: boolean
    parameters:         - inchangeId:
header              name: fileId type: string
        description:# IDresponses ofmay thefall filethrough (Newto fileerrors
will be created if this value is not specified)default:
          requireddescription: falseError
          typeschema:
string           - in$ref: formData"#/definitions/ErrorResponse"
  /files/{fileId}/data:
    parameters:
  name: file   - $ref: "#/parameters/fileId"
     required: true- $ref: "#/parameters/optionalSessionId"
    # binds a127 app type:logic fileto a route
    responsesx-swagger-router-controller: files

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

   filename/files/{fileId}/xref/search:
    # binds a127 app logic to a route
    typex-swagger-router-controller: stringfiles
    post:
         isNewFiledescription: XRef search
      # used as the method name of the type:controller
boolean      operationId: xref_search
       changeIdtags:
        - ARES Kudo Optional
    type: string parameters:
       # responses- may fall through to errors$ref: "#/parameters/fileId"
        -  default$ref: "#/parameters/optionalSessionId"
        - descriptionname: Errorbody
          schemain: body
           $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/data:
 required: true
  parameters:       - $refschema:
'#/parameters/fileId'        - $ref: '#/parameters/optionalSessionId'  required:
  # binds a127 app logic to a route     x-swagger-router-controller: filespath
     get:       descriptionproperties:
Returns file content       # used as the method namepath:
of the controller       operationId: data_get       tagstype: array
       - ARES Kudo Required       producesdescription: xrefs paths to search
    - application/octet-stream       responses:    items:
    "200":           description: Success  type: string
     # responses may fall through to errors:
        "404200":
          description: ErrorSuccess
          schema:
            $reftype: "#/definitions/ErrorResponse"array
     /files/{fileId}/xref/search:
    # binds a127 appitems:
logic to a route     x-swagger-router-controller: files     posttype: object
     description: XRef search       #properties:
  used as the method name of the controller       operationIdpath:
xref_search       tags:         - ARES Kudotype: Optionalstring
      parameters:         - $reffiles:
'#/parameters/fileId'           - $ref: '#/parameters/optionalSessionId'     type: array
  - name: body           in: body  items:
        required: true           schematype: object
           required:         properties:
     - path             properties:   "_id":
           path:             type: string
  type: array     # responses may fall through to errors
     description: xrefs paths todefault:
search          description: Error
          schema:
      items:      $ref: "#/definitions/ErrorResponse"
   /files/{fileId}/preview:
    # binds a127 app type:logic stringto a route
    responsesx-swagger-router-controller: files
       "200":
 post:
        description: SuccessOptionally handle receiving updates previews
      schema:# used as the method name of the controller
    type: array operationId: preview_post
      tags:
   items:     - ARES Kudo Optional
      typeparameters:
object        - $ref: "#/parameters/fileId"
    properties:    - $ref: "#/parameters/optionalSessionId"
        -  pathin: formData
          name: file
      type: string   required: true
            filestype: file
      responses:
          type"200":
array          description: Success
       items:   schema:
                 type: object
            properties:
       properties:       status:
               "_id":
        type: string
                typedefault: string"ok"
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /files/{fileId}/previewinfo:
    # binds a127 app logic to a route
    x-swagger-router-controller: files
    postget:
      description: OptionallyReturns handlefile receivinginformation
updates previews       # used as the method name of the controller
      operationId: previewinfo_postget
      tags:
        - ARES Kudo OptionalRequired
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/optionalSessionId'"
      responses:
        "200":
         - indescription: formDataSuccess
          nameschema:
file            required: true
              - status
            type: file object
            properties:
              responsesstatus:
          "200":      type: string
          description: Success      default: "ok"
              filename:
   schema:             type: string
object              propertiesfolderId:
              status:  type: string
              typeowner:
string                 defaulttype: "ok"string
        # responses may fall through to errors
        default"401":
          description: ErrorUser is not autenticated
          schema:
            $ref: "#/definitions/ErrorResponse"
        "404":
               
  /files/{fileId}/infodescription: File is not  #found
binds a127 app logic to a route     x-swagger-router-controllerschema:
files     get:       description$ref: Returns file information
      # used as the method name of the controller
      operationId: info_get
      tags:
 "#/definitions/ErrorResponse"
  /files/{fileId}/session:
    # binds -a127 ARESapp Kudologic Requiredto a route
    parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/optionalSessionId'sessionId"

     responsesx-swagger-router-controller: files_sessions
       "200"get:
          description: Successget file sessions
      # used schema:as the method name of the controller
      requiredoperationId: session_get
      tags:
      - status - File Sessions
      responses:
  type: object     "200":
       properties:   description: Success
          statusschema:
            # a pointer to a type:definition
string                 default$ref: "ok#/definitions/SessionsResponse"
        # responses may fall through to filename:errors
                 type: string
   default:
          folderId:      description: Error
          typeschema:
string            $ref: "#/definitions/ErrorResponse"
 owner   post:
      description: Create file session. Sessions need to be either of  type: string"view" or "edit"
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "401"operationId: session_post
      tags:
  description: User is not autenticated  - File Sessions
      schemaparameters:
        - name: body
 $ref: "#/definitions/ErrorResponse"         "404":in: body
          descriptionrequired: File istrue
not found           schema:
            $refrequired:
"#/definitions/ErrorResponse"   /files/{fileId}/session:     # binds a127 app logic to a- routemode
    parameters:       - $refproperties: '#/parameters/fileId'
          - $ref: '#/parameters/sessionId'  mode:
   x-swagger-router-controller: files_sessions     get:       descriptiontype: string
get  file sessions       # used as the method name ofdescription: theType controllerof session requested
    operationId: session_get       tags:    enum: [view, edit]
  - File Sessions       responses:   fileId:
     "200":           descriptiontype: Successstring
          schema:      description: fileId for the file for which #the session ais pointerbeing torequested
a definition     responses:
       $ref: "#/definitions/SessionsResponse"200":
         # responsesdescription: maySuccess
fall through to errors       schema:
 default:           descriptionrequired:
 Error             schema:- status
              $ref:- "#/definitions/ErrorResponse_id"
    post:        descriptionproperties:
Create file session. Sessions need to be either of type "view" or "edit"  status:
    # used as the method name of the controller    type: string
 operationId: session_post       tags:       default: "ok"
- File Sessions       parameters:     "_id":
   - name: body           intype: bodystring
        # responses required: true
 may fall through to errors
        schemadefault:
          description: Error
required:          schema:
    - mode       $ref: "#/definitions/ErrorResponse"
    propertiesdelete:
      description: delete file session
    mode:  # used as the method name of the controller
      typeoperationId: stringsession_delete
      tags:
        - description:File TypeSessions
of session requested    responses:
        "200":
      enum: [view, edit]   description: Success
          fileIdschema:
            # a pointer to type:a stringdefinition
            $ref: "#/definitions/SessionsResponse"
  description:  fileId for the file for# whichresponses themay sessionfall isthrough beingto requestederrors
        default:
 responses:         "200"description: Error
          descriptionschema:
Success            schema:$ref: "#/definitions/ErrorResponse"
  /auth:
    # binds a127 app logic required:to a route
    x-swagger-router-controller: auth
    get:
 - status    description: validate user session
      # - "_id"
     used as the method name of the controller
      propertiestags:
        - User Sessions
    status  operationId: auth_get
      parameters:
        - type$ref: string"#/parameters/optionalSessionId"
      responses:
         default: "ok"
     # responses may fall through to errors
        "_id200":
          description: Success
    type: string     schema:
   # responses may fall through to errors   type: object
    default:        properties:
  description: Error           schemastatus:
            $ref: "#/definitions/ErrorResponse"     deletetype: string
     description: delete file session       # used as the method name of the controllerdefault: "ok"
        401:
  operationId: session_delete       parametersdescription: Authorization information is missing or invalid.
  - name/users:
body    # binds a127 app logic to a in:route
body    x-swagger-router-controller: users
     requiredget:
true           schemadescription: Get user data and preferences
      # required:used as the method name of the controller
       - modeoperationId: users_get
      tags:
     properties:   - Users
      parameters:
   mode:     - $ref: "#/parameters/sessionId"
      responses:
  type: string      200:
          description: Success
Type of session requested       schema:
            enum: [view, edit]$ref: '#/definitions/GetUserResponse'
        tags400:
          - File Sessions
      responses:description: Something went wrong while getting the userdata from json file.
        "200"default:
          description: SuccessError
          schema:
            $ref: "#/definitions/ErrorResponse"
a pointer to a definitionput:
      description: Update user data   $ref: "#/definitions/SessionsResponse"
 and preferences
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      defaultoperationId: users_put
       tags:
 description: Error      - Users
   schema:   parameters:
        - $ref: "#/definitionsparameters/ErrorResponsesessionId"
    /auth:    - #name: bindsbody
a127 app logic to a route     x-swagger-router-controllerin: authbody
    get:       descriptionrequired: validatetrue
user session       # used asschema:
the method name of the controller       tags$ref: '#/definitions/UserPreferencesObject'

      -responses:
User Sessions       operationId200:
auth_get       parameters:   description: Success
    - $ref: '#/parameters/optionalSessionId'    schema:
  responses:         # responsestype: mayobject
fall through to errors         "200"properties:
          description: Success   status:
       schema:         type: string
  type: object             propertiesdefault: "ok"
        400:
    status:      description: Something went wrong while saving the userdata into the json file.
 type: string      default:
          defaultdescription: "ok"Error
        401:  schema:
        description: Authorization information is missing or invalid.$ref: "#/definitions/ErrorResponse"

  /users/v1/files/{fileId}/annotations:
    # binds a127 app logic to a route
    x-swagger-router-controller: userscomments
    get:
      description: Returns annotations userfor a objectfile
      # used as the method name of the controller
      operationId: usersannotations_get
      tags:
        - UserCommenting
Sessions       parameters:
        - $ref: '"#/parameters/sessionId'fileId"
      responses:  -       # responses may fall through to errors
        "200":
          description: Success
    $ref: "#/parameters/sessionId"
     schema:             type: object
            properties:  - name: timestamp
          statustype: integer
          in: query
    type: string     required: false
          defaultdescription: "ok"timestamp of last request to only send new items
      resultsresponses:
        # responses may fall through to errors
 type: array      "200":
          itemsdescription: Success
          schema:
            type: object
            properties:
       properties:       status:
               fname type: string
                default: "ok"
     type: string        results:
                descriptiontype: object
first name               properties:
       surname:           timestamp:
             type: string      type: integer
                    description: lasttime of nameresponse
of user                 commmentThreads:
     "_id":               type: array
        type: string           description: ""
          email:          items:
              type: string       type: object
              licenseExpirationDate:    markups:
                    type: integerarray
                    description: ""
preferences:                     items:
   type: object                  type: object
     properties:             status:
             preferences_display:       type: string
                    typedefault: object"ok"
  /v1/files/{fileId}/markups:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    get:
   properties:   description: Returns markups for a file
      # used as the method name of the controller
      operationId: markups_get
graphicswinmodelbackgrndcolor:      tags:
        - Commenting
      parameters:
        - type$ref: string"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - name: timestamp
          defaulttype: Whiteinteger
          in: query
          required: false
  view:        description: timestamp of last request to only send new items
      responses:
    type: object   # responses may fall through to errors
         "200":
       window:   description: Success
          schema:
             type: object
            properties:
             variables status:
                type: string
            type: object   default: "ok"
              results:
         properties:       type: object
                properties:
      dynasnap:            timestamp:
                    type: stringinteger
                    description: time of response
         default: "63"     put:   markups:
   description: Returns user object       # used as the method name of thetype: controllerarray
      operationId: users_put       tags:      description: ""
 - User Sessions       parameters:         - $refitems:
'#/parameters/sessionId'         - name: body           intype: bodyobject
              required: true   status:
       schema:             propertiestype: string
             preferences:       default: "ok"
  /v1/files/{fileId}/commentThreads:
    # type:binds objecta127 app  logic to a route
    x-swagger-router-controller: comments
    descriptionget:
user preferences     description: Returns comments for a file
      properties:# used as the method name of the controller
      operationId: commentThreads_get
  window:    tags:
        - Commenting
      typeparameters:
object        - $ref: "#/parameters/fileId"
        -  properties$ref: "#/parameters/sessionId"
        - name: timestamp
          edittype: integer
          in: query
           typerequired: objectfalse
          description: timestamp of last request to only send new items
    properties:  responses:
        # responses may fall through to errors
         dockwidgets"200":
          description: Success
                typeschema:
object            type: object
               properties:
              status:
               layerwindow type: string
                         default: "ok"
     type: object        results:
                type: object
      properties:          properties:
                  timestamp:
     h:               type: integer
                    typedescription: stringtime of response
                  commmentThreads:
               description: height o the layerwindow type: array
     responses:         # responses may fall through to errorsdescription: ""
       "200":           description: Success items:
         schema:             type: object
            properties:       status:
       status:             type: string
   type: string                 default: "ok"
  /v1/files/{fileId}/annotationscommentThread:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    getpost:
      description: Add Returnsa new annotationscommentThread for a file
      # used as the method name of the controller
      operationId: annotationscommentThread_getpost
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - name: timestamp
          type: integerbody
           in: querybody
          required: falsetrue
          description: timestamp of last request to only send new items
      responsesschema:
        # responses may fall throughtype: toobject
errors         "200":   properties:
       description: Success      title:
    schema:             type: objectstring
              propertiestext:
              status:  type: string
              typestate:
string                type: string
default: "ok"               resultsenum: [ACTIVE, RESOLVED]
              typeids:
object                 propertiestype: array
                 timestampitems:
 
                  type: integerstring
      responses:
        # responses may fall through description:to timeerrors
of response       "200":
          description: commmentThreads:Success
          schema:
         type: array  type: object
            properties:
    description: ""         status:
           items:     type: string
                typedefault: object"ok"
              timestamp:
   markups:             type: integer
      type: array         description: time of response
     /v1/files/{fileId}/commentThread/{threadId}:
  description: "" # binds a127 app logic to a route
    x-swagger-router-controller: comments
      itemsput:
      description: Update a commentThread
      # used as the method name type:of objectthe controller
      operationId: commentThread_put
         statustags:
        - Commenting
          typeparameters:
string        - $ref: "#/parameters/fileId"
        -  default$ref: "ok#/parameters/sessionId"
  /v1/files/{fileId}/markups:     # binds- a127 app logic to a route$ref: "#/parameters/threadId"
        x-swagger-router-controller- name: commentsbody
    get:       descriptionin: Returnsbody
markups for a file       #required: usedtrue
as the method name of the controller       operationIdschema:
markups_get       tags:     type: object
  -   Commenting       parametersproperties:
        - $ref: '#/parameters/fileId'    title:
    - $ref: '#/parameters/sessionId'         - nametype: string
timestamp           type: integer  text:
        in: query       type: string
  required: false           descriptionids:
timestamp  of last request to only send new items       responsestype: array
       # responses may fall through to errors   items:
     "200":           description: Success type: string
        schemaresponses:
        # responses may fall type:through objectto errors
        "200":
  properties:        description: Success
     status:     schema:
            type: stringobject
                defaultproperties:
"ok"               resultsstatus:
                type: objectstring
                propertiesdefault: "ok"
                 timestamp:
   
                type: integer

                   description: time of response
    get:
      description: get a commentThread
   markups:   # used as the method name of the controller
      operationId: commentThread_get
 type: array    tags:
        - Commenting
      descriptionparameters: ""
        - $ref: "#/parameters/fileId"
        - items$ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
      responses:
   type: object    # responses may fall through to errors
        status"200":
          description: Success
        type  schema:
string            type: object
        default: "ok"   /v1/files/{fileId}/commentThreadsproperties:
    # binds a127 app logic to a route     x-swagger-router-controller: comments
    get:status:
       description: Returns comments for a file    type: string
 # used as the method name of the controller       operationIddefault: commentThreads_get"ok"
      tags:        timestamp:
- Commenting       parameters:         - $reftype: '#/parameters/fileId'integer
        - $ref: '#/parameters/sessionId'      description: time of -response
name: timestamp   delete:
       typedescription: integerDelete a comment Thread
      # in:used queryas the method name of the controller
    required: false operationId: commentThread_delete
      tags:
 description: timestamp of last request to only send- newCommenting
items       responsesparameters:
        #- responses may fall through to errors$ref: "#/parameters/fileId"
        - $ref:   "200":"#/parameters/sessionId"
        -  description$ref: Success
 "#/parameters/threadId"
        schemaresponses:
        # responses may fall type:through objectto errors
        "200":
  properties:        description: Success
     status:     schema:
            type: stringobject
                default: "ok"properties:
              resultsstatus:
                type: objectstring
                propertiesdefault: "ok"
                 timestamp:
                    type: integer
                    description: time of response
                  commmentThreads/v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:
    # binds a127 app logic to a route
        typex-swagger-router-controller: arraycomments
    put:
      description: Update a comment
     description: ""# used as the method name of the controller
            items:operationId: comment_put
      tags:
        - Commenting
      typeparameters:
object        - $ref: "#/parameters/fileId"
        status:- $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
        - type$ref: string"#/parameters/commentId"
        - name: body
         default in: "ok"
  /v1/files/{fileId}/commentThread:body
    # binds a127 app logic to arequired: routetrue
    x-swagger-router-controller: comments     postschema:
      description: Add a new commentThread for atype: fileobject
      # used as the method name ofproperties:
the controller       operationId: commentThread_post       tagstext:
        - Commenting       parameterstype: string
       -responses:
$ref: '#/parameters/fileId'       # responses may -fall $ref: '#/parameters/sessionId'
through to errors
       - name"200":
body           indescription: bodySuccess
          requiredschema:
true            schematype: object
            typeproperties:
object              propertiesstatus:
              title  type: string
               type default: string"ok"
              texttimestamp:
                type: stringinteger
              state:  description: time of response
    get:
      typedescription: stringRetrieve a comment
      # used as the method name of the controller
enum: [ACTIVE, RESOLVED]    operationId: comment_get
      tags:
  ids:      - Commenting
      parameters:
  type: array     - $ref: "#/parameters/fileId"
        - items$ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
         type: string- $ref: "#/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}/commentThread/{threadId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments  delete:
     put:       description: UpdateDelete a commentThreadcomment
       # used as the method name of the controller
      operationId: commentThreadcomment_putdelete
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'
        - $ref: '#/parameters/sessionId'
        - $ref: '#/parameters/threadId'
        - name: body
          in: body"
        -  required$ref: true"#/parameters/sessionId"
        -  schema$ref: "#/parameters/threadId"
        - $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"
                 typetimestamp:
string       responses:         #type: responsesinteger
may fall through to errors
        "200":           description: Successtime of response
  /v1/files/{fileId}/commentThread/{threadId}/comment:
    # schema:binds a127 app logic to a route
      typex-swagger-router-controller: objectcomments
    post:
       propertiesdescription: Post a new comment
      # used as the status:method name of the controller
      operationId: comment_post
      typetags:
string        - Commenting
       default: "ok"parameters:
        - $ref: "#/parameters/fileId"
   timestamp:     - $ref: "#/parameters/sessionId"
        - type$ref: integer"#/parameters/threadId"
        - name: body
     description: time of response     getin: body
     description: get a commentThread  required: true
    # used as the method name of the controller  schema:
    operationId: commentThread_get       tagstype: object
       - Commenting       parametersproperties:
        - $ref: '#/parameters/fileId'     text:
   - $ref: '#/parameters/sessionId'           - $reftype: '#/parameters/threadId'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
  delete  x-swagger-router-controller: comments
    post:
      description: DeleteAdd a comment Thread new markup for a file
      # used as the method name of the controller
      operationId: commentThreadmarkup_deletepost
      tags:
        - Commenting
      parameters:
        - $ref: '#/parameters/fileId'"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - name: body
          in: body
          required: true
         - $refschema:
'#/parameters/sessionId'         - $ref: '#/parameters/threadId'
   type: object
   responses:         #properties:
responses may fall through to errors         "200"title:
          description: Success     type: string
    schema:          text:
  type: object             propertiestype: string
             status state: 
                type: string
                defaultenum: "ok"[ACTIVE, RESOLVED]
              timestampids:
                type: integerarray
                descriptionitems:
time of response    /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:     # binds a127 app logic to a route     x-swagger-router-controllertype: commentsstring
    put:  responses:
    description: Update a comment # responses may fall    # used as the method name of the controllerthrough to errors
        "200":
  operationId: comment_put       tagsdescription: Success
       - Commenting  schema:
    parameters:        type: object
- $ref: '#/parameters/fileId'         - $refproperties:
'#/parameters/sessionId'         - $ref: '#/parameters/threadId'   status:
     - $ref: '#/parameters/commentId'         -type: name:string
body           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 commentmarkup
       # 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
    post  delete:
      description: Postdelete a new comment markup
      # 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 name:fall bodythrough to errors
        in"200":
body           requireddescription: trueSuccess
          schema:
             type: object
            properties:
              textstatus:
                type: string
        responses:        default: "ok"
              timestamp:
 # responses may fall through to errors         "200"type: integer
                description: time of response
  /v1/files/{fileId}/markup/{markupId}/comment/{commentId}: Success
     
    # binds 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:in: body
    # binds a127 app logic to arequired: routetrue
    x-swagger-router-controller: comments     postschema:
      description: Add a new markup for atype: fileobject
      # used as the method name of the controllerproperties:
      operationId: markup_post       tagstext:
        - Commenting       parameterstype: string
      responses:
- $ref: '#/parameters/fileId'      # responses may -fall $ref: '#/parameters/sessionId'
through to errors
       - name"200":
body           indescription: bodySuccess
          requiredschema:
true            schematype: object
            typeproperties:
object              propertiesstatus:
              title  type: string
                typedefault: string"ok"
              texttimestamp:
                type: stringinteger
                statedescription: time of response
    get:
      description: Retrieve a markup comment
   type: string  # used as the method name of the controller
      enumoperationId: [ACTIVE, RESOLVED]markupcomment_get
      tags:
        ids:- Commenting
      parameters:
        - type$ref: array
"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
    items:    - $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  delete:
     put:       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"
        - $ref: "#/parameters/commentId"
      -responses:
$ref: '#/parameters/markupId'       # responses -may name:fall bodythrough to errors
        in"200":
body           requireddescription: trueSuccess
          schema: 
            type: object
            properties:
              titlestatus:
                type: string
                default: "ok"
 text             timestamp:
                type: string integer
                description: time of response
  ids/v1/files/{fileId}/markup/{markupId}/comment:
    # binds a127 app logic to a route
    type: arrayx-swagger-router-controller: comments
    post:
      description: Post a new markup comment
items:      # used as the method name of the controller
    type: string  operationId: markupcomment_post
      tags:
   responses:     - Commenting
  # responses may fall throughparameters:
to errors       - $ref: "200#/parameters/fileId":
        -  description$ref: Success"#/parameters/sessionId"
        -  schema$ref: "#/parameters/markupId"
        - name: body
type: object         in: body
  properties:        required: true
     status:     schema:
            type: object
string            properties:
    default: "ok"          text:
       timestamp:         type: string
      typeresponses:
integer        # responses may fall through to errors
  description:   time of response "200":
   get:       description: get aSuccess
markup        # used asschema:
the method name of the controller       operationIdtype: markup_getobject
      tags:      properties:
  - Commenting       parameters:     status:
   - $ref: '#/parameters/fileId'            - $reftype: '#/parameters/sessionId'string
         - $ref: '#/parameters/markupId'     default: "ok"
responses:         # responses may fall through totimestamp:
errors         "200":       type: integer
  description: Success           schema:  description: time of response
  /v1/files/{fileId}/attachment:
    typex-swagger-router-controller: objectcomments
    post:
       propertiesdescription: Create a markup attachment
      # used as the status:method name of the controller
      operationId: attachment_post
      typetags:
string        - Commenting
       defaultconsumes:
"ok"        - multipart/form-data
     timestamp parameters:
        - $ref: "#/parameters/fileId"
       type: integer- $ref: "#/parameters/sessionId"
        - in: formData
   description: time of response       deletename: attachment
     description: delete a markup  required: true
    # used as the method name oftype: thefile
controller      responses:
operationId: markup_delete       tags"200":
        - Commenting description: Success
    parameters:      schema:
  - $ref: '#/parameters/fileId'        required:
- $ref: '#/parameters/sessionId'         - $ref: '#/parameters/markupId' - status
    responses:         # responses- maychangeId
fall through to errors         "200"properties:
          description: Success   status:
       schema:         type: string
  type: object             propertiesdefault: "ok"
             status changeId: 
                type: string
        # responses may      default: "ok"
     fall through to errors
        timestampdefault:
          description: Error
     type: integer    schema:
            description$ref: time of response  "#/definitions/ErrorResponse"
  /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:
attachments:
   # binds a127 app logic to a route
    x-swagger-router-controller: comments
    putget:
      description: UpdateRetrieve aall commentattachments
       # 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":
         - $refdescription: '#/parameters/markupId'Success
         - $refschema:
'#/parameters/commentId'           - nametype: bodyobject
          in: body properties:
         required: true    status:
      schema:          type: string
  type: object             propertiesdefault: "ok"
             text timestamp:
                type: string integer
                responsesdescription: time of response
  /v1/files/{fileId}/attachments/{attachmentId}:
    # responsesbinds maya127 fallapp throughlogic to errorsa route
    x-swagger-router-controller: comments
 "200":   get:
       description: SuccessRetrieve attachment
      # used as the method schema:name of the controller
      operationId: attachment_get
 type: object    tags:
        properties:- Commenting
      parameters:
      status:  - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
  type: string     - $ref: "#/parameters/attachmentId"
      responses:
  default: "ok"     # responses may fall through to errors
   timestamp:     "200":
           typedescription: integerSuccess
          schema:
     description: time of response     gettype: object
     description: Retrieve a markup comment   properties:
    # used as the method name of the controller  status:
    operationId: markupcomment_get       tags:    type: string
   - Commenting       parameters:     default: "ok"
  - $ref: '#/parameters/fileId'         - $reftimestamp:
'#/parameters/sessionId'         - $ref: '#/parameters/markupId'     type: integer
  - $ref: '#/parameters/commentId'       responses:     description: time of response
# responses may/swagger:
fall through to errors x-swagger-pipe: swagger_raw
# complex objects have schema definitions
"200"definitions:
  SessionsResponse:
    required:
  description: Success   - status
      schema:- results
    properties:
      typestatus: object
        type: string
  properties:      default: "ok"
       statusresults:
        type: array
        typeitems:
string          type: object
     default: "ok"    properties:
          timestamp:  mode:
              type: integerstring
              enum:  description: time of response[view, edit]
       delete:     username:
 description: Delete a markup comment        # usedtype: asstring
the method name of the controller       operationIdsessionId:
  markupcomment_delete       tags:     type: string
  - Commenting       parameters:  userId:
      - $ref: '#/parameters/fileId'      type: string

- $ref: '#/parameters/sessionId' LibrariesResponse:
    required:
   - $ref: '#/parameters/markupId' - status
      - $ref: '#/parameters/commentId'results
    properties:
  responses:    status:
    # responses may fall throughtype: tostring
errors        default: "200ok":
      results:
   description: Success    type: array
     schema:   items:
          type: object
            properties:
            id:
  status:            type: string
    type: string       name:
         default: "ok"    type: string
  BlocksResponse:
    required:
 timestamp:     - status
      - results
  type: integer properties:
      status:
        descriptiontype: timestring
 of response   /v1/files/{fileId}/markup/{markupId}/comment:   default: "ok"
# binds a127 app logic to aresults:
route     x-swagger-router-controller: comments  type: array
 post:       descriptionitems:
Post a new markup comment      type: object
# used as the method name of the controller  properties:
    operationId: markupcomment_post       tagsid:
          - Commenting   type: string
  parameters:         - $refname:
'#/parameters/fileId'             - $reftype: '#/parameters/sessionId'string
        - $ref: '#/parameters/markupId'  thumbnail:
      - name: body      type: string

  inErrorResponse:
body    required:
      required:- truemessage
    properties:
      schemamessage:
        type: string
   type   errrorId:
object        type: string

  propertiesGetUserResponse:
    required:
      - status
 text:     - results
    properties:
      typestatus:
string        responsestype: string
       # responses may fall through to errorsdefault: "ok"
      results:
   "200":     type: array
    description: Success   items:
       schema:   $ref: '#/definitions/UserPreferencesObject'

  UserPreferencesObject:
    type: object
    properties:
      preferences:
 properties:       type: object
        statusproperties:
          variables:
       type:  string   type: object
            defaultproperties:
"ok"               timestamppolarang:
                type: integerstring
                descriptiondefault: time"90"
of response   /v1/files/{fileId}/attachment:     x-swagger-router-controller: comments     postosmode:
      description: Create a markup attachment      type: #string
used as the method name of the controller       operationId: attachment_post  default: "663"
   tags:         - Commenting zoomWheel:
     consumes:          - multipart/form-data
 type: string
     parameters:         - $ref: '#/parameters/fileId'
 default: "0"
       - $ref: '#/parameters/sessionId'     lwdefault:
   - in: formData           nametype: attachment
string
         required: true      default: "25"
   type: file       responses:   dynasnap:
     "200":           descriptiontype: Successstring
          schema:      default: "39"
     required:         graphicswinmodelbackgrndcolor:
     - status          type: string
   - changeId             properties:default: "White"
              statuscursorMode: 
                type: string
                default: "ok2"
          preferences_display:
   changeId:         type: object
         type   properties:
string           # responses may fallgraphicswinmodelbackgrndcolor:
through to errors         default:     type: string
    description: Error           schemadefault: "White"
           $ref   propertieswindowdisplaymode: "#/definitions/ErrorResponse"
     /v1/files/{fileId}/attachments:     x-swagger-router-controller: comments     gettype: string
     description: Retrieve all attachments        # used as the method name of the controller
 default: "0"
          window:
    operationId: attachments_get       tagstype: object
       - 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:                 typeh:
 string         ErrorResponse:     required:       - message     propertiestype: string
     message:         type: string       errrorId:      description: height of type:property stringpanel