| # |
| # 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 <a href="https://nlpcraft.apache.org">Apache NLPCraft</a> - an open source library for |
| adding Natural Language Interface to any applications. For Data Model APIs see |
| <a href="https://nlpcraft.apache.org/apis/latest/index.html">Javadoc</a> documentation. |
| version: 0.7.4 |
| title: Apache NLPCraft API |
| host: localhost:8081 |
| basePath: /api/v1 |
| schemes: |
| - http |
| - https |
| consumes: |
| - application/json |
| produces: |
| - application/json |
| tags: |
| - name: Authentication |
| description: >- |
| Signing in, singing out and password reset. |
| - name: Asking |
| description: >- |
| Asking questions, checking results, clearing context. |
| - name: User |
| description: >- |
| Managing users. |
| - name: Company |
| description: >- |
| Managing companies. |
| - name: Feedback |
| description: >- |
| Managing feedback. |
| - name: Probe |
| description: >- |
| Managing data probes. |
| 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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' |
| /health: |
| get: |
| tags: |
| - Tools |
| summary: Health ping. |
| description: >- |
| Pings server for HTTP 200 code. |
| operationId: health |
| responses: |
| '200': |
| description: Successful operation. |
| schema: |
| $ref: '#/definitions/Ok' |
| '400': |
| description: Failed operation. |
| schema: |
| $ref: '#/definitions/Error' |
| /model/sugsyn: |
| post: |
| tags: |
| - Tools |
| 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: sugsyn |
| 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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 (<code>QRY_READY</code> indicates that |
| the result - successful or not - is ready). |
| enum: |
| - QRY_ENLISTED |
| - <code>QRY_READY</code> |
| resType: |
| type: string |
| description: >- |
| Optional result type if returned by model (provided only |
| if status is <code>QRY_READY</code> 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 <code>QRY_READY</code> 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 <code>QRY_READY</code> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> Additional user-defined JSON data to be passed along with the request with maximum |
| JSON length of 512000 bytes. |
| enableLog: |
| description: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> Additional sentence JSON data with maximum JSON length of 512000 bytes. |
| enableLog: |
| description: >- |
| <em>Optional.</em> 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 (<code>QRY_READY</code> indicates that |
| result - error or ok - is ready). |
| enum: |
| - QRY_ENLISTED |
| - <code>QRY_READY</code> |
| resType: |
| type: string |
| description: >- |
| Optional result type if returned by model (provided only |
| if status is <code>QRY_READY</code> 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 <code>QRY_READY</code> 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 <code>QRY_READY</code> 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: |
| - User |
| 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: |
| - User |
| 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 |
| - User |
| 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: |
| - User |
| 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: >- |
| <em>Optional.</em> 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: <em>Optional.</em> User avatar URL. |
| maxLength: 512000 |
| properties: |
| type: object |
| description: <em>Optional.</em> 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: |
| - User |
| 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: |
| - User |
| 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: >- |
| <em>Optional.</em> 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: |
| - User |
| 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: >- |
| <em>Optional.</em> 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: |
| - User |
| 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: <em>Optional.</em> User avatar URL. |
| maxLength: 512000 |
| isAdmin: |
| type: boolean |
| description: Admin flag. |
| properties: |
| type: object |
| description: <em>Optional.</em> Additional user properties. |
| additionalProperties: |
| type: string |
| usrExtId: |
| type: string |
| description: <em>Optional.</em> 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: |
| - Company |
| 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 |
| properties: |
| type: object |
| description: Additional company properties. |
| additionalProperties: |
| type: string |
| '400': |
| description: Failed operation. |
| schema: |
| $ref: '#/definitions/Error' |
| /company/add: |
| post: |
| tags: |
| - Company |
| 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: <em>Optional.</em> Company website address. |
| maxLength: 256 |
| country: |
| type: string |
| description: <em>Optional.</em> Company country. |
| maxLength: 32 |
| region: |
| type: string |
| description: <em>Optional.</em> Company region. |
| maxLength: 512 |
| city: |
| type: string |
| description: <em>Optional.</em> Company city. |
| maxLength: 512 |
| address: |
| type: string |
| description: <em>Optional.</em> Company address. |
| maxLength: 512 |
| postalCode: |
| type: string |
| description: <em>Optional.</em> 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: <em>Optional.</em> Admin user avatar URL. |
| maxLength: 512000 |
| properties: |
| type: object |
| description: <em>Optional.</em> Additional company properties. |
| additionalProperties: |
| type: string |
| 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: |
| - Company |
| 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: <em>Optional.</em> Company website address. |
| maxLength: 256 |
| country: |
| type: string |
| description: <em>Optional.</em> Company country. |
| maxLength: 32 |
| region: |
| type: string |
| description: <em>Optional.</em> Company region. |
| maxLength: 512 |
| city: |
| type: string |
| description: <em>Optional.</em> Company city. |
| maxLength: 512 |
| address: |
| type: string |
| description: <em>Optional.</em> Company address. |
| maxLength: 512 |
| postalCode: |
| type: string |
| description: <em>Optional.</em> Company postal code. |
| maxLength: 512 |
| properties: |
| type: object |
| description: <em>Optional.</em> Additional company properties. |
| additionalProperties: |
| type: string |
| responses: |
| '200': |
| description: Successful operation. |
| schema: |
| $ref: '#/definitions/Ok' |
| '400': |
| description: Failed operation. |
| schema: |
| $ref: '#/definitions/Error' |
| /company/delete: |
| post: |
| tags: |
| - Company |
| 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: |
| - Company |
| 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: |
| - Feedback |
| 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: <em>Optional.</em> User ID. |
| type: integer |
| format: int64 |
| usrExtId: |
| maxLength: 64 |
| description: <em>Optional.</em> 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: <em>Optional.</em> 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: |
| - Feedback |
| 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: |
| - Feedback |
| 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: >- |
| <em>Optional.</em> 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: >- |
| <em>Optional.</em> 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: <em>Optional.</em> 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: |
| - Probe |
| 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. |