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
  libId:
    name: libId
    in: path
    description: The id of the library
    required: true
    type: string
  itemId:
    name: itemId
    in: path
    description: The id of the block
    required: true
    type: string
  ownerType:
    name: ownerType
    in: header
    description: Type of the library (PUBLIC/USER/ORG)
    required: false
    type: string
  sessionId:
    name: sessionid
    in: header
    description: the user sessionId
    required: true
    type: string
  threadId:
    name: threadId
    in: path
    description: the comment thread
    required: true
    type: string
  markupId:
    name: markupId
    in: path
    description: the markup
    required: true
    type: string
  commentId:
    name: commentId
    in: path
    description: the comment
    required: true
    type: string
  attachmentId:
    name: attachmentId
    in: path
    description: the attachment
    required: true
    type: string
  optionalSessionId:
    name: sessionid
    in: header
    description: the user sessionId
    required: false
    type: string
paths:
  /library/blocks:
    parameters:
      - $ref: "#/parameters/optionalSessionId"
      - $ref: "#/parameters/ownerType"

    x-swagger-router-controller: blocks

    get:
      description: Returns block libraries

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

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

    x-swagger-router-controller: blocks

    get:
      description: Returns blocks of a library

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

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

    x-swagger-router-controller: blocks

    get:
      description: Returns block file

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

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

    x-swagger-router-controller: blocks

    get:
      description: Returns block thumbnail

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

  /files/{fileId}/diffs:
    parameters:
      - $ref: "#/parameters/fileId"
      - $ref: "#/parameters/optionalSessionId"
    # binds a127 app logic to a route
    x-swagger-router-controller: files
     getpost:
      description: ReturnsCreate/Update a file content
      # used as the method name of the controller
      operationId: diffspost_getfile
      deprecatedtags:
true       tags: - ARES Kudo Required
    - ARES Kudoconsumes:
Optional       responses: - multipart/form-data
      "200"parameters:
        -  descriptionin: Successheader
          schemaname: fileId
           requireddescription: ID of the file (New file will be created if this value is not -specified)
status          required: false
   - baseContent      type: string
     properties:   - in: formData
         status name: file
          required: true
    type: string     type: file
      responses:
   default: "ok"    "200":
          baseContentdescription: Success
               typeschema:
string                 descriptionrequired:
Base64 encoded content of file          - id
     # responses may fall through to errors   - filename
    "404":          - description:isNewFile
Error           schema:   - changeId
        $ref: "#/definitions/ErrorResponse"     putproperties:
      description: Update file content     id:
 # used as the method name of the controller       operationIdtype: diffs_putstring
      deprecated: true       tagsfilename:
        - ARES Kudo Optional       parameterstype: string
       - name: body     isNewFile:
     in: body           requiredtype: trueboolean
          schema:    changeId:
        required:        type: string
     - baseContent  # responses may fall through to errors
    properties:    default:
          baseContentdescription: Error
          schema:
    type: string         $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/data:
    descriptionparameters:
Base64 encoded content of file  - $ref: "#/parameters/fileId"
   responses:   - $ref: "#/parameters/optionalSessionId"
   "200": # binds a127 app logic to a route
  description  x-swagger-router-controller: Successfiles

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

  /files/{fileId}/xref/search:
    parameters:# binds a127 app logic to a -route
$ref: "#/parameters/optionalSessionId"
    x-swagger-router-controller: files
    post:
      description: Create/Update a fileXRef search
      # used as the method name of the controller
      operationId: postxref_filesearch
      tags:
        - ARES Kudo RequiredOptional
      consumesparameters:
        - multipart/form-data$ref: "#/parameters/fileId"
        - $ref: parameters:"#/parameters/optionalSessionId"
        - inname: headerbody
          namein: fileIdbody
          descriptionrequired: IDtrue
of the file (New file will be created if this valueschema:
is not specified)
          required:
  false           type: string- path
       - in: formData   properties:
       name: file      path:
    required: true           type: filearray
       responses:         "200"description: xrefs paths to search
      description: Success           schemaitems:
            required:      type: string
      responses:
- id       "200":
       - filename  description: Success
          schema:
- isNewFile           type: array
  - changeId             propertiesitems:
              idtype: object
              properties:
type: string               filenamepath:
                  type: string
              isNewFile  files:
                  type: array
boolean                  changeIditems:
                    type: stringobject
        # responses may fall through to errors      properties:
  default:           description: Error        "_id":
  schema:             $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/data         type: string
        # responses may fall through to errors
        default:
    parameters:      description: Error
         - $refschema:
"#/parameters/fileId"           - $ref: "#/parametersdefinitions/optionalSessionId"ErrorResponse"
  /files/{fileId}/preview:
    # binds a127 app logic to a route
    x-swagger-router-controller: files
     getpost:
      description: Returns file contentOptionally handle receiving updates previews
      # used as the method name of the controller
      operationId: datapreview_getpost
      tags:
        - ARES Kudo RequiredOptional
      producesparameters:
        - application/octet-stream$ref: "#/parameters/fileId"
      responses:         "200":- $ref: "#/parameters/optionalSessionId"
        -  descriptionin: SuccessformData
        # responses mayname: fallfile
through to errors         "404":required: true
          descriptiontype: Errorfile
      responses:
   schema:     "200":
       $ref: "#/definitions/ErrorResponse"  description:  /files/{fileId}/xref/search:Success
     # binds a127 app logic toschema:
a route     x-swagger-router-controller: files     posttype: object
     description: XRef search     properties:
 # used as the method name of the controller       operationIdstatus:
xref_search       tags:         -type: ARESstring
Kudo Optional       parameters:         - $refdefault: "#/parameters/fileIdok"
        - $ref: "#/parameters/optionalSessionId" responses may fall through to errors
  - name: body    default:
      in: body        description: Error
  required: true           schema:
            required$ref: "#/definitions/ErrorResponse"

  /files/{fileId}/info:
    # binds a127 app logic -to patha route
    x-swagger-router-controller: files
     propertiesget:
      description: Returns file information
    path:  # used as the method name of the controller
      typeoperationId: arrayinfo_get
      tags:
        - description:ARES xrefsKudo pathsRequired
to search     parameters:
        -   items$ref: "#/parameters/fileId"
                 type: string- $ref: "#/parameters/optionalSessionId"
      responses:
        "200":
          description: Success
          schema:
            typerequired:
array             items: - status
            type: object
              properties:
                pathstatus:
                  type: string
                filesdefault: "ok"
                 typefilename:
array                type: string
 items:             folderId:
                type: object string
              owner:
                propertiestype: string
        # responses may fall through to errors
        "_id401":
          description: User is not autenticated
          typeschema:
string         # responses may fall through to errors$ref: "#/definitions/ErrorResponse"
         default"404":
          description: Error File is not found
          schema:
            $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/previewsession:
    # binds a127 app logic to a route
    parameters:
      - $ref: "#/parameters/fileId"
      - $ref: "#/parameters/sessionId"

    x-swagger-router-controller: files_sessions
    postget:
      description: Optionallyget handle receiving updates previewsfile sessions
      # used as the method name of the controller
      operationId: previewsession_postget
      tags:
        - ARESFile KudoSessions
Optional       parametersresponses:
        - $ref"200":
"#/parameters/fileId"         - $refdescription: "#/parameters/optionalSessionId"Success
         - inschema:
formData            # name:a filepointer to a definition
       required: true    $ref: "#/definitions/SessionsResponse"
     type: file  # responses may fall through to responses:errors
        "200"default:
          description: SuccessError
          schema:
            type$ref: object"#/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
     # responsesparameters:
may fall through to errors    - name: body
  default:        in: body
   description: Error      required: true
   schema:       schema:
     $ref: "#/definitions/ErrorResponse"    /files/{fileId}/info:  required:
  # binds a127 app logic to a route     x-swagger-router-controller: files- mode
     get:       descriptionproperties:
Returns file information
      # used as the method name ofmode:
the controller       operationId: info_get       tagstype: string
       - ARES Kudo Required       parametersdescription: Type of session requested
    - $ref: "#/parameters/fileId"         - $refenum: "#/parameters/optionalSessionId"
[view, edit]
     responses:         "200"fileId:
          description: Success     type: string
    schema:             requireddescription: fileId for the file for which the session is being requested
   - status  responses:
        "200":
 type: object        description: Success
   properties:       schema:
       status:     required:
            type: string - status
              default:- "ok_id"
              filenameproperties:
              status:
 type: string              type: folderId:string
                typedefault: string"ok"
              owner"_id":
                type: string
        # responses may fall through to errors
        "401"default:
          description: User is not autenticatedError
          schema:
            $ref: "#/definitions/ErrorResponse"
        "404":
   delete:
      description: delete Filefile issession
not found     # used as the method name schema:of the controller
      operationId: session_delete
  $ref: "#/definitions/ErrorResponse"   /files/{fileId}/sessiontags:
    #  binds a127 app- logicFile toSessions
a route     parametersresponses:
      - $ref: "#/parameters/fileId200":
      -  $ref: "#/parameters/sessionId"

 description: Success
   x-swagger-router-controller: files_sessions       getschema:
      description: get file sessions   # a pointer to #a useddefinition
as the method name of the controller       operationId: session_get$ref: "#/definitions/SessionsResponse"
       tags: # responses may fall through to errors
 - File Sessions     default:
 responses:         "200"description: Error
          descriptionschema:
Success            schema:$ref: "#/definitions/ErrorResponse"
  /auth:
    # binds a127 app logic #to a pointerroute
  to a definition
 x-swagger-router-controller: auth
    get:
      $refdescription: "#/definitions/SessionsResponse"
 validate user session
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      defaulttags:
        - User description:Sessions
Error      operationId: auth_get
   schema:   parameters:
        - $ref: "#/definitionsparameters/ErrorResponseoptionalSessionId"
    post  responses:
       description: Create# fileresponses session.may Sessionsfall needthrough to beerrors
   either of type "view" or "edit200":
      #  used as thedescription: methodSuccess
name of the controller       operationIdschema:
session_post        tags:    type: object
   - File Sessions       parametersproperties:
        -  name: body   status:
       in: body        type: string
 required: true           schema:   default: "ok"
        required401:
          description: Authorization information is -missing modeor invalid.
  /users:
    # binds a127 app properties:logic to a route
    x-swagger-router-controller: users
     modeget:
      description: Get user data and preferences
    type: string # used as the method name of the controller
       descriptionoperationId: Typeusers_get
of session requested    tags:
        - Users
  enum: [view, edit]  parameters:
        -    fileId$ref: "#/parameters/sessionId"
      responses:
        type200:
string          description: Success
     description: fileId for the file forschema:
which the session is being requested       responses:$ref: '#/definitions/GetUserResponse'
        "200"400:
          description: SuccessSomething went wrong while getting the userdata from json file.
 schema:       default:
     required:     description: Error
        - status schema:
            $ref: - "_id"#/definitions/ErrorResponse"
    put:
       propertiesdescription: Update user data and preferences
      # used as status:the method name of the controller
      operationId: users_put
   type: string  tags:
        - Users
      defaultparameters:
"ok"        - $ref: "#/parameters/sessionId"
    "_id":    - name: body
          typein: stringbody
        # responses may fall through to errorsrequired: true
          defaultschema:
          description: Error $ref: '#/definitions/UserPreferencesObject'

      responses:
schema:        200:
    $ref: "#/definitions/ErrorResponse"     deletedescription: Success
     description: delete file session  schema:
    # used as the method name of the controllertype: object
     operationId: session_delete      properties:
parameters:         - name: body   status:
       in: body        type: string
 required: true           schema:   default: "ok"
        required400:
          description: Something went wrong -while modesaving the userdata into the json file.
      properties:  default:
            modedescription: Error
               typeschema:
string            $ref: "#/definitions/ErrorResponse"

  description/v1/files/{fileId}/annotations:
Type of session requested # binds a127 app logic to a route
    x-swagger-router-controller: comments
  enum: [view, edit] get:
      tagsdescription: Returns annotations for a file
   - File Sessions # used as the method name responses:of the controller
      "200"operationId: annotations_get
      tags:
  description: Success     - Commenting
    schema:  parameters:
        - $ref: "#/parameters/fileId"
a pointer to a definition             - $ref: "#/definitionsparameters/SessionsResponsesessionId"
        #- responsesname: maytimestamp
fall through to errors       type: integer
default:           descriptionin: Errorquery
          schemarequired: false
          description: timestamp of last $ref: "#/definitions/ErrorResponse"
  /auth:
request to only send new items
   # binds a127 appresponses:
logic to a route     x-swagger-router-controller: auth
    get:# responses may fall through to errors
      description: validate user"200":
session       # used as thedescription: methodSuccess
name of the controller       tagsschema:
        - User Sessions  type: object
   operationId:  auth_get       parametersproperties:
          -    $refstatus:
"#/parameters/optionalSessionId"       responses:         #type: responsesstring
may fall through to errors         "200":   default: "ok"
      description: Success       results:
   schema:             type: object
                properties:
              status:    timestamp:
            type: string       type: integer
        default: "ok"            401description: time of response
       description: Authorization information is missing or invalid.   /users:  commmentThreads:
  # binds a127 app logic to a route     x-swagger-router-controller: users     gettype: array
     description: Returns user object       # used as the method namedescription: of""
the controller       operationId: users_get       tags:     items:
   - User Sessions       parameters:         - $reftype: "#/parameters/sessionId"object
      responses:         # responses may fall through tomarkups:
errors         "200":           descriptiontype: Successarray
          schema:             typedescription: object""
            properties:        items:
      status:                 type: stringobject
                default: "ok" status:
             results:       type: string
        type: array           default: "ok"
    items/v1/files/{fileId}/markups:
    # binds a127 app logic to a route
      typex-swagger-router-controller: objectcomments
    get:
      description: Returns markups for a file
 properties:     # used as the method name of the controller
       fnameoperationId: markups_get
      tags:
        - Commenting
    type: string parameters:
        - $ref: "#/parameters/fileId"
        -  description$ref: first name"#/parameters/sessionId"
        - name: timestamp
          surnametype: integer
          in: query
          typerequired: stringfalse
          description: timestamp of last request to only send new items
     description responses:
last name of user     # responses may fall through to errors
         "_id200":
          description: Success
          typeschema:
string            type: object
       email:     properties:
              status:
  type: string             type: string
      licenseExpirationDate:          default: "ok"
           type: integer  results:
                type: object
preferences:                properties:
      type: object           timestamp:
           properties:         type: integer
              preferences_display:      description: time of response
                  typemarkups:
object                    type: array
     properties:               description: ""
            graphicswinmodelbackgrndcolor:        items:
                      type: stringobject
                  status:
           default: White        type:  string
              view:      default: "ok"
  /v1/files/{fileId}/commentThreads:
    # binds a127 app logic to a route
    typex-swagger-router-controller: objectcomments
    get:
      description: Returns comments for a file
      # window:used as the method name of the controller
      operationId: commentThreads_get
       tags:
   type: object    - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
 variables:       - $ref: "#/parameters/sessionId"
        - name: timestamp
      type: object   type: integer
          in: query
          propertiesrequired: false
          description: timestamp of last request to only send new items
       dynasnapresponses:
        # responses may fall through to errors
        "200":
      type: string   description: Success
          schema:
            type: object
 default: "63"     put:       descriptionproperties:
Returns user object       # used as the method name ofstatus:
the controller       operationId: users_put       tagstype: string
       - User Sessions       parametersdefault: "ok"
       - $ref: "#/parameters/sessionId"     results:
   - name: body           intype: bodyobject
          required: true     properties:
     schema:             propertiestimestamp:
              preferences:      type: integer
         type: object                 descriptiondescription: usertime preferencesof response
               properties:                   windowcommmentThreads:
                    type: objectarray
                    propertiesdescription: ""
                     edititems:
 
                      type: object
                        propertiesstatus:
                          dockwidgetstype: string
                    default: "ok"
     type/v1/files/{fileId}/commentThread:
object    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    post:
      propertiesdescription: Add a new commentThread for a file
      # used as the method name of the controller
        layerwindowoperationId: commentThread_post
      tags:
        - Commenting
              typeparameters:
object        -                         properties:
                                  h:
                                    type: string
                                    description: height o the layerwindow

      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
  /v1/files/{fileId}/annotations:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    get:
      description: Returns annotations for a file
      # used as the method name of the controller
      operationId: annotations_get
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - name: timestamp
          type: integer
          in: query
          required: false
          description: timestamp of last request to only send new items
      responses:
        # responses may fall through to errors
        "200":
          description: Success$ref: "#/parameters/fileId"
        -  schema:$ref: "#/parameters/sessionId"
        - name: body
 type: object        in: body
   properties:       required: true
      status:    schema:
            type: stringobject
                defaultproperties:
"ok"               resultstitle:
                type: objectstring
                propertiestext:
                  timestamptype: string
              state:
    type: integer           type: string
        description: time of response     enum: [ACTIVE, RESOLVED]
           commmentThreads:    ids:
                type: array
                    descriptionitems:
""                     itemstype: string
      responses:
        # responses may fall through to type:errors
object        "200":
          markupsdescription: Success
          schema:
        type: array   type: object
                descriptionproperties:
""              status:
      items:          type: string
           type: object    default: "ok"
             status:    timestamp:
                type: stringinteger
                description: time of response
default: "ok"   /v1/files/{fileId}/commentThread/markups{threadId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    getput:
      description: ReturnsUpdate markups for a filecommentThread
      # used as the method name of the controller
      operationId: markupscommentThread_getput
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - name$ref: timestamp"#/parameters/threadId"
        -  typename: integerbody
          in: querybody
          required: falsetrue
          descriptionschema:
timestamp   of last request to only send new items  type: object
   responses:         #properties:
responses may fall through to errors         "200"title:
          description: Success      type: string
              schematext:
                type: objectstring
              propertiesids:
              status  type: array
                typeitems:
string                  defaulttype: "ok"string
      responses:
       results: # responses may fall through to errors
         type"200":
object          description:  Success
    properties:      schema:
            timestamptype: object
            properties:
      type: integer       status:
             description: time of responsetype: string
                 markupsdefault: "ok"
              timestamp:
    type: array           type: integer
         description: ""      description: time of response
    get:
      itemsdescription: get a commentThread
      # used as the method name of the controller
    type: object operationId: commentThread_get
      tags:
        - status:Commenting
      parameters:
        -     type$ref: string"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - default$ref: "ok#/parameters/threadId"
  /v1/files/{fileId}/commentThreads:    responses:
# binds a127 app logic to a route # responses may  x-swagger-router-controller: comments
    get:fall through to errors
        description"200":
Returns  comments for a file     description: Success
# used as the method name of the controller  schema:
    operationId: commentThreads_get       tagstype: object
       - Commenting    properties:
  parameters:         - $ref: "#/parameters/fileId"
 status:
       - $ref: "#/parameters/sessionId"       type: string
- name: timestamp           type: integer  default: "ok"
       in: query      timestamp:
    required: false           descriptiontype: timestampinteger
of last request to only send new items       responses:  description: time of response
   # responsesdelete:
may fall through to errors  description: Delete a comment Thread
  "200":    # used as the method name of description:the Successcontroller
      operationId: commentThread_delete
  schema:    tags:
        type:- objectCommenting
      parameters:
     properties:   - $ref: "#/parameters/fileId"
        - status:$ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
      typeresponses:
string        # responses may fall through to errors
   default: "ok"    "200":
          resultsdescription: Success
          schema:
    type: object       type: object
        properties:    properties:
              timestampstatus:
                type: string
  type: integer             default: "ok"
      description: time of response     timestamp:
             commmentThreads:   type: integer
                typedescription: arraytime of response
  /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:
    # binds a127 app logic to a route
    description: ""x-swagger-router-controller: comments
    put:
      description: Update a comment
      items:# used as the method name of the controller
      operationId: comment_put
      typetags:
object        - Commenting
         statusparameters:
        - $ref: "#/parameters/fileId"
        - type$ref: string"#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
        - default$ref: "ok#/parameters/commentId"
  /v1/files/{fileId}/commentThread:      - #name: bindsbody
a127 app logic to a route     x-swagger-router-controllerin: commentsbody
    post:       descriptionrequired: Addtrue
a new commentThread for a file     schema:
 # used as the method name of the controller   type: object
  operationId: commentThread_post       tags:  properties:
      - Commenting       parameterstext:
        -  $ref: "#/parameters/fileId"      type: string
     - $refresponses:
"#/parameters/sessionId"        # responses -may name:fall bodythrough to errors
        in"200": body
          requireddescription: trueSuccess
          schema:
            type: object
            properties:
              titlestatus:
                type: string
               text default: "ok"
              timestamp:
type: string               statetype: integer
                description: time of response
   type get:
 string     description: Retrieve a comment
      # used  enum: [ACTIVE, RESOLVED]as the method name of the controller
      operationId: comment_get
      idstags:
        - Commenting
      typeparameters:
array        - $ref: "#/parameters/fileId"
       items - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
        -  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}/commentThread/{threadId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    putdelete:
      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$ref: body"#/parameters/commentId"
          inresponses:
body        # responses may required:fall truethrough to errors
        schema"200":
            type: object
            properties:
              title:
     description: Success
          typeschema:
string               texttype: object
               typeproperties:
string               idsstatus:
                type: arraystring
                itemsdefault: "ok"
              timestamp:
  type: string       responses:      type: integer
 # responses may fall through to errors         "200"description: time of response
  /v1/files/{fileId}/commentThread/{threadId}/comment:
    description:# Successbinds a127 app logic to a route
    schemax-swagger-router-controller: comments
    post:
      typedescription: objectPost a new comment
      # used as properties:the method name of the controller
         statusoperationId: comment_post
      tags:
        type:- stringCommenting
      parameters:
        - default$ref: "ok#/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 theschema:
controller       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
    delete/v1/files/{fileId}/markup:
    # binds a127 app logic to a route
    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"
        - $ref: "#/parameters/sessionId"
        - $refname: "#/parameters/threadId" body
          responsesin: body
       # responses may fallrequired: throughtrue
to errors         "200"schema:
          description  type: Successobject
            schemaproperties:
            type  title:
object                propertiestype: string
             status text:
                type: string
              state:
          default      type: "ok"string
                timestampenum: [ACTIVE, RESOLVED]
              typeids:
integer                type: array
   description:    time of response   /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:    items:
# binds a127 app logic to a route     x-swagger-router-controller: comments     puttype: string
     description responses: Update
a comment       # usedresponses asmay thefall methodthrough nameto oferrors
the controller       operationId"200":
comment_put          tagsdescription: Success
       - Commenting  schema:
    parameters:        type: -object
 $ref: "#/parameters/fileId"         - $refproperties:
"#/parameters/sessionId"          - $ref: "#/parameters/threadId"  status:
      - $ref: "#/parameters/commentId"        type: -string
name: 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: string
 comment_get       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/commentIdmarkupId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/commentThread/{threadId}/comment:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    postdelete:
      description: Postdelete a newmarkup
comment       # 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:
        # - name: body
 responses may fall through to errors
        in"200":
body           requireddescription: trueSuccess
          schema:
            type: object
            properties:
              textstatus:
                type: string
      responses:          # responses may fall through to errorsdefault: "ok"
              "200":timestamp:
                descriptiontype: Success integer
                schemadescription: time of response
  /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:
    # binds type:a127 objectapp logic to a route
    x-swagger-router-controller: comments
   properties put:
      description: Update a comment
    status:  # used as the method name of the controller
      typeoperationId: stringmarkupcomment_put
      tags:
        - default: "ok"Commenting
      parameters:
        - timestamp$ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
    type: integer   - $ref: "#/parameters/markupId"
        -   description$ref: time of response"#/parameters/commentId"
    /v1/files/{fileId}/markup:    - #name: bindsbody
a127 app logic to a route     x-swagger-router-controllerin: commentsbody
    post:      required: description:true
 Add a new markup for a file   schema:
   # used as the method name of the controller type: object
    operationId: markup_post       tagsproperties:
        - Commenting     text:
 parameters:         - $ref: "#/parameters/fileId"     type: string
     - $refresponses:
"#/parameters/sessionId"        # responses -may name:fall bodythrough to errors
        in"200":
body           requireddescription: trueSuccess
          schema:
            type: object
            properties:
              titlestatus:
                type: string
                textdefault: "ok"
              timestamp:
                type: stringinteger
              state:  description: time of response
    get:
      typedescription: stringRetrieve a markup comment
      # used as the method name of enum: [ACTIVE, RESOLVED]the controller
      operationId: markupcomment_get
       idstags:
        - Commenting
      typeparameters:
array        - $ref: "#/parameters/fileId"
       items - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
        -   type$ref: string"#/parameters/commentId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/markup/{markupId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    putdelete:
      description: UpdateDelete a markup comment
      # used as the method name of the controller
      operationId: markupmarkupcomment_putdelete
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
        - name: body
          in: bodyfileId"
        -  required$ref: true"#/parameters/sessionId"
        -  schema:$ref: "#/parameters/markupId"
        - $ref: "#/parameters/commentId"
 type: object    responses:
        properties:# responses may fall through to errors
        title"200":
          description: Success
    type: string     schema:
         text:   type: object
            typeproperties:
string               idsstatus:
                type: arraystring
                itemsdefault: "ok"
                 typetimestamp:
string       responses:         #type: responsesinteger
may fall through to errors         "200":           description: Successtime of response
  /v1/files/{fileId}/markup/{markupId}/comment:
    # schema:binds a127 app logic to a route
    x-swagger-router-controller: comments
type: object   post:
      description: Post a properties:new markup comment
      # used as the method name status:of the controller
      operationId: markupcomment_post
      typetags:
string        - Commenting
       defaultparameters:
"ok"        - $ref: "#/parameters/fileId"
    timestamp:    - $ref: "#/parameters/sessionId"
        -  type$ref: integer"#/parameters/markupId"
        - name: body
     description: time of response     getin: body
     description: get a markup  required: true
   # used as the method name of theschema:
controller       operationId: markup_get       tagstype: object
       - Commenting       parametersproperties:
        - $ref: "#/parameters/fileId"     text:
   - $ref: "#/parameters/sessionId"           - $reftype: "#/parameters/markupId"string
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/attachment:
    deletex-swagger-router-controller: comments
    post:
      description: deleteCreate a markup attachment
      # used as the method name of the controller
      operationId: markupattachment_deletepost
      tags:
        - Commenting
      parametersconsumes:
        - $ref: "#/parameters/fileId"multipart/form-data
      parameters:
        - $ref: "#/parameters/sessionIdfileId"
        - $ref: "#/parameters/markupIdsessionId"
      responses:  - in: formData
    # responses may fall through to errors
        "200" name: attachment
         description: Success
          schema required: true
           type: objectfile
            properties:
              statusresponses:
        "200":
       type: string  description: Success
          schema:
  default: "ok"         required:
     timestamp:         - status
      type: integer       - changeId
        description: time of response properties:
 /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:     # binds a127 app logic to a route status:
   x-swagger-router-controller: comments     put:       descriptiontype: string
Update a comment       # used as the method name of the controllerdefault: "ok"
      operationId: markupcomment_put       tagschangeId:
        - Commenting       parameterstype: string
        # - $ref: "#/parameters/fileId"
responses may fall through to errors
       - $refdefault:
"#/parameters/sessionId"         - $refdescription: "#/parameters/markupId"Error
         - $refschema:
"#/parameters/commentId"         - name: body $ref: "#/definitions/ErrorResponse"
  /v1/files/{fileId}/attachments:
     in: bodyx-swagger-router-controller: comments
    get:
      requireddescription: trueRetrieve all attachments
      # used schema:as the method name of the controller
      typeoperationId: objectattachments_get
      tags:
     properties:   - Commenting
      parameters:
   text:     - $ref: "#/parameters/fileId"
        - type$ref: string"#/parameters/sessionId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
              timestamp:
                type: integer     type: integer
                description: time of response
  /v1/files/{fileId}/attachments/{attachmentId}:
    # binds a127 app logic to a route
     descriptionx-swagger-router-controller: timecomments
of response     get:
      description: Retrieve aattachment
markup comment       # used as the method name of the controller
      operationId: markupcommentattachment_get
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupIdattachmentId"
        - $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
    delete:
      description: Delete a markup comment"
        # used as the method name oftimestamp:
the controller       operationId: markupcomment_delete       tagstype: integer
        - Commenting       parametersdescription: time of response
  /swagger:
    x- $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"swagger-pipe: swagger_raw
# complex objects have schema definitions
definitions:
  SessionsResponse:
    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:
              statusmode:
                type: string
                defaultenum: "ok"
 [view, edit]
            timestampusername:
                type: integerstring
            sessionId:
   description: time of response   /v1/files/{fileId}/markup/{markupId}/comment:     #type: bindsstring
a127 app logic to a route     x-swagger-router-controller: comments userId:
   post:       description: Post a new markuptype: commentstring

  LibrariesResponse:
  # used asrequired:
the method name of the controller - status
    operationId: markupcomment_post - results
    tagsproperties:
      status:
 - Commenting       parameterstype: string
       - $refdefault: "#/parameters/fileIdok"
        - $refresults:
"#/parameters/sessionId"         - $reftype: "#/parameters/markupId"array
        - nameitems:
body           intype: bodyobject
          requiredproperties:
true            id:
 schema:             type: objectstring
            propertiesname:
              texttype: string
  BlocksResponse:
    required:
      - status
    type: string - results
    responsesproperties:
      status:
 #    responses may fall throughtype: tostring
errors        default: "200ok":
      results:
   description: Success    type: array
     schema:   items:
          type: object
            properties:
              statusid:
 
              type: string
            name:
   default:  "ok"         type: string
    timestamp:        thumbnail:
        type: integer     type: string

  ErrorResponse:
    required:
 description: time of response   /v1/files/{fileId}/attachment:- message
    x-swagger-router-controller: commentsproperties:
      postmessage:
      description: Create atype: markupstring
attachment      errrorId:
# used as the method name of the controller  type: string

  operationIdGetUserResponse:
 attachment_post   required:
   tags:   - status
    - Commenting - results
    consumesproperties:
       status:
- multipart/form-data       parameterstype: string
       - $refdefault: "#/parameters/fileIdok"
        - $refresults:
"#/parameters/sessionId"        type: -array
in: formData       items:
   name: attachment      $ref: '#/definitions/UserPreferencesObject'

  requiredUserPreferencesObject:
true    type: object
     typeproperties: file
      responsespreferences:
        "200"type: object
         descriptionproperties: Success
          schemavariables:
            requiredtype: object
            properties:
- status             polarang:
 -  changeId             propertiestype: string
               status default: "90"
               typeosmode:
string                type: default: "ok"string
                changeIddefault: "663"
               typezoomWheel: string

       # responses may fall through to errors         defaulttype: string
         description: Error      default: "0"
   schema:           lwdefault:
 $ref: "#/definitions/ErrorResponse"   /v1/files/{fileId}/attachments:     x-swagger-router-controller: comments     gettype: string
     description:   Retrieve all attachments      default: #"25"
used as the method name of the controller       operationIddynasnap:
attachments_get       tags:         -type: Commentingstring
      parameters:         - $refdefault: "#/parameters/fileId39"
        - $ref: "#/parameters/sessionId"       responsesgraphicswinmodelbackgrndcolor:
        # responses may fall through to errors  type: string
     "200":           descriptiondefault: Success"White"
           schema:   cursorMode:
         type: object      type: string
     properties:           default: "2"
  status:        preferences_display:
        type: string   type: object
            defaultproperties:
"ok"               timestampgraphicswinmodelbackgrndcolor:
                type: integerstring
                descriptiondefault: time"White"
of response   /v1/files/{fileId}/attachments/{attachmentId}:     # binds a127 app logic topropertieswindowdisplaymode:
a route     x-swagger-router-controller: comments     get:       descriptiontype: Retrieve attachment
string
     # used as the method name of the controller   default: "0"
  operationId: attachment_get       tagswindow:
        - Commenting   type: object
  parameters:         - $refproperties:
"#/parameters/fileId"         - $ref: "#/parameters/sessionId"         - $refedit: "#/parameters/attachmentId"
      responses:         # responsestype: mayobject
fall through to errors         "200":    properties:
      description: Success           schemadockwidgets:
            type:  object      type: object
     properties:               statusproperties:
                type: string     layerwindow:
           default: "ok"            type: object
 timestamp:                 type: integer     properties:
           description: time of response   /swagger:     x-swagger-pipe: swagger_raw # complex objectsvisible:
have schema definitions definitions:   SessionsResponse:     required:       - status       - results type: string
  properties:       status:         type: string         default: "ok1"
       results:         type: array         itemsiscollapsed:
          type: object           properties:      type: string
     mode:               type: string       default: "false"
      enum: [view, edit]             username:       description: true/false if the layer panel is collapsed type:or stringnot
            sessionId:               typeh:
string             userId:               type: string
   LibrariesResponse:     required:       - status       - results    description: properties:height of the layerwindow
   status:         type: string         defaultpropertywindow:
 "ok"       results:         type: array      type: object
 items:           type: object           properties:
            id:               typevisible:
string             name:               type: string
  BlocksResponse:     required:       - status       - results     propertiesdefault: "1"
     status:
        type: string         default: "ok"   iscollapsed:
   results:         type: array         items:      type: string
   type: object           properties:             iddefault: "false"
              type: string             namedescription: true/false if the properties panel is collapsed or not
     type: string             thumbnail:       h:
       type: string    ErrorResponse:     required:       - message     propertiestype: string
     message:         type: string       errrorId:      description: height of type:property string
panel