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 (has
to be implemented if sessionId query parameter is passed to editor url)
  - name: Commenting
    description: API support for commenting panel
  - name: User Sessions
    description: Optional User Session Handling
(has to be- implementedname: ifBlock sessionIdLibrary
query parameter is passed todescription: editorAPI url)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 commentblock
thread     required: true
    type: string
  markupIdownerType:
    name: markupIdownerType
    in: pathheader
    description: Type of the markup library (PUBLIC/USER/ORG)
    required: truefalse
    type: string
  commentIdsessionId:
    name: commentIdsessionid
    in: pathheader
    description: the user commentsessionId
    required: true
    type: string
  attachmentIdthreadId:
    name: attachmentIdthreadId
    in: path
    description: the comment attachmentthread
    required: true
    type: string
  optionalSessionIdmarkupId:
    name: sessionIdmarkupId
    in: headerpath
    description: the usermarkup
sessionId (optional; sent only if sessionId query parameter was passed to editor url)
    required: false
    required: true
    type: string
  fileSessionIdcommentId:
    name: xSessionIdcommentId
    in: headerpath
    description: the file sessionIdcomment
    required: true
    type: string
paths:   /files/{fileId}/diffsattachmentId:
    parametersname: attachmentId
    in: -path
$ref: '#/parameters/fileId'   description: the attachment
 - $ref: '#/parameters/optionalSessionId'
  required: true
  # binds a127type: appstring
logic to aoptionalSessionId:
route     x-swagger-router-controllername: filessessionid
     getin:  header
    description: Returnsthe fileuser contentsessionId
    required: false
# used as the methodtype: namestring
ofpaths:
the controller /library/blocks:
     operationIdparameters:
diffs_get      - tags$ref: "#/parameters/optionalSessionId"
       - ARES Kudo Required$ref: "#/parameters/ownerType"

    x-swagger-router-controller: blocks
responses:
    get:
   "200":   description: Returns block  libraries

  description: Success   operationId: libraries_get
      schematags:
        - Block Library
 required:     responses:
        "200":
- status         description: Success
    - baseContent     schema:
       properties:     $ref: "#/definitions/LibrariesResponse"
        statusdefault:
          description: Error
     type: string    schema:
            default$ref: "ok#/definitions/ErrorResponse"

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

    x-swagger-router-controller: blocks

    get:
      description: Base64 encoded content of fileReturns blocks of a library

      operationId: blocks_get
      tags:
        - Block Library
# responses may fall through to errorsresponses:
        "404200":
          description: ErrorSuccess
          schema:
            $ref: "#/definitions/ErrorResponseBlocksResponse"
    put:    default:
  description: Update file content     description: Error
# used as the method name of the controller  schema:
    operationId: diffs_put       tags$ref: "#/definitions/ErrorResponse"

  /library/blocks/{libId}/items/{itemId}/content:
   - ARESparameters:
Kudo Required     - $ref: parameters:"#/parameters/libId"
        - name$ref: body"#/parameters/itemId"
      - $ref: "#/parameters/optionalSessionId"
 in: body           required- in: truequery
          schemaname:    fileType
        required: false
        default: "dwg"
   - baseContent    type: string

      propertiesx-swagger-router-controller: blocks

    get:
       baseContentdescription: Returns block file

            typeoperationId: stringblock_getfile
      tags:
        - description:Block Base64Library
encoded content of file   produces:
        - application/octet-stream
      responses:
        "200":
          description: Success
          schemadefault:
            requireddescription: Error
          schema:
  - status         $ref: "#/definitions/ErrorResponse"

   - changeId/library/blocks/{libId}/items/{itemId}/thumbnail:
    parameters:
      -   properties$ref: "#/parameters/libId"
      - $ref: "#/parameters/itemId"
    status  - $ref: "#/parameters/optionalSessionId"
      - in: query
        typename: stringfileType
        required: false
        default: "okpng"
        type: string

   changeId x-swagger-router-controller: blocks

    get:
      description: Returns block type:thumbnail
string
      operationId: block_getthumbnail
# responses may fall through to errorstags:
        default:- Block Library
        descriptionproduces:
Error        - application/octet-stream
 schema:     responses:
       $ref: "#/definitions/ErrorResponse"
  /files200":
    post:       description: CreateSuccess
a new file      default:
# used as the method name of the controller   description: Error
  operationId: post_file       tagsschema:
        - ARES Kudo Optional $ref: "#/definitions/ErrorResponse"

  /files:
consumes:    parameters:
     - multipart/form-data $ref: "#/parameters/optionalSessionId"
    parametersx-swagger-router-controller: files
    post:
  - in: header  description: Create/Update a file
     name: folderId# used as the method name of the controller
  required: true   operationId: post_file
      typetags:
string         - in:ARES formDataKudo Required
      consumes:
  name: file     - multipart/form-data
    required: true parameters:
        - typein: fileheader
      responses:    name:     "200":fileId
           description: SuccessID of the file (New file will be created if this value schema:is not specified)
          required: false
          type: string
 - status      - in: formData
      -   changeId name: file
          propertiesrequired: true
          type: file
 status     responses:
        "200":
        type  description: stringSuccess
          schema:
     default:  "ok"     required:
         changeId:     - id
          type: string   - filename
    # responses may fall through to errors    - isNewFile
   default:           description:- ErrorchangeId
          schema:  properties:
          $ref: "#/definitions/ErrorResponse"   /files/{fileId}/xref/searchid:
    # binds a127 app logic to a route     x-swagger-router-controller: filestype: string
       post:       descriptionfilename:
XRef  search       # used as the method name of thetype: controllerstring
      operationId: xref_search       tagsisNewFile:
        - ARES Kudo Optional     type: boolean
parameters:         - $ref: '#/parameters/fileId'   changeId:
     - $ref: '#/parameters/optionalSessionId'         - nametype: bodystring
        # responses in:may bodyfall through to errors
       required default:
true           schemadescription: Error
           requiredschema:
            $ref: "#/definitions/ErrorResponse"
 - path /files/{fileId}/data:
    parameters:
      - properties:$ref: "#/parameters/fileId"
      - $ref: "#/parameters/optionalSessionId"
    # binds path:a127 app logic to a route
    x-swagger-router-controller: files

    typeget:
array      description: Returns file content
      # description:used xrefsas pathsthe tomethod searchname of the controller
      operationId: data_get
      tags:
        - ARES items:Kudo Required
      produces:
        - application/octet-stream
 type: string       responses:
        "200":
          description: Success
        # responses schema:may fall through to errors
        type"404":
array             itemsdescription: Error
          schema:
  type: object         $ref: "#/definitions/ErrorResponse"

   properties/files/{fileId}/xref/search:
    # binds a127 app logic to a route
    pathx-swagger-router-controller: files
    post:
      description: XRef search
    type: string # used as the method name of the controller
       filesoperationId: xref_search
      tags:
        - ARES type:Kudo arrayOptional
      parameters:
        -   items:$ref: "#/parameters/fileId"
        - $ref: "#/parameters/optionalSessionId"
        - typename: objectbody
          in: body
        properties  required: true
          schema:
          "_id"  required:
              - path
        type: string   properties:
     # responses may fall through to errors   path:
     default:           descriptiontype: Errorarray
          schema:      description: xrefs paths to search
  $ref: "#/definitions/ErrorResponse"   /files/{fileId}/preview:     # binds a127 app logic toitems:
a route     x-swagger-router-controller: files     post:       descriptiontype: string
Optionally handle receiving updates previews  responses:
    # used as the method"200":
name of the controller       operationIddescription: preview_postSuccess
        tags:  schema:
      - ARES Kudo Optional   type: array
  parameters:         - $refitems:
 '#/parameters/fileId'         - $ref: '#/parameters/optionalSessionId'
   type: object
     responses:         "200"properties:
          description: Success     path:
     schema:             type: objectstring
            properties:    files:
          status:        type: array
        type: string         items:
       default: "ok"         # responses may fall throughtype: toobject
errors         default:           descriptionproperties:
Error           schema:           "_id":
 $ref: "#/definitions/ErrorResponse"                      type:  string
   /files/{fileId}/info:     # bindsresponses a127may appfall logicthrough to errors
a route     x-swagger-router-controller: files default:
   get:       description: ReturnsError
file information       # used asschema:
the method name of the controller       operationId$ref: info_get"#/definitions/ErrorResponse"
   /files/{fileId}/preview:
  tags:  # binds a127 app logic to a route
- ARES Kudo Required
  x-swagger-router-controller: files
    parameterspost:
        - $refdescription: '#/parameters/fileId'
   Optionally handle receiving updates previews
    - $ref: '#/parameters/optionalSessionId' used as the method name of responses:the controller
       "200":operationId: preview_post
      tags:
   description: Success    - ARES Kudo Optional
   schema:   parameters:
        - required$ref: "#/parameters/fileId"
        - $ref: "#/parameters/optionalSessionId"
  - status     - in: formData
     type: object    name: file
       properties:   required: true
          statustype: file
      responses:
        "200":
type: string         description: Success
      default:  "ok"  schema:
            filenametype: object
                typeproperties:
string               folderIdstatus:
                 type: string
              owner:                  type: stringdefault: "ok"
        # responses may fall through to errors
        "401"default:
          description: User is notError
autenticated           schema:
            $ref: "#/definitions/ErrorResponse"

  /files/{fileId}/info:
    # "404":binds a127 app logic to a route
    descriptionx-swagger-router-controller: File isfiles
not found   get:
       schemadescription: Returns file information
      # used as $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/session:
the method name of the controller
   # binds a127 app logic to a routeoperationId: info_get
       parameterstags:
        - ARES Kudo Required
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/optionalSessionId'"
      x-swagger-router-controller: filesresponses:
        get"200":
          description: getSuccess
file sessions       # used asschema:
the method name of the controller       operationIdrequired:
session_get          tags:    - status
   - File Sessions       responsestype: object
        "200":    properties:
      description: Success       status:
   schema:             #type: astring
pointer to a definition             $refdefault: "#/definitions/SessionsResponseok"
        #  responses may fall through tofilename:
errors         default:       type: string
  description: Error           schemafolderId:
             $ref: "#/definitions/ErrorResponse"  type: string
 post:        description: Create file session. Sessions needowner:
to be either of type "view" or "edit"       # used astype: thestring
method name of the controller    # responses may operationId: session_post
 fall through to errors
    tags:    "401":
    - File Sessions    description: User  parameters:is not autenticated
         - nameschema:
 body           in$ref: body"#/definitions/ErrorResponse"
          required: true"404":
          schemadescription: File is not found
        required:  schema:
            - mode$ref: "#/definitions/ErrorResponse"
  /files/{fileId}/session:
    # binds a127 app logic properties:to a route
    parameters:
      - mode$ref: "#/parameters/fileId"
      - $ref: "#/parameters/sessionId"

     typex-swagger-router-controller: stringfiles_sessions
    get:
           description: Typeget file ofsessions
session requested     # used as the method name of the controller
      enumoperationId: [view, edit]session_get
      tags:
        fileId:- File Sessions
      responses:
       type "200":
string          description: Success
     description: fileId for the file forschema:
which the session is being requested       # a pointer to responses:a definition
       "200":     $ref: "#/definitions/SessionsResponse"
    description: Success   # responses may fall through to errors
 schema:       default:
     required:     description: Error
        - status schema:
             - "_id"$ref: "#/definitions/ErrorResponse"
    post:
       propertiesdescription: 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
           typein: stringbody
        # responses mayrequired: falltrue
through to errors         defaultschema:
          description: Error required:
         schema:     - mode
      $ref: "#/definitions/ErrorResponse"     deleteproperties:
      description: delete file session     mode:
 # used as the method name of the controller       operationIdtype: session_deletestring
       tags:         -description: FileType Sessionsof session requested
    parameters:           - $refenum: '#/parameters/fileSessionId'
[view, edit]
     responses:         "200"fileId:
           description: Success    type: string
     schema:           description: fileId #for athe pointerfile tofor awhich definitionthe session is being requested
      responses:
 $ref: "#/definitions/SessionsResponse"      "200":
  # responses may fall through to errors  description: Success
     default:     schema:
     description: Error      required:
    schema:          - status
 $ref: "#/definitions/ErrorResponse"   /auth:     # binds a127 app logic to a route- "_id"
      x-swagger-router-controller: auth     getproperties:
      description: validate user session     status:
 # used as the method name of the controller       tagstype: string
       - User Sessions       operationIddefault: auth_get"ok"
              parameters"_id":
        - $ref: '#/parameters/sessionId'      type: responses:string
        # responses may fall through to errors
        "200"default:
          description: SuccessError
          schema:
            type$ref: object"#/definitions/ErrorResponse"
    delete:
       propertiesdescription: delete file session
      # used as the method status:name of the controller
      operationId: session_delete
      typetags:
string        - File Sessions
      defaultresponses: "ok"
        401"200":
          description: AuthorizationSuccess
information is missing or invalid.   /users:   schema:
 # binds a127 app logic to a route     x-swagger-router-controller: users
    get:# a pointer to a definition
      description: Returns user object   $ref: "#/definitions/SessionsResponse"
        # usedresponses asmay thefall methodthrough nameto oferrors
the controller       operationIddefault:
users_get       tags:   description: Error
    - User Sessions    schema:
  parameters:         - $ref: '"#/parametersdefinitions/sessionId'ErrorResponse"
      responses/auth:
        # responsesbinds maya127 fallapp throughlogic to errorsa route
    x-swagger-router-controller: auth
 "200":    get:
      description: Successvalidate user session
      # used schema:as the method name of the controller
      typetags:
object        - User Sessions
  properties:    operationId: auth_get
      parameters:
  status:      - $ref: "#/parameters/optionalSessionId"
      responses:
  type: string     # responses may fall through to errors
     default:   "ok200":
          description: Success
  results:        schema:
        type: array   type: object
            itemsproperties:
                     typestatus:
object                type: string
   properties:             default: "ok"
        fname401:
          description: Authorization information is missing or invalid.
  /users:
    type:# stringbinds a127 app logic to a route
    x-swagger-router-controller: users
    get:
       description: first name
Get user data and preferences
      # used as the method name of the controller
      surnameoperationId: users_get
      tags:
        - Users
      typeparameters:
 string       - $ref: "#/parameters/sessionId"
      responses:
        description200:
last name of user       description: Success
          schema:
   "_id":         $ref: '#/definitions/GetUserResponse'
        400:
     type: string    description: Something went wrong while getting the userdata from json file.
        emaildefault:
          description: Error
          schema:
 type: string          $ref: "#/definitions/ErrorResponse"
    put:
      licenseExpirationDatedescription: Update user data and preferences
      # used as the method name of the controller
      typeoperationId: integerusers_put
      tags:
        - Users
      preferencesparameters:
        - $ref: "#/parameters/sessionId"
        - name: body
   type: object      in: body
          required: true
     properties:     schema:
            $ref: '#/definitions/UserPreferencesObject'

      preferences_displayresponses:
        200:
          description: Success
       type: object  schema:
            type: object
            properties:
              status:
                graphicswinmodelbackgrndcolortype: string
                default: "ok"
        400:
    type: string     description: Something went wrong while saving the userdata into the json file.
        default:
       default: White  description: Error
          schema:
            window$ref: "#/definitions/ErrorResponse"

  /v1/files/{fileId}/annotations:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
     typeget:
object      description: Returns annotations for a file
      # used as the method name of the controller
  properties:    operationId: annotations_get
      tags:
        - Commenting
        editparameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        -  typename: objecttimestamp
          type: integer
          in: query
      view:    required: false
          description: timestamp of last request to only send new items
       typeresponses:
object        # responses may fall through to errors
        "200":
     variables:     description: Success
          schema:
            type: object
            properties:
              status:
properties:                type: string
                dynasnapdefault: "ok"
              results:
                type: stringobject
                properties:
               default: "63"  timestamp:
  put:       description: Returns user object       # usedtype: asinteger
the method name of the controller       operationId: users_put       tagsdescription: time of response
     - User Sessions       parameters:    commmentThreads:
    - $ref: '#/parameters/sessionId'         - name: body   type: array
      in: body           required: true description: ""
        schema:             propertiesitems:
              preferences:        type: object
       type: object            markups:
    description: user preferences              type: array
 properties:                   windowdescription: ""
                   type items:
 object                     propertiestype: object
                     editstatus:
                        type: objectstring
                    default: "ok"
  properties/v1/files/{fileId}/markups:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    get:
    dockwidgets:  description: Returns markups for a file
      # used as the method name of the controller
      typeoperationId: objectmarkups_get
      tags:
        - Commenting
      parameters:
    properties:    - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - name: timestamp
  layerwindow:        type: integer
          in: query
           typerequired: objectfalse
          description: timestamp of last request to only send new items
      responses:
     properties:   # responses may fall through to errors
        "200":
          description: Success
    h:      schema:
            type: object
            properties:
   type: string          status:
                type: string
        description: height o the layerwindow    default: "ok"
  responses:         # responses may fallresults:
through to errors         "200":     type: object
    description: Success           schemaproperties:
             type: object    timestamp:
        properties:            type: integer
  status:                  typedescription: stringtime of response
              default: "ok"   /v1/files/{fileId}/annotationsmarkups:
    # binds a127 app logic to a route     x-swagger-router-controller: comments   type: array
get:       description: Returns annotations for a file       # useddescription: as""
the method name of the controller       operationId: annotations_get       tagsitems:
        - Commenting       parameters:      type: object
 -    $ref: '#/parameters/fileId'         - $ref: '#/parameters/sessionId'
 status:
       - name: timestamp           type: integerstring
          in: query           requireddefault: false"ok"
  /v1/files/{fileId}/commentThreads:
    # binds a127 description:app timestamplogic ofto lasta requestroute
to only send new items
 x-swagger-router-controller: comments
     responsesget:
      description: Returns #comments responsesfor maya fallfile
through to errors    # used as the method "200":name of the controller
       descriptionoperationId: SuccesscommentThreads_get
      tags:
   schema:     - Commenting
      typeparameters:
object        -     properties$ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
  status:      - name: timestamp
          type: stringinteger
          in: query
    default: "ok"      required: false
          resultsdescription: timestamp of last request to only send new items
      responses:
type:  object      # responses may fall through to errors
    properties:    "200":
          description: Success
  timestamp:        schema:
            type: integerobject
            properties:
         description: time of response  status:
                commmentThreadstype: string
                default: "ok"
 type: array            results:
        description: ""       type: object
            items:    properties:
                  typetimestamp:
object                    markupstype: integer
                    typedescription: arraytime of response
                  descriptioncommmentThreads:
""                    type: items:array
                    description: ""
type: object                   statusitems:
                      type: stringobject
                  status:
 default: "                   type: string
                    default: "ok"
  /v1/files/{fileId}/markupscommentThread:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    getpost:
      description: Returns markupsAdd a new commentThread for a file
      # used as the method name of the controller
      operationId: markupscommentThread_getpost
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - name: timestampbody
          typein: integerbody
          inrequired: querytrue
          requiredschema:
 false           descriptiontype: timestampobject
   of last request to only send new items  properties:
    responses:         # responsestitle:
may fall through to errors         "200":   type: string
      description: Success       text:
   schema:             type: string
object              propertiesstate:
              status  type: string
                typeenum: string[ACTIVE, RESOLVED]
               default: "ok"ids:
              results:                 type: objectarray
                propertiesitems:
                  timestamptype: string
      responses:
        # responses may fall type:through integerto errors
        "200":
          description: timeSuccess
of response           schema:
       markups:     type: object
              typeproperties:
array                     descriptionstatus:
""                     itemstype: string
                     typedefault: object"ok"
                  statustimestamp:
                    type: stringinteger
                description: time   default: "ok"of response
   /v1/files/{fileId}/commentThread/{threadId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    postput:
      description: AddUpdate a new commentThread for a file
      # used as the method name of the controller
      operationId: commentThread_postput
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - name$ref: body"#/parameters/threadId"
        -  inname: body
          requiredin: truebody
          schemarequired: true
            typeschema:
object             propertiestype: object
             titleproperties:
                type: string
              texttitle:
                type: string
              statetext:
                type: string
    
           enum: [ACTIVE, RESOLVED]
              ids:
                type: array
                items:
                  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}/commentThread/{threadId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    putget:
      description: Updateget a commentThread 
      # used as the method name of the controller
      operationId: commentThread_putget
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/threadId'"
      responses:
        # - name: body
 responses may fall through to errors
        in"200":
body           requireddescription: trueSuccess
          schema: 
            type: object
            properties:
              titlestatus:
                type: string
              text  default: "ok"
              timestamp:
type: string               idstype: integer
                typedescription: arraytime of response
    delete:
         itemsdescription: Delete a comment Thread
      # used as the method name of the type:controller
string       responses:operationId: commentThread_delete
      tags:
 # responses may fall through to errors - Commenting
      "200"parameters:
        -  description$ref: Success"#/parameters/fileId"
        -  schema$ref: "#/parameters/sessionId"
        -   type$ref: object"#/parameters/threadId"
      responses:
     properties:   # responses may fall through to errors
       status "200":
          description: Success
     type: string    schema:
            defaulttype: "ok"object
              timestampproperties:
              status:
 type: integer              type: string
 description: time of response     get:       descriptiondefault: get"ok"
a commentThread        # used as the method nametimestamp:
of the controller       operationId: commentThread_get      type: tags:integer
        - Commenting       parametersdescription: time of response
     - $ref: '#/parameters/fileId'/v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:
    # binds a127 app -logic $ref: '#/parameters/sessionId'
to a route
       - $ref: '#/parameters/threadId'x-swagger-router-controller: comments
    put:
      description: responses:Update a comment
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200"operationId: comment_put
      tags:
  description:   Success   - Commenting
      schemaparameters:
        - $ref: "#/parameters/fileId"
    type:  object  - $ref: "#/parameters/sessionId"
        - properties$ref: "#/parameters/threadId"
        - $ref: "#/parameters/commentId"
   status:     - name: body
          typein: stringbody
          required: true
    default: "ok"     schema:
         timestamp:   type: object
            typeproperties:
integer              text:
  description:  time of response     /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:     # binds a127 app logic to a route
    x-swagger-router-controller: commentstype: string
      responses:
     put:   # responses may fall description:through Updateto aerrors
comment        #"200":
used as the method name of the controller   description: Success
  operationId: comment_put       tagsschema:
        - Commenting   type: object
  parameters:         - $ref: '#/parameters/fileId'properties:
        - $ref: '#/parameters/sessionId'    status:
    - $ref: '#/parameters/threadId'         - $reftype: '#/parameters/commentId'string
        - name: body      default: "ok"
   in: body          timestamp:
required: true           schema:    type: integer
        type: object       description: time of response
   properties get:
      description: Retrieve a comment
    text:  # used as the method name of the controller
      typeoperationId: stringcomment_get
      responsestags:
        - #Commenting
   responses may fall throughparameters:
to errors       - $ref: "200#/parameters/fileId":
        -  description$ref: Success"#/parameters/sessionId"
        -  schema:$ref: "#/parameters/threadId"
        - $ref: "#/parameters/commentId"
 type: object    responses:
        properties:# responses may fall through to errors
        status"200":
          description: Success
     type: string    schema:
            defaulttype: "ok"object
            properties:
 timestamp:             status:
   type:              type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
    getdelete:
      description: RetrieveDelete a comment 
      # used as the method name of the controller
      operationId: comment_getdelete
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/threadId'"
        - $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}/comment:
 delete:   # binds a127 app description:logic Deleteto a commentroute
    x-swagger-router-controller: comments
 # used as the post:
      description: Post a new comment
      # used as the method name of the controller
      operationId: comment_deletepost
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/threadId'"
        - $refname: '#/parameters/commentId'body
          responsesin: body
       # responses may fallrequired: throughtrue
to errors         "200"schema:
          description: Success  type: object
            schemaproperties:
            type  text:
  object              propertiestype: string
      responses:
       status: # responses may fall through to errors
        "200":
 type: string        description: Success
       default: "ok"  schema:
            timestamptype: object
            properties:
  type:   integer         status:
       description: time of response
  /v1/      type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/commentThread/{threadId}/commentmarkup:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    post:
      description: PostAdd a new markup commentfor a file
      # used as the method name of the controller
      operationId: commentmarkup_post
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $refname: '#/parameters/threadId' body
         - namein: body
          inrequired: bodytrue
          requiredschema:
true
          schema:              type: object
            properties:
              texttitle:
                type: string
      responses:        text:
 # responses may fall through to errors         "200"type: string
          description: Success   state:
       schema:         type: string
  type: object             propertiesenum: [ACTIVE, RESOLVED]
             status ids:
                 type: stringarray
                defaultitems:
"ok"               timestamp:   type: string
      responses:
     type: integer  # responses may fall through to errors
        description"200":
time of response   /v1/files/{fileId}/markup:     #description: bindsSuccess
a127 app logic to a route     x-swagger-router-controllerschema:
comments     post:       descriptiontype: Addobject
a new markup for a file       #properties:
used as the method name of the controller       operationIdstatus:
markup_post       tags:         -type: Commentingstring
      parameters:         - $refdefault: '#/parameters/fileId'"ok"
        - $ref: '#/parameters/sessionId'    timestamp:
    - name: body           intype: bodyinteger
          required: true     description: time of response
  schema/v1/files/{fileId}/markup/{markupId}:
    # binds a127 app logic to a route
 type: object  x-swagger-router-controller: comments
         propertiesput:
      description: Update a markup
    title:  # used as the method name of the controller
      typeoperationId: stringmarkup_put
      tags:
       text: - Commenting
      parameters:
       type: string- $ref: "#/parameters/fileId"
        - $ref:   state:
"#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
        - name: body
    type: string     in: body
          enumrequired: [ACTIVE,true
RESOLVED]          schema:
    ids:        type: object
       type: array    properties:
            items:  title:
                type: string
      responses:        text:
 # responses may fall through to errors         "200"type: string
         description:  Success   ids:
       schema:         type: array
  type: object             propertiesitems:
              status:    type: string
      responses:
     type: string  # responses may fall through to errors
        default"200":
"ok"          description: Success
      timestamp:    schema:
            type: integer object
            properties:
        description: time of response
  /v1/files/{fileId}/markup/{markupId}:   status:
                type: string
                default: "ok"
              timestamp:
                type: integer
    # binds a127 app logic to a route     x-swagger-router-controller: commentsdescription: time of response
    putget:
      description: Updateget a markup 
      # used as the method name of the controller
      operationId: markup_putget
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/markupId'"
      responses:
 - name: body     # responses may fall through  into errors
        "200":
body           requireddescription: trueSuccess
          schema:
             type: object
            properties:
              titlestatus:
                type: string
              text  default: "ok"
              timestamp:
type: string               idstype: integer
               type: array description: time of response
    delete:
      description: delete a markup
  items:    # used as the method name of the controller
      typeoperationId: stringmarkup_delete
      responsestags:
        # responses may fall through to errors- Commenting
      parameters:
        - $ref: "200#/parameters/fileId":
        -  description$ref: Success"#/parameters/sessionId"
        -  schema:$ref: "#/parameters/markupId"
      responses:
     type: object  # responses may fall through to errors
    properties:    "200":
          statusdescription: Success
           schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
    get/v1/files/{fileId}/markup/{markupId}/comment/{commentId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    put:
      description: getUpdate a markupcomment
       # used as the method name of the controller
      operationId: markupmarkupcomment_getput
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '"#/parameters/markupId'"
      responses  - $ref: "#/parameters/commentId"
       # responses- mayname: fallbody
through to errors         "200":in: body
          descriptionrequired: Successtrue
          schema:
            type: object
            properties:
              statustext:
                 type: string
      responses:
        # responses may fall through to errors
       default: "ok200":
          description: Success
  timestamp:        schema:
        type: integer   type: object
            descriptionproperties: time
of response       delete:      status:
description: delete a markup        # used as the method nametype: ofstring
the controller       operationId: markup_delete       tagsdefault: "ok"
       - Commenting       parameterstimestamp:
        - $ref: '#/parameters/fileId'      type: integer
 - $ref: '#/parameters/sessionId'         - $ref   description: '#/parameters/markupId'
 time of response
    responsesget:
      description: Retrieve #a markup responsescomment
may fall through to errors  # used as the method name of "200":the controller
      operationId: markupcomment_get
 description: Success    tags:
      schema:  - Commenting
      parameters:
  type: object     - $ref: "#/parameters/fileId"
     properties:   - $ref: "#/parameters/sessionId"
        - status:$ref: "#/parameters/markupId"
        - $ref: "#/parameters/commentId"
      typeresponses:
  string      # responses may fall through to errors
       default: "ok200":
          description: Success
    timestamp:      schema:
            type: integerobject
            properties:
   description: time of response     /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    put   status:
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
    delete:
      description: UpdateDelete a markup comment 
      # used as the method name of the controller
      operationId: markupcomment_putdelete
      tags:
        - Commenting
      parameters:
        - $ref: '"#/parameters/fileId'"
        - $ref: '"#/parameters/sessionId'"
        - $ref: '#/parameters/markupId'
        - $ref: '#/parameters/commentId'"#/parameters/markupId"
        - $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}/markup/{markupId}/comment:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    post:
      description: Post a new markup comment
      # used as the method name of the controller
      operationId: markupcomment_post
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              text:
                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}/attachment:
    x-swagger-router-controller: comments
    post:
      description: Create a markup attachment
      # used as the method name of the controller
      operationId: attachment_post
      tags:
        - Commenting
      consumes:
        - multipart/form-data
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - in: formData
          name: attachment
          required: true
          type: file
      responses:
        "200":
          description: Success
          schema:
            required:
              - status
              - changeId
            properties:
              status:
                type: string
                default: "ok"
              changeId:
                type: string
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"
  /v1/files/{fileId}/attachments:
    x-swagger-router-controller: comments
    get:
      description: Retrieve all attachments
      # used as the method name of the controller
      operationId: attachments_get
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
               - 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
   type get: string
      responsesdescription: Retrieve attachment
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200"operationId: attachment_get
      tags:
    description: Success   - Commenting
      schemaparameters:
        - $ref: "#/parameters/fileId"
       type: object- $ref: "#/parameters/sessionId"
        -  properties$ref: "#/parameters/attachmentId"
      responses:
      status:  # responses may fall through to errors
         type"200":
string          description: Success
     default: "ok"    schema:
          timestamp:  type: object
             typeproperties:
integer              status:
  description: time of response     get:       descriptiontype: Retrievestring
a markup comment        # used as the method name of the controller
default: "ok"
      operationId: markupcomment_get       tagstimestamp:
        - Commenting       parameterstype: integer
       - $ref: '#/parameters/fileId'       description: time -of $ref: '#/parameters/sessionId'response
  /swagger:
      - $ref: '#/parameters/markupId'
        - $ref: '#/parameters/commentId'
 x-swagger-pipe: swagger_raw
# complex objects have schema definitions
definitions:
  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: object  type: string
        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"
          preferences_display:
type: 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:         - $ref: '#/parameters/fileId'edit: 
       - $ref: '#/parameters/sessionId'       responsestype: object
       # 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: "200":false"
                description: Success           schema:
    description: true/false if the layer panel is collapsed or not
        type: object             properties:    h:
          status:                  type: string
                  default: "ok"         description: height of the layerwindow
 timestamp:                 type: integer   propertywindow:
             description: time of response   /swagger:     x-swagger-pipetype: swagger_rawobject
 # complex objects have schema definitions definitions:   SessionsResponse:     required:       - status properties:
     - results     properties:       status:        visible:
 type: string         default: "ok"       results:         type: string
array         items:              type: object    default: "1"
       properties:               mode:    iscollapsed:
            type: string               type: string
enum: [view, edit]               username:           default: "false"
    type: string               sessionId:        description: true/false if the properties panel is collapsed or type:not
string               userId:           h:
     type: string    ErrorResponse:     required:       - message     propertiestype: string
     message:         type: string       errrorId:      description: height of type:property stringpanel