swagger: '2.0'
info:
  description: ''
  version: '10.6.0'
  title: 'apiUi interface'
host: __hostname__
schemes:
  - http
  - https
basePath: /apiUi/api
paths:
  /about:
    get:
      summary: return about informaton
      description: ''
      operationId: zzAbout
      produces:
        - application/json
      responses:
        '200':
          description: Success response
  /context:
    get:
      summary: Get apiUi project context from cloud.  
      description: |-
        Returns the current value for the context.  
        See [Context switching](www.apiui.org/contextswitching/) for more information.  
      operationId: zzGetContext
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/getContextRpy'
    post:
      summary: Set apiUi project context
      description: |-
        Sets a new value for the context, returning the old value.  
        See [Context switching](www.apiui.org/contextswitching/) for more information.  
      operationId: zzSetContext
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/setContextReq'
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/setContextRpy'
  /envvars:
    get:
      summary: Get apiUi environment variables
      description: ''
      operationId: zzGetEnvVars
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/getEnvvarsRpy'
    post:
      summary: Set apiUi environment variables
      description: ''
      operationId: zzSetEnvVars
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/setEnvvarsReq'
      responses:
        '200':
          description: Success response
  /logs:
    delete:
      summary: removes list of logitems from apiUi
      description: ''
      operationId: zzClearLogs
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
  /logs/fetchfromremoteserver:
    post:
      summary: fetches list of logitems from apiUi in the cloud
      description: ''
      operationId: zzFetchLogsFromRemoteServer
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: initclientlog
          in: query
          type: boolean
          description: |-
            Default `false`  
            When `true` then the fetched log lines will be cleared in the cloud instance
      responses:
        '200':
          description: Success response
  /logs/snapshot:
    post:
      summary: Save current logs to a snapshot  
      description: ''
      operationId: zzTakeSnapshot
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/createSnapshotReq'
      responses:
        '200':
          description: Success response
  /notifications:
    get:
      summary: retrieves list of notifications
      operationId: zzNotifications
      produces:
        - application/json
      responses:
        '200':
          description: Success response
  /snapshot/checkregression:
    post:
      summary: Create a json Regression report 
      description: ''
      operationId: zzCheckSnapshotRegression
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/checkRegressionReq'
        - name: createsnapshot
          in: query
          type: boolean
          description: |-
            Default `false`  
            When `true` then available log lines will first be saved to the named snapshot
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/checkRegresssionRpy'
  /snapshot/checkschemacompliancy:
    post:
      summary: Create a json SchemaCompliancy report 
      description: ''
      operationId: zzCheckSnapshotSchemaCompliancy
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/checkSchemaCompliancyReq'
        - name: createsnapshot
          in: query
          type: boolean
          description: |-
            Default `false`  
            When `true` then available log lines will first be saved to the named snapshot
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/checkSchemaCompliancyRpy'
  /snapshots:
    delete:
      summary: removes entries from the list of snapshots
      description: |-
        removes entries from the list of snapshots.
        The snapshots are not removed from your filesystem.
      operationId: zzClearSnapshots
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
    get:
      summary: retrieves list of snapshots (in project folder)  
      description: |-
        retrieves list of snapshots.  
        Scans project folder for snapshots.
      operationId: zzListSnapshots
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/listOfSnapshots'
  /snapshots/testsummaryreport:
    get:
      summary: creates a test summary report over all currently available snapshots
      operationId: zzTestSummaryReport
      consumes:
        - application/json
      produces:
        - text/html
      responses:
        '200':
          description: Success response
  /executescript:
    post:
      summary: execute the named script
      description: 'The message is accepted and execution of the named script has started'
      operationId: zzExecuteScript
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/executeScriptReq'
      responses:
        '202':
          description: Success response
          schema:
            $ref: '#/definitions/executeScriptRpy'

  /operations/{operationAlias}/delay:
    get:
      summary: gets delay as set for operation
      description:
        delays are random between min and max value.
      operationId: zzGetOperationDelay
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: operationAlias
          in: path
          type: string
          required: true
          description: The aliasname for the operation
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/operationDelaySetting'
    put:
      summary: set delay to random between min and max milliseconds
      description: |-
        Set the extra time that  apiUi should wait before sending response.  
        The snapshots are not removed from your filesystem.
      operationId: zzSetOperationDelay
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: operationAlias
          in: path
          type: string
          required: true
          description: The aliasname for the operation
        - name: body
          in: body
          schema:
            $ref: '#/definitions/operationDelaySetting'
      responses:
        '200':
          description: Success response
  /project/information:
    get:
      summary: Get apiUi project information
      description: ''
      operationId: zzGetProjectInformation
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/getProjectInformationRpy'
  /refresh:
    post:
      summary: reloads project from project definition as at is on the server filesystem
      description: ''
      operationId: zzRefresh
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/refreshReq'
      responses:
        '202':
          description: Success response
          schema:
            $ref: '#/definitions/refreshRpy'
  /resetEnvVar:
    post:
      summary: resets the named environment variable
      description: ''
      operationId: zzResetEnvVar
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/resetEnvVarReq'
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/resetEnvVarRpy'
  /resetEnvVars:
    post:
      summary: Will reset all the environment variables that match the regular expression
      operationId: zzResetEnvVars
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/resetEnvVarsReq'
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/resetEnvVarsRpy'
  /setEnvVar:
    post:
      summary: sets an envirnment variable
      operationId: zzSetEnvVar
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/setEnvVarReq'
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/setEnvVarRpy'
  /shutDown:
    post:
      summary: summary
      description: ''
      operationId: zzShutDown
      consumes:
        - application/json
      produces:
        - application/json
      parameters:
        - name: body
          in: body
          description: ''
          required: true
          schema:
            $ref: '#/definitions/shutDownReq'
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/shutDownRpy'
  /swagger.yaml:
    get:
      summary: return this yaml
      description: ''
      operationId: zzSwaggerYaml
      produces:
        - application/yaml
      responses:
        '200':
          description: Success response
  /testconnection:
    get:
      summary: testconnection
      operationId: zzTestConnection
      produces:
        - application/yaml
      responses:
        '200':
          description: Success response
  /testsummaryreport:
    get:
      summary: get the testsummary in html
      operationId: zzSummaryInHtml
      produces:
        - text/html
      responses:
        '200':
          description: Success response
  /versionInfo:
    get:
      summary: get apiUi version information
      operationId: zzVersionInfo
      consumes:
        - application/json
      produces:
        - application/json
      responses:
        '200':
          description: Success response
          schema:
            $ref: '#/definitions/versionInfo'
definitions:
  checkRegressionReq:
    type: object
    properties:
      name:
        type: string
  checkRegresssionRpy:
    type: object
    properties:
      result:
        type: string
  checkSchemaCompliancyReq:
    type: object
    properties:
      name:
        type: string
  checkSchemaCompliancyRpy:
    type: object
    properties:
      result:
        type: string
      summary:
        $ref: '#/definitions/compliancyAllNumbers'
      operations:
        type: array
        items:
            $ref: '#/definitions/compliancyAllNumbers'
  compliancyAllNumbers:
        type: object
        properties:
          name:
            type: string
          total:
            $ref: '#/definitions/compliancyNumbers'
          inboundRequests:
            $ref: '#/definitions/compliancyNumbers'
          outputReplies:
            $ref: '#/definitions/compliancyNumbers'
          outboundRequests:
            $ref: '#/definitions/compliancyNumbers'
          inboundReplies:
            $ref: '#/definitions/compliancyNumbers'
  compliancyNumbers:
     type: object
     properties:
       passed:
         type: string
       failed:
         type: string
       notchecked:
         type: string
  createSnapshotReq:
    type: object
    properties:
      name:
        type: string
  executeScriptReq:
    type: object
    properties:
      name:
        type: string
  executeScriptRpy:
    type: string
  getProjectInformationRpy:
    type: object
    properties:
      project:
        type: string
      operations:
        type: array
        items:
          type: object
          properties:
            name:
              type: string
            descriptionFrom:
              type: string
            direction:
              type: string
            servers:
              type: array
              items:
                type: string
            service:
              type: string
            path:
              type: string
            verb:
              type: string
            messageCandidates:
              type: integer
            correlationElements:
              type: array
              items:
                type: string
  operationDelaySetting:
    type: object
    properties:
      randomBetween:
       type: object
       properties:
         min:
          type: integer
         max:
          type: integer
  refreshReq:
    type: string
  refreshRpy:
    type: string
  regressionReportReq:
    type: object
    properties:
      referenceFileName:
        type: string
  regressionReportRpy:
    type: object
    properties:
      Header:
        type: object
        properties:
          differencesFound:
            type: boolean
          referenceLogFileName:
            type: string
          Created:
            type: string
            format: dateTime
      Body:
        type: object
        properties:
          Detail:
            type: array
            items:
              type: object
              properties:
                messageTimestamp:
                  type: string
                  format: dateTime
                Service:
                  type: string
                Operation:
                  type: string
                Message:
                  type: string
                Correlation:
                  type: string
                Type:
                  type: string
                Items:
                  type: object
                  properties:
                    Item:
                      type: array
                      items:
                        type: object
                        properties:
                          Tag:
                            type: string
                          Type:
                            type: string
                          currentValue:
                            type: string
                          referenceValue:
                            type: string
  resetEnvVarReq:
    type: object
    properties:
      name:
        type: string
  resetEnvVarRpy:
    type: string
  resetEnvVarsReq:
    type: object
    properties:
      regularExpression:
        type: string
  resetEnvVarsRpy:
    type: string
  setContextReq:
    type: object
    properties:
      name:
        type: string
  setContextRpy:
    type: object
    properties:
      previousContext:
        $ref: '#/definitions/getContextRpy'
  getContextRpy:
    type: object
    properties:
      name:
        type: string
  setEnvvarsReq:
    type: array
    items:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
  getEnvvarsRpy:
    type: array
    items:
      type: object
      properties:
        name:
          type: string
        value:
          type: string
  setEnvVarReq:
    type: object
    properties:
      name:
        type: string
      value:
        type: string
  setEnvVarRpy:
    type: string
  shutDownReq:
    type: string
  shutDownRpy:
    type: string
  unexpectedValuesReportReq:
    type: string
  unexpectedValuesReportRpy:
    type: object
    properties:
      Header:
        type: object
        properties:
          unexpectedValuesFound:
            type: boolean
          Created:
            type: string
            format: dateTime
      Body:
        type: object
        properties:
          Detail:
            type: array
            items:
              type: object
              properties:
                messageTimestamp:
                  type: string
                  format: dateTime
                Service:
                  type: string
                Operation:
                  type: string
                Message:
                  type: string
                Correlation:
                  type: string
                Type:
                  type: string
                Items:
                  type: object
                  properties:
                    Item:
                      type: array
                      items:
                        type: object
                        properties:
                          Tag:
                            type: string
                          Type:
                            type: string
                          currentValue:
                            type: string
                          referenceValue:
                            type: string
  listOfSnapshots:
    type: object
    properties:
      snapshots:
        type: array
        items:
          type: object
          properties:
            name:
              type: string
            createdOn:
              type: string
              format: dateTime
  versionInfo:
    type: object
    properties:
      version:
        type: string
