#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

swagger: "2.0"
info:
  description: REST API for [Apache NLPCraft](https://nlpcraft.apache.org) - an open source library for adding Natural Language Interface to any applications. For Data Model APIs see [Javadoc](https://nlpcraft.apache.org/apis/latest/index.html) documentation.
  version: 0.5.0
  title: Apache NLPCraft API
host: localhost:8081
basePath: /api/v1
schemes:
  - http
consumes:
  - application/json
produces:
  - application/json
tags:
  - name: Authentication
    description: >-
      User signing in (getting access token), singing out and password reset.
  - name: Users
    description: >-
      Adding, removing and managing users.
  - name: Companies
    description: >-
      Adding, removing and managing companies.
  - name: Feedbacks
    description: >-
      Adding, removing and getting requests feedback.
  - name: Data Probe
    description: >-
      Managing data probes.
  - name: Asking
    description: >-
      Asking questions, checking results, clearing conversation and dialog context.
paths:
  /clear/conversation:
    post:
      tags:
        - Asking
      summary: Clears conversation STM.
      description: >-
        Clears conversation for given user and data model. Essentially makes NLPCraft forget
        about previously stored sentences and the next request will be processed as if at the start of the
        new conversation.
      operationId: clearConversation
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - mdlId
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              mdlId:
                type: string
                maxLength: 32
                description: Data model ID for which to clear conversation
              usrId:
                type: integer
                format: int64
                description: >-
                  User ID for which to clear conversation. Optional, caller user ID used by default.
                  Clearing conversation for other users from the same company requires administrative
                  privileges. If both user ID and external 'on-behalf-of' user ID are provided they have to
                  point to the same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' user ID for which to clear conversation. Optional, caller
                  user ID used by default. Clearing conversation for other users from the same company
                  requires administrative privileges. If both user ID and external 'on-behalf-of' user ID are
                  provided they have to point to the same NLPCraft user. Note that if only external 'on-behalf-of'
                  user ID is provided and such user doesn't yet exist in NLPCraft - it will be created with this ID.
                maxLength: 64
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /clear/dialog:
    post:
      tags:
        - Asking
      summary: Clears dialog flow.
      description: >-
        Clears dialog flow for given user and data model by forgetting all previously matched intents. It is an
        important operation for intents that use dialog flow in their matching logic.
      operationId: clearDialog
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - mdlId
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              mdlId:
                type: string
                maxLength: 32
                description: Data model ID for which to clear dialog flow
              usrId:
                type: integer
                format: int64
                description: >-
                  User ID for which to clear dialog flow. Optional, caller user ID used by default.
                  Clearing dialog flow for other users from the same company requires administrative
                  privileges. If both user ID and external 'on-behalf-of' user ID are provided they
                  have to point to the same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' user ID for which to clear dialog flow. Optional, caller
                  user ID used by default. Clearing dialog flow for other users from the same company
                  requires administrative privileges. If both user ID and external 'on-behalf-of' user
                  ID are provided they have to point to the same NLPCraft user. Note that if only external
                  'on-behalf-of' user ID is provided and such user doesn't yet exist in NLPCraft - it will
                  be created with this ID.
                maxLength: 64
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /model/sugsyn:
    post:
      tags:
        - Model
      summary: Runs model synonym suggestion tool.
      description: >-
        Runs model synonym suggestion tool that is based on BERT models and uses @NCIntentSample annotation.
        Administrative privileges required.
      operationId: inspect
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - mdlId
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              mdlId:
                type: string
                maxLength: 32
                description: ID of the model to run synonym suggestion on
              minScore:
                type: number
                format: double
                description: >-
                  Minimal score to include into the result (from 0 to 1, default is 0)
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - result
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              result:
                type: object
                description: Synonym suggestion result

        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /check:
    post:
      tags:
        - Asking
      summary: Gets status and result of submitted requests.
      description: >-
          Gets the status and result (OK or failure) of the previously submitted requests.
          Request statuses returned sorted by their registration time, starting from newest.
      operationId: check
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              usrId:
                type: integer
                format: int64
                description: >-
                  User ID for which to check the results. Optional, caller user ID used by default.
                  Checking results for other users from the same company requires administrative privileges. If
                  both user ID and external 'on-behalf-of' user ID are provided they have to point to the
                  same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' user ID for which to check the results. Optional, caller
                  user ID used by default. Checking results for other users from the same company requires
                  administrative privileges. If both user ID and external 'on-behalf-of' user ID are provided
                  they have to point to the same NLPCraft user. Note that if only external 'on-behalf-of'
                  user ID is provided and such user doesn't yet exist in NLPCraft - it will be created with this ID.
                maxLength: 64
              srvReqIds:
                type: array
                items:
                  type: string
                description: >-
                  Optional list of server request IDs to check - by default, all current user requests will be returned.
                  Note, there won't be any errors if invalid server requests IDs are provided (safely ignored instead).
              maxRows:
                type: integer
                format: int64
                description: Optional maximum number of returned items - by default all items will be returned
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - states
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              states:
                type: array
                items:
                  type: object
                  required:
                    - srvReqId
                    - txt
                    - usrId
                    - mdlId
                    - status
                    - error
                    - errorCode
                  properties:
                    srvReqId:
                      type: string
                      description: Server request ID
                    txt:
                      type: string
                      description: Original request text
                    usrId:
                      type: integer
                      format: int64
                      description: ID of the user that submitted the request
                    intentId:
                      type: string
                      description: ID of the intent
                    mdlId:
                      type: string
                      description: ID of the model
                    probeId:
                      type: string
                      description: ID of the data probe
                    status:
                      type: string
                      description: >-
                        Current status of this request (QRY_READY indicates that
                        result - error or ok - is ready)
                      enum:
                        - QRY_ENLISTED
                        - QRY_READY
                    resType:
                      type: string
                      description: >-
                        Optional result type if returned by model (provided only
                        if status is QRY_READY and processing was not rejected
                        or terminated due to an exception)
                    resBody:
                      type: object
                      description: >-
                        Optional body (string or JSON object) of the result if returned by model
                        (provided only if status is QRY_READY and processing was
                        not rejected or terminated due to an exception)
                    error:
                      type: string
                      description: >-
                        Optional error if returned by model (provided only if
                        status is QRY_READY and processing was rejected or
                        terminated due to an exception)
                    errorCode:
                      type: integer
                      format: int32
                      description: >-
                        Optional error code indicating a type of error. Only present
                        of 'error' field is present. One of the following values:
                        1 - Rejection by the data model.
                        100 - Unexpected system error.
                        101 - Model's result is too big.
                        102 - Recoverable system error.
                        10001 - Too many unknown words.
                        10002 - Sentence is too complex (too many free words).
                        10003 - Too many suspicious or unrelated words.
                        10004 - Swear words found and are not allowed.
                        10005 - Sentence contains no nouns.
                        10006 - Only latin charset is supported.
                        10007 - Only english language is supported.
                        10008 - Sentence seems unrelated to data model.
                        10009 - Sentence is too short (before processing).
                        10010 - Sentence is ambiguous.
                        10011 - Sentence is too short (after processing).
                        10012 - Sentence is too long.
                    logHolder:
                      type: object
                      description: Optional logger data holder as JSON object
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /cancel:
    post:
      tags:
        - Asking
      summary: Cancels a question.
      description: >-
        Cancels the previously submitted sentence and removes its result, if any, from the server storage.
        Must be called when query result is no longer needed (i.e. downloaded by all client apps) to release the server memory.
        Note that query results will auto-expire on server after a certain period of time. Note also that even
        when the embedded probe is used the results are still stored on the server and have to be cancelled or
        otherwise will be timed out.
      operationId: cancel
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              usrId:
                type: integer
                format: int64
                description: >-
                  ID of the user whose requests to cancel. Optional, caller user ID used by default.
                  Cancelling requests for other users from the same company requires administrative privileges. If
                  both user ID and external 'on-behalf-of' user ID are provided they have to point to the
                  same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' ID of the user whose requests to cancel. Optional, caller
                  user ID used by default. Cancelling requests for other users from the same company requires
                  administrative privileges. If both user ID and external 'on-behalf-of' user ID are provided
                  they have to point to the same NLPCraft user. Note that if only external 'on-behalf-of'
                  user ID is provided and such user doesn't yet exist in NLPCraft - it will be created with this ID.
                maxLength: 64
              srvReqIds:
                type: array
                items:
                  type: string
                description: >-
                  Server IDs of the requests to cancel. Optional, all current user requests will be cancelled by default.
                  Note, there aren't errors even if invalid server requests identifiers provided as arguments.
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /ask:
    post:
      tags:
        - Asking
      summary: Asks a question.
      description: >-
        Submits the sentence to be processed asynchronously. Use '/check' call to get status and result, and '/cancel'
        call to discard the result from the server storage without waiting for auto-expiration.
      operationId: ask
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - txt
              - mdlId
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              usrId:
                type: integer
                format: int64
                description: >-
                  ID of the user submitting the question. Optional, caller user ID used by default.
                  Submitting questions for other users from the same company requires administrative privileges. If
                  both user ID and external 'on-behalf-of' user ID are provided they have to point to the
                  same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' ID of the user submitting the question. Optional, caller
                  user ID used by default. Submitting questions for other users from the same company requires
                  administrative privileges. If both user ID and external 'on-behalf-of' user ID are provided
                  they have to point to the same NLPCraft user. Note that if only external 'on-behalf-of' user ID
                  is provided and such user doesn't yet exist in NLPCraft - it will be created with this ID.
                maxLength: 64
              txt:
                type: string
                description: Text of the question
                maxLength: 1024
              mdlId:
                type: string
                description: >-
                  Model ID.
                maxLength: 32
              data:
                type: object
                description: >-
                  Additional user-defined JSON data to be passed along with the request with maximum
                  JSON length of 512000 bytes
              enableLog:
                description: Flag to enable detailed processing log to be returned with the result
                type: boolean
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - srvReqId
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              srvReqId:
                type: string
                description: Server ID assigned to the new processing request
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /ask/sync:
    post:
      tags:
        - Asking
      summary: Asks a question in synchronous mode.
      description: >-
        Submits the sentence to be processed synchronously and returns the result immediately.
        This call will block until the result is ready or the waiting is timed out.
      operationId: askSync
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - txt
              - mdlId
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              usrId:
                type: integer
                format: int64
                description: >-
                  ID of the user submitting the question. Optional, caller user ID used by default.
                  Submitting questions for other users from the same company requires administrative privileges. If
                  both user ID and external 'on-behalf-of' user ID are provided they have to point to the
                  same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' ID of the user submitting the question. Optional, caller
                  user ID used by default. Submitting questions for other users from the same company requires
                  administrative privileges. If both user ID and external 'on-behalf-of' user ID are provided
                  they have to point to the same NLPCraft user. Note that if only external 'on-behalf-of' user ID
                  is provided and such user doesn't yet exist in NLPCraft - it will be created with this ID.
                maxLength: 64
              txt:
                type: string
                description: Text of the question
                maxLength: 1024
              mdlId:
                type: string
                description: >-
                  Model ID.
                maxLength: 32
              data:
                type: object
                description: >-
                  Additional sentence JSON data with maximum JSON length of 512000 bytes
              enableLog:
                description: Flag to enable detailed processing log to be returned with the result
                type: boolean
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - state
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              state:
                type: object
                required:
                  - srvReqId
                  - txt
                  - usrId
                  - mdlId
                  - status
                  - error
                  - errorCode
                properties:
                  srvReqId:
                    type: string
                    description: Server request ID
                  txt:
                    type: string
                    description: Original request text
                  usrId:
                    type: integer
                    format: int64
                    description: ID of the user that submitted the request
                  intentId:
                    type: string
                    description: ID of the intent
                  mdlId:
                    type: string
                    description: ID of the model
                  probeId:
                    type: string
                    description: ID of the data probe
                  status:
                    type: string
                    description: >-
                      Current status of this request (QRY_READY indicates that
                      result - error or ok - is ready)
                    enum:
                      - QRY_ENLISTED
                      - QRY_READY
                  resType:
                    type: string
                    description: >-
                      Optional result type if returned by model (provided only
                      if status is QRY_READY and processing was not rejected
                      or terminated due to an exception)
                  resBody:
                    type: object
                    description: >-
                      Optional body (string or JSON object) of the result if returned by model
                      (provided only if status is QRY_READY and processing was
                      not rejected or terminated due to an exception)
                  error:
                    type: string
                    description: >-
                      Optional error if returned by model (provided only if
                      status is QRY_READY and processing was rejected or
                      terminated due to an exception)
                  errorCode:
                    type: integer
                    format: int32
                    description: >-
                      Optional error code indicating a type of error. Only present
                      of 'error' field is present.
                  logHolder:
                    type: object
                    description: Optional logger data holder as JSON object
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/get:
    post:
      tags:
        - Users
      summary: Gets current user information.
      description: Gets current user information.
      operationId: getUser
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
              id:
                type: integer
                format: int64
                description: >-
                  ID of the user. Optional, caller user ID used by default.
                  Getting information about other users from the same company requires administrative privileges. If
                  both user ID and external 'on-behalf-of' user ID are provided they have to point to the
                  same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' ID of the user. Optional, caller
                  user ID used by default. Getting information for other users from the same company requires
                  administrative privileges. If both user ID and external 'on-behalf-of' user ID are provided
                  they have to point to the same NLPCraft user.
                maxLength: 64
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - id
              - isAdmin
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              id:
                description: User ID
                type: integer
                format: int64
              email:
                description: User email
                type: string
              usrExtId:
                description: User external 'on-behalf-of' ID
                type: string
              firstName:
                description: User first or given name
                type: string
              lastName:
                description: User last name
                type: string
              avatarUrl:
                description: User avatar URL
                type: string
              isAdmin:
                description: Whether or not user has Administrative privileges
                type: boolean
              properties:
                type: object
                description: Additional user properties
                additionalProperties:
                  type: string
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/all:
    post:
      tags:
        - Users
      summary: Gets all users.
      description: Gets all users for the current user company. Administrative privileges required.
      operationId: getAllUsers
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - users
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              users:
                type: array
                items:
                  type: object
                  required:
                    - id
                    - isAdmin
                  properties:
                    id:
                      description: User ID
                      type: integer
                      format: int64
                    email:
                      description: User email
                      type: string
                    usrExtId:
                      description: User external 'on-behalf-of' ID
                      type: string
                    firstName:
                      description: User first or given name
                      type: string
                    lastName:
                      description: User last name
                      type: string
                    avatarUrl:
                      description: User avatar URL
                      type: string
                    isAdmin:
                      description: Whether or not user has Administrative privileges
                      type: boolean
                    properties:
                      type: object
                      description: Additional user properties
                      additionalProperties:
                        type: string
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/update:
    post:
      tags:
        - Users
      summary: Updates regular user.
      description: >-
        Updates user with given ID or the current user with given parameters.
        Administrative privileges required for updating other user.
      operationId: updateUser
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - firstName
              - lastName
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              id:
                description: >-
                  Optional ID of the user to update. Only administrators can
                  provide this parameter. Current user ID is used by default.
                type: integer
                format: int64
              firstName:
                type: string
                description: User first or given name
                maxLength: 64
              lastName:
                type: string
                description: User last name
                maxLength: 64
              avatarUrl:
                type: string
                description: Optional user avatar URL
                maxLength: 512000
              properties:
                type: object
                description: Additional user properties
                additionalProperties:
                  type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/delete:
    post:
      tags:
        - Users
      summary: Deletes user.
      description: >-
        Deletes user with given ID or the current user.
        Administrative privileges required for deleting other user.
      operationId: deleteUser
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
              id:
                description: >-
                  Optional ID of the user to delete. Only administrators can
                  provide this parameter. Current user ID is used by default. If both user ID
                  and external 'on-behalf-of' user ID are provided they have to point to the same NLPCraft user.
                type: integer
                format: int64
              usrExtId:
                maxLength: 64
                description: >-
                  External 'on-behalf-of' ID of the user to delete. Optional, caller
                  user ID used by default. Administrative privileges are required to delete
                  other users from the same company. If both user ID and external 'on-behalf-of' user ID
                  are provided they have to point to the same NLPCraft user.
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/admin:
    post:
      tags:
        - Users
      summary: Updates user admin permissions.
      description: >-
        Updates user's permissions with given ID or the current user.
        Administrative privileges required for this operation.
      operationId: adminUser
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - isAdmin
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
              id:
                description: >-
                  Optional ID of the user to update - current user ID is used by default.
                type: integer
                format: int64
              isAdmin:
                description: Administrative privileges flag to update to
                type: boolean
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/passwd/reset:
    post:
      tags:
        - Users
      summary: Resets password for the user.
      description: >-
        Resets the password for the user. Note that NLPCraft doesn't store password in reversible way
        and there is no way to retrieve the current password - user can only reset the password.
      operationId: passwdReset
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - newPasswd
            properties:
              acsTok:
                maxLength: 256
                description: Previously obtained access token to release.
                type: string
              id:
                description: >-
                  Optional ID of the user to reset password. Only admins
                  can provide this parameter. Current user ID is used by default.
                type: integer
                format: int64
              newPasswd:
                type: string
                description: New user password
                maxLength: 64
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /user/add:
    post:
      tags:
        - Users
      summary: Adds new user.
      description: Adds new user with given parameters to the company of the admin caller. Administrative privileges required.
      operationId: addUser
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - email
              - passwd
              - firstName
              - lastName
              - isAdmin
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              email:
                type: string
                description: User email
                maxLength: 64
              passwd:
                type: string
                description: User password
              firstName:
                type: string
                description: User first or given name
                maxLength: 64
              lastName:
                type: string
                description: User last name
                maxLength: 64
              avatarUrl:
                type: string
                description: Optional user avatar URL
                maxLength: 512000
              isAdmin:
                type: boolean
                description: Admin flag
              properties:
                type: object
                description: Additional user properties
                additionalProperties:
                  type: string
              usrExtId:
                type: string
                description: Optional user external 'on-behalf-of' ID. If this field defined, method tries to find and update existing user.
                maxLength: 64
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - id
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              id:
                type: integer
                format: int64
                description: ID of the newly created user
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /company/get:
    post:
      tags:
        - Companies
      summary: Gets current user company information.
      description: Gets current user company information.
      operationId: getCompany
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - id
              - name
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              id:
                description: Company ID
                type: integer
                format: int64
              name:
                description: Company name
                type: string
              website:
                description: Copmany website
                type: string
              country:
                description: Company country
                type: string
              region:
                description: Company region
                type: string
              city:
                description: Company city
                type: string
              address:
                description: Company address
                type: string
              postalCode:
                description: Company postal code
                type: string
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /company/add:
    post:
      tags:
        - Companies
      summary: Adds new company.
      description: >-
        Adds new company with given parameters.
        Administrative privileges required.
      operationId: addCompany
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - name
              - adminEmail
              - adminPasswd
              - adminFirstName
              - adminLastName
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              name:
                type: string
                description: Company name
                maxLength: 64
              website:
                type: string
                description: Optional company website address
                maxLength: 256
              country:
                type: string
                description: Optional company country
                maxLength: 32
              region:
                type: string
                description: Optional company region
                maxLength: 512
              city:
                type: string
                description: Optional company city
                maxLength: 512
              address:
                type: string
                description: Optional company address
                maxLength: 512
              postalCode:
                type: string
                description: Optional company postal code
                maxLength: 512
              adminEmail:
                type: string
                description: Admin user email
                maxLength: 64
              adminPasswd:
                type: string
                description: Admin user password
              adminFirstName:
                type: string
                description: Admin user first or given name
                maxLength: 64
              adminLastName:
                type: string
                description: Admin user last name
                maxLength: 64
              adminAvatarUrl:
                type: string
                description: Optional admin user avatar URL
                maxLength: 512000
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - token
              - adminId
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              token:
                type: string
                description: Company probes authentication token
              adminId:
                type: integer
                format: int64
                description: ID of the newly created admin user
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /company/update:
    post:
      tags:
        - Companies
      summary: Updates company data.
      description: >-
        Updates company data with given parameters.
        Administrative privileges required.
      operationId: updateCompany
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - name
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
              name:
                type: string
                description: Company name
                maxLength: 64
              website:
                type: string
                description: Optional company website address
                maxLength: 256
              country:
                type: string
                description: Optional company country
                maxLength: 32
              region:
                type: string
                description: Optional company region
                maxLength: 512
              city:
                type: string
                description: Optional company city
                maxLength: 512
              address:
                type: string
                description: Optional company address
                maxLength: 512
              postalCode:
                type: string
                description: Optional company postal code
                maxLength: 512
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /company/delete:
    post:
      tags:
        - Companies
      summary: Deletes company.
      description: >-
        Deletes company.
        Administrative privileges required.
      operationId: deleteCompany
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /company/token/reset:
    post:
      tags:
        - Companies
      summary: Resets company probe authentication token.
      description: >-
        Sets and returns new company probe authentication token.
        Administrative privileges required for resetting company token.
      operationId: resetCompanyToken
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                type: string
                description: Access token obtain via '/signin' call
                maxLength: 256
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - token
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              token:
                type: string
                description: Newly reset company probes authentication token
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /feedback/add:
    post:
      tags:
        - Feedbacks
      summary: Adds feedback.
      description: Adds feedback for processed user request.
      operationId: addFeedback
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - srvReqId
              - score
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
              usrId:
                description: User ID.
                type: integer
                format: int64
              usrExtId:
                maxLength: 64
                description: External user ID. Note user with given ID will be created if missing
                type: string
              srvReqId:
                maxLength: 64
                description: Server request ID
                type: string
              score:
                description: Score. Valid range is between 0 and 1, inclusive
                type: number
                format: double
              comment:
                maxLength: 1024
                description: Optional feedback comment
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - id
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              id:
                type: integer
                format: int64
                description: ID of the newly created feedback record
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /feedback/delete:
    post:
      tags:
        - Feedbacks
      summary: Deletes feedback.
      description: >-
        Deletes feedback for given record ID.
        Administrative privileges required for deleting feedback from other users.
      operationId: deleteFeedback
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
              - id
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
              id:
                description: Feedback record ID to delete.
                type: integer
                format: int64
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /feedback/all:
    post:
      tags:
        - Feedbacks
      summary: Gets feedback.
      description:  >-
        Gets all request feedback records.
        Administrative privileges required for getting feedback from other users.
      operationId: getFeedbacks
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
              usrId:
                type: integer
                format: int64
                description: >-
                  ID of the user to get feedback records for. Optional, caller user ID used by default.
                  Getting feedback for other users requires administrative privileges. If
                  both user ID and external 'on-behalf-of' user ID are provided they have to point to the
                  same NLPCraft user.
              usrExtId:
                type: string
                description: >-
                  External 'on-behalf-of' ID of the user to get feedback records for. Optional, caller
                  user ID used by default. Getting feedback for other users from the same company requires
                  administrative privileges. If both user ID and external 'on-behalf-of' user ID are provided
                  they have to point to the same NLPCraft user. Note that if only external 'on-behalf-of'
                  user ID is provided and such user doesn't yet exist in NLPCraft - it will be created with this ID.
                maxLength: 64
              srvReqId:
                maxLength: 256
                description: Server request ID
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - feedbacks
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              feedbacks:
                type: array
                items:
                  type: object
                  required:
                    - id
                    - srvReqId
                    - usrId
                    - score
                    - createTstamp
                  properties:
                    id:
                      description: Feedback ID
                      type: integer
                      format: int64
                    srvReqId:
                      description: Server request ID
                      type: string
                    usrId:
                      description: User ID
                      type: integer
                      format: int64
                    score:
                      description: Feedback score
                      type: number
                      format: double
                    comment:
                      description: Feedback comment
                      type: string
                    createTstamp:
                      type: integer
                      format: int64
                      description: Creation UTC/GMT timestamp of the request
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /signin:
    post:
      tags:
        - Authentication
      summary: Signs in and obtains new access token.
      description: >-
        Accepts user's email and password and returns a new access token
        that should be used in all subsequent API calls. An access token can
        expire or be invalidated on the server side and this call should be used
        to obtain it again in such cases.
      operationId: signIn
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - email
              - passwd
            properties:
              email:
                maxLength: 64
                description: User sign in email.
                type: string
              passwd:
                maxLength: 64
                description: User password.
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - acsTok
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              acsTok:
                type: string
                description: >-
                  Temporary (session) access token that should be used for
                  further REST calls
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /signout:
    post:
      tags:
        - Authentication
      summary: Signs out and releases access token.
      description: >-
        Releases previously obtained access token. After this call given access
        token is no longer valid for authentication.
      operationId: signOut
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                maxLength: 256
                description: Previously obtained access token to release.
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            $ref: '#/definitions/Ok'
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
  /probe/all:
    post:
      tags:
        - Data Probes
      summary: Gets all probes.
      description: >-
        Gets metadata for all active (currently connected) probes. Administrative privileges required.
      operationId: getAllProbes
      parameters:
        - in: body
          name: Payload body
          description: JSON request.
          required: true
          schema:
            type: object
            required:
              - acsTok
            properties:
              acsTok:
                maxLength: 256
                description: Access token obtain via '/signin' call
                type: string
      responses:
        '200':
          description: Successful operation.
          schema:
            type: object
            required:
              - status
              - probes
            properties:
              status:
                type: string
                description: Status code of this operation
                enum:
                  - API_OK
              probes:
                type: array
                items:
                  type: object
                  required:
                    - probeToken
                    - probeId
                    - probeGuid
                    - probeApiVersion
                    - probeApiDate
                    - osVersion
                    - osName
                    - osArch
                    - startTstamp
                    - tmzId
                    - tmzAbbr
                    - tmzName
                    - userName
                    - javaVersion
                    - javaVendor
                    - hostName
                    - hostAddr
                    - macAddr
                    - models
                  properties:
                    probeToken:
                      description: Probe token
                      type: string
                    probeId:
                      description: Probe ID (user defined ID)
                      type: string
                    probeGuid:
                      description: Probe GUID (globally unique internal ID)
                      type: string
                    probeApiVersion:
                      description: Probe API version
                      type: string
                    probeApiDate:
                      description: Probe API date
                      type: string
                    osVersion:
                      description: OS version
                      type: string
                    osName:
                      description: OS name
                      type: string
                    osArch:
                      description: OS architecture
                      type: string
                    startTstamp:
                      description: Start time in UTC.
                      type: integer
                      format: int64
                    tmzId:
                      description: Timezone ID
                      type: string
                    tmzAbbr:
                      description: Timezone abbreviation
                      type: string
                    tmzName:
                      description: Timezone name
                      type: string
                    userName:
                      description: User name
                      type: string
                    javaVersion:
                      description: Java version
                      type: string
                    javaVendor:
                      description: Java vendor
                      type: string
                    hostName:
                      description: Host name
                      type: string
                    hostAddr:
                      description: Host address
                      type: string
                    macAddr:
                      description: MAC address
                      type: string
                    models:
                      description: Models
                      type: array
                      items:
                        type: object
                        required:
                          - id
                          - name
                          - version
                        properties:
                          id:
                            description: Model ID (unique, immutable ID)
                            type: string
                          name:
                            description: Model name (descriptive name of this model)
                            type: string
                          version:
                            description: Model version
                            type: string
                          enabledBuiltInTokens:
                            description: Built-in tokens enabled (requested) for this data model
                            type: array
                            items:
                              type: string
        '400':
          description: Failed operation.
          schema:
            $ref: '#/definitions/Error'
definitions:
  Ok:
    type: object
    required:
      - status
    properties:
      status:
        type: string
        description: Status code of this operation
        enum:
          - API_OK
  Error:
    type: object
    required:
      - status
    properties:
      status:
        type: string
        description: Status code of this error
        enum:
          - NC_INVALID_ACCESS_TOKEN
          - NC_SIGNIN_FAILURE
          - NC_NOT_IMPLEMENTED
          - NC_INVALID_FIELD
          - NC_ADMIN_REQUIRED
          - NC_INVALID_OPERATION
          - NC_ERROR
      reason:
        type: string
        description: Reason for this error
