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

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

  /files/{fileId}/xref/search:
    # binds a127 app logic to a route
    x-swagger-router-controller: files
    post:
      description: XRef search
      # used as the method name of the controller
      operationId: xref_search
      tags:
        - ARES Kudo Optional
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/optionalSessionId"
        - name: body
          in: body
          required: true
          schema:
            required:
              - path
            properties:
              path:
                type: array
                description: xrefs paths to search
                items:
                  type: string
      responses:
        "200":
          description: Success
          schema:
            type: array
            items:
              type: object
              properties:
                path:
                  type: string
                files:
                  type: array
                  items:
                    type: object
                    properties:
                      "_id":
                        type: string
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/preview:
    # binds a127 app logic to a route
    x-swagger-router-controller: files
    post:
      description: Optionally handle receiving updates previews
      # used as the method name of the controller
      operationId: preview_post
      tags:
        - ARES Kudo Optional
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/optionalSessionId"
        - in: formData
          name: file
          required: true
          type: file
      responses:
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"

  /files/{fileId}/info:
    # binds a127 app logic to a route
    x-swagger-router-controller: files
    get:
      description: Returns file information
      # used as the method name of the controller
      operationId: info_get
      tags:
        - ARES Kudo Required
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/optionalSessionId"
      responses:
        "200":
          description: Success
          schema:
            required:
              - status
            type: object
            properties:
              status:
                type: string
                default: "ok"
              filename:
                type: string
              folderId:
                type: string
              owner:
                type: string
        # responses may fall through to errors
        "401":
          description: User is not autenticated
          schema:
            $ref: "#/definitions/ErrorResponse"
        "404":
          description: File is not found
          schema:
            $ref: "#/definitions/ErrorResponse"
  /files/{fileId}/session:
    # binds a127 app logic to a route
    parameters:
      - $ref: "#/parameters/fileId"
      - $ref: "#/parameters/sessionId"

    x-swagger-router-controller: files_sessions
    get:
      description: get file sessions
      # used as the method name of the controller
      operationId: session_get
      tags:
        - File Sessions
      responses:
        "200":
          description: Success
          schema:
            # a pointer to a definition
            $ref: "#/definitions/SessionsResponse"
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"
    post:
      description: Create file session. Sessions need to be either of type "view" or "edit"
      # used as the method name of the controller
      operationId: session_post
      tags:
        - File Sessions
      parameters:
        - name: body
          in: body
          required: true
          schema:
            required:
              - mode
            properties:
              mode:
                type: string
                description: Type of session requested
                enum: [view, edit]
              fileId:
                type: string
                description: fileId for the file for which the session is being requested
      responses:
        "200":
          description: Success
          schema:
            required:
              - status
              - "_id"
            properties:
              status:
                type: string
                default: "ok"
              "_id":
                type: string
        # responses may fall through to errors
        default:
          description: Error
          schema:
            $ref: "#/definitions/ErrorResponse"
    delete:
      description: delete file session
      # used as the method name of the controller
      operationId: session_delete
      parameterstags:
        - name: body File Sessions
      responses:
        in"200": body
          requireddescription: trueSuccess
          schema:
            required:# a pointer to a definition
         - mode  $ref: "#/definitions/SessionsResponse"
        # properties:responses may fall through to errors
         modedefault:
          description: Error
    type: string     schema:
            description$ref: Type of session requested"#/definitions/ErrorResponse"
  /auth:
    # binds a127 app logic to a route
    enumx-swagger-router-controller: [view,auth
edit]       tagsget:
      description: validate -user Filesession
Sessions      # responses:used as the method name of the controller
 "200":     tags:
     description: Success  - User Sessions
      schemaoperationId: auth_get
      parameters:
    # a pointer to a- definition
$ref: "#/parameters/optionalSessionId"
           $ref: "#/definitions/SessionsResponse"responses:
        # responses may fall through to errors
        default"200":
          description: ErrorSuccess
          schema:
            $reftype: "#/definitions/ErrorResponse"object
  /auth:     # binds a127 app logic toproperties:
a route     x-swagger-router-controller: auth     get:  status:
    description: validate user session       # used astype: thestring
method name of the controller       tags:     default: "ok"
  - User Sessions    401:
  operationId: auth_get       parametersdescription: Authorization information is missing or invalid.
  - $ref/users:
"#/parameters/optionalSessionId"    # binds a127 responses:app logic to a route
    # responses may fall through to errorsx-swagger-router-controller: users
    get:
      description: Get user data "200":and preferences
      # used as description:the Successmethod name of the controller
      schemaoperationId: users_get
      tags:
     type: object  - Users
      parameters:
  properties:      - $ref: "#/parameters/sessionId"
      statusresponses:
        200:
       type: string  description: Success
          schema:
  default: "ok"         401$ref: '#/definitions/GetUserResponse'
        400:
description:  Authorization information is missing or invalid.   /usersdescription: Something went wrong while #getting bindsthe a127userdata appfrom logicjson tofile.
a route     x-swagger-router-controller: users default:
   get:       description: ReturnsError
user object       # used asschema:
the method name of the controller       operationId$ref: users_get"#/definitions/ErrorResponse"
      tagsput:
      description: Update -user Userdata Sessionsand preferences
     parameters: # used as the method name of the -controller
$ref: "#/parameters/sessionId"     operationId: users_put
responses:      tags:
  # responses may fall through to errors- Users
       "200"parameters:
        -  description$ref: Success"#/parameters/sessionId"
        -  schemaname: body
           typein: objectbody
          required: true
properties:          schema:
    status:        $ref: '#/definitions/UserPreferencesObject'

      typeresponses:
string        200:
          defaultdescription: "ok"Success
          schema:
   results:         type: object
      type:  array    properties:
            items:  status:
                type: objectstring
                  propertiesdefault: "ok"
        400:
          fnamedescription: Something went wrong while saving the userdata into the json file.
           typedefault:
string          description: Error
           descriptionschema:
first name           $ref: "#/definitions/ErrorResponse"

       surname/v1/files/{fileId}/annotations:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    typeget:
string      description: Returns annotations for a file
      # used as the method description: last name of userthe controller
      operationId: annotations_get
      tags:
    "_id":    - Commenting
      parameters:
        -  type$ref: string"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - emailname: timestamp
          type: integer
         type in: stringquery
          required: false
        licenseExpirationDate:  description: timestamp of last request to only send new items
      responses:
    type: integer   # responses may fall through to errors
        "200":
  preferences:        description: Success
          schema:
  type: object         type: object
            properties:
              status:
          preferences_display:      type: string
                default: "ok"
 type: object            results:
              properties:  type: object
                properties:
        graphicswinmodelbackgrndcolor:          timestamp:
                    type: stringinteger
                    description: time of response
      default: White           commmentThreads:
             view:       type: array
                  type: object description: ""
                      windowitems:
                          type: object
                  markups:
     variables:               type: array
          type: object         description: ""
                properties:    items:
                        dynasnaptype: object
                  status:
          type: string         type: string
                    default: "63ok"
  /v1/files/{fileId}/markups:
 put:   # binds a127  description: Returns user objectapp logic to a route
    x-swagger-router-controller: comments
    get:
      description: Returns markups for a file
      # used as the method name of the controller
      operationId: usersmarkups_putget
      tags:
        - User SessionsCommenting
      parameters:
        - $ref: parameters:"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - name: bodytimestamp
          intype: bodyinteger
          requiredin: truequery
          schemarequired: false
           propertiesdescription: timestamp of last request to only send new items
     preferences responses:
        # responses may fall through to errors
 type: object      "200":
          description: Success
user preferences         schema:
       properties:     type: object
            windowproperties:
              status:
     type: object          type: string
         properties:       default: "ok"
              editresults:
                type: object
      type:    object      properties:
                  propertiestimestamp:
                    type: integer
    dockwidgets:                description: time of response
         type: object        markups:
                    propertiestype: array
                    description: ""
       layerwindow:             items:
                      type: object
                  status:
             properties:       type: string
                    default: "ok"
  /v1/files/{fileId}/commentThreads:
 h:   # binds a127 app logic to a route
    x-swagger-router-controller: comments
    get:
      description: Returns comments for a file
   type: string  # used as the method name of the controller
      operationId: commentThreads_get
      tags:
        - Commenting
 description: height o the layerwindow parameters:
      responses:  - $ref: "#/parameters/fileId"
    # responses may fall through- to errors$ref: "#/parameters/sessionId"
        "200":- name: timestamp
          descriptiontype: Successinteger
          schemain: query
           typerequired: objectfalse
          description: timestamp properties:of last request to only send new items
       statusresponses:
        # responses may fall through to errors
 type: string      "200":
          defaultdescription: "ok"Success
  /v1/files/{fileId}/annotations:     # binds a127 appschema:
logic to a route     x-swagger-router-controller: comments     gettype: object
     description: Returns annotations for a file  properties:
    # used as the method name of the controller  status:
    operationId: annotations_get       tags:    type: string
   - Commenting       parameters:     default: "ok"
  - $ref: "#/parameters/fileId"         - $refresults:
"#/parameters/sessionId"         - name: timestamp     type: object
    type: integer           inproperties:
query           required: false      timestamp:
    description: timestamp of last request to only send new items       responsestype: integer
       # responses may fall through to errors         "200"description: time of response
       description: Success          commmentThreads:
schema:             type: object      type: array
     properties:               statusdescription: ""
               type: string    items:
            default: "ok"         type: object
    results:              status:
  type: object                 propertiestype: string
                 timestamp:   default: "ok"
  /v1/files/{fileId}/commentThread:
    # binds a127 app logic to a route
 type: integer  x-swagger-router-controller: comments
    post:
      description: Add a new commentThread for description:a timefile
of response     # used as the method name of the controller
      commmentThreadsoperationId: commentThread_post
      tags:
        - Commenting
  type    parameters:
array        - $ref: "#/parameters/fileId"
        -  description$ref: "#/parameters/sessionId"
        - name: body
          itemsin: body
          required: true
         type schema:
object            type: object
     markups:       properties:
             type title:
array                type: string
   description: ""          text:
          items:      type: string
               typestate:
object                   statustype: string
                enum: [ACTIVE, RESOLVED]
type: string             ids:
       default: "ok"   /v1/files/{fileId}/markups:     #type: bindsarray
a127 app logic to a route     x-swagger-router-controller: comments     getitems:
      description: Returns markups for a file       #type: usedstring
as the method name of the controller
      operationId responses:
markups_get       tags: # responses may fall through to errors
 - Commenting      "200":
parameters:         - $refdescription: "#/parameters/fileId" Success
         - $refschema:
"#/parameters/sessionId"         - name: timestamp type: object
        type: integer   properties:
       in: query      status:
    required: false           descriptiontype: timestampstring
of last request to only send new items       responses:  default: "ok"
     # responses may fall through to errors   timestamp:
     "200":           descriptiontype: Successinteger
          schema:      description: time of response
   type/v1/files/{fileId}/commentThread/{threadId}:
object    # binds a127 app logic to a route
 properties:   x-swagger-router-controller: comments
    put:
     status description: Update a commentThread
      # used as the method name of type:the stringcontroller
      operationId: commentThread_put
      tags:
 default: "ok"       - Commenting
      resultsparameters:
        - $ref: "#/parameters/fileId"
     type: object  - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
 properties:       - name: body
         timestamp in: body
          required: true
       type: integer  schema:
            type: object
     description: time of response    properties:
              markupstitle:

                   type: arraystring
              text:
     description: ""          type: string
         items:     ids:
                 type: objectarray
                  statusitems:
 
                  type: string
      responses:
        # responses may fall through default: "ok"to errors
  /v1/files/{fileId}/commentThreads:     # binds"200":
a127 app logic to a route     x-swagger-router-controllerdescription: commentsSuccess
    get:       descriptionschema:
Returns comments for a file       # usedtype: asobject
the method name of the controller       operationIdproperties: commentThreads_get
      tags:        status:
- Commenting       parameters:         - $reftype: "#/parameters/fileId"string
        - $ref: "#/parameters/sessionId"      default: "ok"
 - name: timestamp           typetimestamp:
integer
          in: query     type: integer
    required: false           description: timestamptime of lastresponse
request to only send newget:
items       responsesdescription: get a commentThread
      # responsesused mayas fallthe throughmethod toname errorsof the controller
      "200"operationId: commentThread_get
      tags:
  description: Success     -  Commenting
   schema:   parameters:
        - type$ref: object"#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
 properties:       - $ref: "#/parameters/threadId"
      statusresponses:
        # responses may fall through to errors
 type: string      "200":
          defaultdescription: "ok"Success
              resultsschema:
                type: object
            properties:
   properties:           status:
       timestamp:         type: string
          type: integer     default: "ok"
              descriptiontimestamp:
time of response              type: integer
   commmentThreads:             description: time of response
    typedelete:
array      description: Delete a comment Thread
      # used as the description:method ""name of the controller
      operationId: commentThread_delete
      tags:
  items:      - Commenting
      parameters:
        - type: object$ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        status- $ref: "#/parameters/threadId"
      responses:
        # responses may fall type:through stringto errors
        "200":
          defaultdescription: "ok"Success
  /v1/files/{fileId}/commentThread:     # binds a127 appschema:
logic to a route     x-swagger-router-controller: comments   type: object
post:       description: Add a new commentThread forproperties:
a file       # used as the method name ofstatus:
the controller       operationId: commentThread_post       tagstype: string
        - Commenting       parametersdefault: "ok"
       - $ref: "#/parameters/fileId"     timestamp:
   - $ref: "#/parameters/sessionId"             type: integer
         - name: body     description: time of response
  in: body
     /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:
    # binds a127 app logic to a route
    required: truex-swagger-router-controller: comments
    put:
      schemadescription: Update a comment
      # used as the method  type: objectname of the controller
      operationId: comment_put
      propertiestags:
        - Commenting
      titleparameters:
        - $ref: "#/parameters/fileId"
        - type: string$ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
      text  - $ref: "#/parameters/commentId"
        - name: body
    type      in: stringbody
          required: true
      state:    schema:
            type: stringobject
            properties:
            enum: [ACTIVE, RESOLVED]  text:
                type: string
      idsresponses:
        # responses may fall through to errors
 type: array      "200":
          itemsdescription: Success
          schema:
            type: string object
            responsesproperties:
              status:
  # responses may fall through to errors         "200":type: string
          description: Success     default: "ok"
    schema:          timestamp:
  type: object             propertiestype: integer
             status:   description: time of response
    get:
     type description: stringRetrieve a comment
      # used as the method name of the default:controller
"ok"      operationId: comment_get
       timestamptags:
        - Commenting
      typeparameters:
integer        - $ref: "#/parameters/fileId"
      description: time of- response
  /v1/files/{fileId}/commentThread/{threadId}:$ref: "#/parameters/sessionId"
    # binds a127 app logic- to a route$ref: "#/parameters/threadId"
     x-swagger-router-controller: comments   -  put:$ref: "#/parameters/commentId"
      descriptionresponses:
Update a commentThread       # usedresponses asmay thefall methodthrough nameto oferrors
the controller       operationId"200":
commentThread_put       tags:   description: Success
    - Commenting       parametersschema:
        - $ref: "#/parameters/fileId"  type: object
     - $ref: "#/parameters/sessionId"     properties:
   - $ref: "#/parameters/threadId"         - namestatus:
body           in: body    type: string
     required: true           schemadefault: "ok"
           type: object  timestamp:
          properties:      type: integer
       title:         description: time of response
    typedelete:
string      description: Delete a comment
     text: # used as the method name of the controller
       typeoperationId: stringcomment_delete
      tags:
       ids:      - Commenting
      parameters:
  type: 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
    get/v1/files/{fileId}/commentThread/{threadId}/comment:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    post:
      description: getPost a new commentThreadcomment
      # used as the method name of the controller
      operationId: commentThreadcomment_getpost
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadId"
      responses:  - name: body
    # responses may fall through to errorsin: body
       "200":           descriptionrequired: Successtrue
          schema:
            type: object
            properties:
              statustext:
                type: string
      responses:
        # default: "ok"
   responses may fall through to errors
          timestamp"200":
                typedescription: integerSuccess
          schema:
     description: time of response     deletetype: object
     description: Delete a comment Thread   properties:
   # used as the method name of the controller       operationIdstatus:
commentThread_delete       tags:         -type: Commentingstring
      parameters:         - $refdefault: "#/parameters/fileIdok"
        - $ref: "#/parameters/sessionId"       timestamp:
 - $ref: "#/parameters/threadId"       responses:      type: integer
 # responses may fall through to errors         "200"description: time of response
  /v1/files/{fileId}/markup:
    description:# Successbinds a127 app logic to a route
    schemax-swagger-router-controller: comments
    post:
      typedescription: objectAdd a new markup for a file
      properties:# used as the method name of the controller
      statusoperationId: markup_post
      tags:
        type:- stringCommenting
      parameters:
        - default$ref: "ok#/parameters/fileId"
              timestamp:
- $ref: "#/parameters/sessionId"
        - name: body
    type: integer     in: body
          descriptionrequired: time of response
  /v1/files/{fileId}/commentThread/{threadId}/comment/{commentId}:true
     # binds a127 app logic toschema:
a route     x-swagger-router-controller: comments     puttype:   object
   description: Update a comment       # used asproperties:
the method name of the controller       operationId: comment_put title:
     tags:         - Commenting type: string
    parameters:         - $reftext:
"#/parameters/fileId"         - $ref: "#/parameters/sessionId"     type: string
  - $ref: "#/parameters/threadId"         - $refstate:
"#/parameters/commentId"         - name: body     type: string
    in: body           requiredenum: true[ACTIVE, RESOLVED]
         schema:     ids:
       type: object        type: array
   properties:             items:
 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
               type: integer   description: time of response
  /v1/files/{fileId}/markup/{markupId}:
    # binds a127 app logic to a route
     descriptionx-swagger-router-controller: timecomments
of response     getput:
      description: RetrieveUpdate a commentmarkup
      # used as the method name of the controller
      operationId: commentmarkup_getput
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/threadIdmarkupId"
        - $ref: "#/parameters/commentId" name: body
          in: body
          required: true
          schema:
            responsestype: object
        # responses may fall through to errors    properties:
              "200"title:
          description: Success      type: string
              schematext:
                type: objectstring
              propertiesids:
                statustype: array
               type items:
string                  defaulttype: "ok"string
      responses:
       timestamp: # responses may fall through to errors
         type"200":
integer          description: Success
     description: time of response  schema:
  delete:       description: Delete a commenttype: object
     # used as the method name of theproperties:
controller       operationId: comment_delete       tagsstatus:
        - Commenting       parameterstype: string
       - $ref: "#/parameters/fileId"         - $refdefault: "#/parameters/sessionIdok"
        -  $ref: "#/parameters/threadId"   timestamp:
     - $ref: "#/parameters/commentId"       responses:  type: integer
     # responses may fall through to errors     description: time of response
"200":    get:
      description: Successget a markup
      # used schema:as the method name of the controller
      typeoperationId: objectmarkup_get
      tags:
     properties:   - Commenting
      parameters:
   status:     - $ref: "#/parameters/fileId"
        - type$ref: string"#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
     default responses:
"ok"        # responses may fall through to errors
timestamp:        "200":
        type: integer description: Success
          schema:
   description: time of response   /v1/files/{fileId}/commentThread/{threadId}/comment:   type: object
# binds a127 app logic to a route     x-swagger-router-controllerproperties:
comments     post:       description: Post astatus:
new comment       # used as the method name of the controller  type: string
   operationId: comment_post       tags:     default: "ok"
  - Commenting       parameters:    timestamp:
    - $ref: "#/parameters/fileId"         - $reftype: "#/parameters/sessionId"integer
        - $ref: "#/parameters/threadId"      description: time of -response
name: body   delete:
      description: in:delete bodya markup
      # used as required:the truemethod name of the controller
      schemaoperationId: markup_delete
      tags:
    type: object   - Commenting
        propertiesparameters:
        - $ref: "#/parameters/fileId"
   text:     - $ref: "#/parameters/sessionId"
        - type$ref: string"#/parameters/markupId"
      responses:
        # responses may fall through to errors
        "200":
          description: Success
          schema:
            type: object
            properties:
              status:
                type: string
                default: "ok"
              timestamp:
                type: integer
                description: time of response
  /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:
    # binds a127 app logic to a route
    x-swagger-router-controller: comments
    postput:
      description: Add a new markupdescription: forUpdate a filecomment
      # used as the method name of the controller
      operationId: markupmarkupcomment_postput
      tags:
        - Commenting
      parameters:
        - $ref: "#/parameters/fileId"
        - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
        - $ref: "#/parameters/commentId"
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              titletext:
                type: string
      responses:
        # responses may fall through   text:to errors
        "200":
          description: Success
          schema:
            type: string object
            properties:
              statestatus:
                type: string
                default: "ok"
               enumtimestamp:
[ACTIVE, RESOLVED]               idstype: integer
               type description: arraytime of response
    get:
         itemsdescription: Retrieve a markup comment
      # used as the method name of the type:controller
string       responses:operationId: markupcomment_get
      tags:
 # responses may fall through to errors - Commenting
      "200"parameters:
        -  description$ref: Success"#/parameters/fileId"
        -  schema$ref: "#/parameters/sessionId"
        - $ref:  type: object"#/parameters/markupId"
        - $ref: "#/parameters/commentId"
   properties:   responses:
        # responses may status:fall through to errors
        "200":
    type: string     description: Success
          defaultschema:
"ok"               timestamptype: object
            properties:
  type: integer           status:
     description: time of response   /v1/files/{fileId}/markup/{markupId}:     #type: bindsstring
a127 app logic to a route     x-swagger-router-controller: comments     putdefault: "ok"
     description:  Update a markup     timestamp:
 # used as the method name of the controller       operationIdtype: integer
markup_put       tags:         -description: Commentingtime of response
    parametersdelete:
      description: Delete - $ref: "#/parameters/fileId"a markup comment
      # used as -the $ref: "#/parameters/sessionId"
  method name of the controller
     - $refoperationId: "#/parameters/markupId"markupcomment_delete
      tags:
 - name: body     - Commenting
    in: body parameters:
        - required$ref: true
 "#/parameters/fileId"
        - schema$ref: "#/parameters/sessionId"
        -   type$ref: object"#/parameters/markupId"
        - $ref: "#/parameters/commentId"
 properties:     responses:
        # title:responses may fall through to errors
        "200":
  type: string       description: Success
      text:    schema:
            type: stringobject
              idsproperties:
                typestatus:
array                 itemstype: string
                 type: stringdefault: "ok"
       responses:       timestamp:
 # responses may fall through to errors         "200"type: integer
         description: Success           schemadescription: time of response
  /v1/files/{fileId}/markup/{markupId}/comment:
    # binds type:a127 objectapp logic     to a route
    propertiesx-swagger-router-controller: comments
    post:
        statusdescription: Post a new markup comment
      # used as the method type:name stringof the controller
      operationId: markupcomment_post
      defaulttags:
"ok"        - Commenting
      timestampparameters:
        - $ref: "#/parameters/fileId"
     type: integer  - $ref: "#/parameters/sessionId"
        - $ref: "#/parameters/markupId"
 description: time of response    - getname: body
     description: get a markup  in: body
   # used as the method name of therequired: controllertrue
      operationId: markup_get   schema:
   tags:         -type: Commentingobject
      parameters:      properties:
  - $ref: "#/parameters/fileId"         - $reftext:
"#/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:
   delete x-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
            propertiesresponses:
              status:
 "200":
          description: Success
  type: string       schema:
         default: "ok"  required:
            timestamp:  - status
             type: integer- changeId
            properties:
  description: time of response   /v1/files/{fileId}/markup/{markupId}/comment/{commentId}:     # bindsstatus:
a127 app logic to a route     x-swagger-router-controller: comments     puttype: string
     description: Update a comment       # used as the method name of the controllerdefault: "ok"
            operationId: markupcomment_put changeId:
     tags:         - Commenting type: string
    parameters:    # responses may fall through -to $ref: "#/parameters/fileId"errors
         - $refdefault:
"#/parameters/sessionId"         - $refdescription: "#/parameters/markupId"Error
         - $refschema:
"#/parameters/commentId"         - name: body $ref: "#/definitions/ErrorResponse"
  /v1/files/{fileId}/attachments:
     inx-swagger-router-controller: bodycomments
    get:
     required description: 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 a markupattachment
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]
             timestamp:  username:
              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"
        - $ref: "#/parameters/sessionId"results:
        - $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-controllerproperties:
comments      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"
      results:
 -   $ref: "#/parameters/sessionId"   type: array
    - in: formData  items:
        name: attachment $ref: '#/definitions/UserPreferencesObject'

  UserPreferencesObject:
    requiredtype: trueobject
    properties:
      typepreferences:
file        responsestype: object
       "200" properties:
          descriptionvariables:
Success            schematype: object
            requiredproperties:
              - statuspolarang:
                type: string
  - changeId             propertiesdefault: "90"
             status osmode:
                type: string
                default: "ok663"
              changeIdzoomWheel:
                type: string
        # responses may fall through to errors string
         default:       default: "0"
  description: Error           schemalwdefault:
            $ref: "#/definitions/ErrorResponse"   /v1/files/{fileId}/attachmentstype: string
   x-swagger-router-controller: comments     get:       descriptiondefault: Retrieve"25"
all attachments       # used as the method name ofdynasnap:
the controller       operationId: attachments_get       tagstype: string
        - Commenting       parametersdefault: "39"
       - $ref: "#/parameters/fileId"     graphicswinmodelbackgrndcolor:
   - $ref: "#/parameters/sessionId"       responses:     type: string
  # responses may fall through to errors        default: "200White":
          description: Success   cursorMode:
       schema:
            type: objectstring
            properties:    default: "2"
         status:
   preferences_display:
             type: stringobject
                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: Retrievestring
attachment       # used as the method name of the controller default: "0"
    operationId: attachment_get       tagswindow:
        - Commenting   type: object
  parameters:         - $ref: "#/parameters/fileId"
properties:
       - $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     propertiesdescription: 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:           default: "false"
id:               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