openapi: 3.1.0
info:
  contact:
    email: support@radixiot.com
    name: Radix IoT
    url: https://radixiot.com/technical-support
  title: Mango REST API
  version: 5.6.5
externalDocs:
  description: Mango Automation documentation site
  url: https://docs-v5.radixiot.com/
servers:
- description: Generated server url
  url: http://localhost/rest/latest
security:
- mango-basic: []
  mango-jwt: []
tags:
- description: Creates and verifies JWT (JSON web token) authentication tokens
  name: Authentication tokens
- description: "Read or write Modbus data, or scan for nodes"
  name: Modbus Tools
- description: Get and set data point tags
  name: Data point tags
- description: Read SNMP data or perform a walk with a MIB file
  name: SNMP Tools
- description: Operations on Excel Reports
  name: Excel Reports
- description: Admin only endpoints to manage Virtual ports
  name: Virtual Serial Ports
- description: User events are all un-acknowledged events for a user
  name: User Events
- description: Utility to help with configuring the MangoES
  name: MangoES Configuration Tools
- description: Endpoints for resetting user passwords
  name: Password reset
- description: Operations on Data Source Runtime Manager
  name: Runtime Manager
- description: Ask Mango to perform a pre-defined action.  Admin Only.
  name: System Actions
- description: Utility to help with data file processing for the data file data source
  name: Data File Data Source Tools
paths:
  /access-control/activity-log:
    get:
      description: Retrieves historical events logs for all boards connected.
      operationId: query_27
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlActivityLogQueryResponse"
            text/csv:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AccessControlActivityLogModel"
          description: default response
      summary: Retrieve Historical Events Log
      tags:
      - Access Control Rest Controller
  /access-control/boards:
    get:
      operationId: query_20
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlBoardQueryResponse"
          description: default response
      summary: Query Boards Lists
      tags:
      - Access Control Rest Controller
    post:
      description: Requires global Create User privileges
      operationId: create_17
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlBoardModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlBoardModel"
          description: OK
      summary: Create a Board
      tags:
      - Access Control Rest Controller
  /access-control/boards/{xid}:
    delete:
      operationId: delete_22
      parameters:
      - description: XID of Board to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlBoardModel"
          description: OK
      summary: Delete a Board
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_21
      parameters:
      - description: XID of Access Control Board to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlBoardModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_16
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated Board
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlBoardModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlBoardModel"
          description: OK
      summary: Partially update a Board
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_23
      parameters:
      - description: XID of AccessControlBoard to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlBoardModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlBoardModel"
          description: OK
      summary: Update a Board
      tags:
      - Access Control Rest Controller
  /access-control/boards/{xid}/cards:
    get:
      operationId: getCards
      parameters:
      - description: XID of Access Control Board to get cards for
        in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalCardInfo"
          description: OK
      tags:
      - Access Control Rest Controller
  /access-control/boards/{xid}/synchronize-cards:
    post:
      operationId: synchronizeCards
      parameters:
      - description: XID of Access Control Board
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: If true card table is erased before synchronize
        in: query
        name: erase
        required: true
        schema:
          type: boolean
      responses:
        "200":
          description: OK
      tags:
      - Access Control Rest Controller
  /access-control/cards:
    get:
      operationId: query_19
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCardQueryResponse"
          description: default response
      summary: Export Cards Lists as csv
      tags:
      - Access Control Rest Controller
    post:
      description: Requires global Create User privileges
      operationId: create_16
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlCardModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCardModel"
          description: OK
      summary: Create a Card
      tags:
      - Access Control Rest Controller
  /access-control/cards/{xid}:
    delete:
      operationId: delete_21
      parameters:
      - description: XID of card to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCardModel"
          description: OK
      summary: Delete a card
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_20
      parameters:
      - description: XID of Access Control Card to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCardModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_15
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated card
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlCardModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCardModel"
          description: OK
      summary: Partially update a card
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_22
      parameters:
      - description: XID of Access Control Card to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlCardModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCardModel"
          description: OK
      summary: Update a Card
      tags:
      - Access Control Rest Controller
  /access-control/door-groups:
    get:
      operationId: query_18
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorGroupQueryResponse"
          description: default response
      summary: Query Door Groups Lists
      tags:
      - Access Control Rest Controller
    post:
      description: Requires global Create Door group privileges
      operationId: create_15
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlDoorGroupModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorGroupModel"
          description: OK
      summary: Create a Door group
      tags:
      - Access Control Rest Controller
  /access-control/door-groups/{xid}:
    delete:
      operationId: delete_20
      parameters:
      - description: XID of AccessControlDoor groups to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorGroupModel"
          description: OK
      summary: Delete a AccessControlDoorGroup
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_19
      parameters:
      - description: XID of Access Control Door group to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorGroupModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_14
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated AccessControlDoorgroup
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlDoorGroupModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorGroupModel"
          description: OK
      summary: Partially update a AccessControlDoorgroup
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_21
      parameters:
      - description: XID of AccessControlDoorgroup to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlDoorGroupModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorGroupModel"
          description: OK
      summary: Update a Mailing List
      tags:
      - Access Control Rest Controller
  /access-control/doors:
    get:
      operationId: query_17
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorQueryResponse"
          description: default response
      summary: Query Doors Lists
      tags:
      - Access Control Rest Controller
    post:
      description: Requires global Create Door privileges
      operationId: create_14
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlDoorModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorModel"
          description: OK
      summary: Create a AccessControlDoor
      tags:
      - Access Control Rest Controller
  /access-control/doors/{xid}:
    delete:
      operationId: delete_19
      parameters:
      - description: XID of AccessControlSite to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorModel"
          description: OK
      summary: Delete a AccessControlDoor
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_18
      parameters:
      - description: XID of Access Control Door to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_13
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated AccessControlDoor
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlDoorModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorModel"
          description: OK
      summary: Partially update a AccessControlDoor
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_20
      parameters:
      - description: XID of AccessControlDoor to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlDoorModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlDoorModel"
          description: OK
      summary: Update a AccessControlDoor
      tags:
      - Access Control Rest Controller
  /access-control/doors/{xid}/lock:
    post:
      description: Locks a door immediately.
      operationId: lockDoor
      parameters:
      - description: XID of Door to lock.
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Locks a Door
      tags:
      - Access Control Rest Controller
  /access-control/doors/{xid}/unlock/{duration}/{timeUnit}:
    post:
      description: Unlocks a door for the given duration. Door would automatically
        latch at the end of duration.
      operationId: unlockDoor
      parameters:
      - description: XID of Door to unlock.
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Duration to unlock the Door for.
        in: path
        name: duration
        required: true
        schema:
          type: integer
          format: int32
      - description: "Unit for duration [SECONDS, MINUTES]."
        in: path
        name: timeUnit
        required: true
        schema:
          type: string
          enum:
          - NANOSECONDS
          - MICROSECONDS
          - MILLISECONDS
          - SECONDS
          - MINUTES
          - HOURS
          - DAYS
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Unlocks a Door
      tags:
      - Access Control Rest Controller
  /access-control/sites:
    get:
      operationId: query_16
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlSiteQueryResponse"
          description: default response
      summary: Query Sites Lists
      tags:
      - Access Control Rest Controller
    post:
      description: Requires global Create Site privileges
      operationId: create_13
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlSiteModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlSiteModel"
          description: OK
      summary: Create a Site
      tags:
      - Access Control Rest Controller
  /access-control/sites/{xid}:
    delete:
      operationId: delete_18
      parameters:
      - description: XID of Site to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlSiteModel"
          description: OK
      summary: Delete a Site
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_17
      parameters:
      - description: XID of Access Control Site to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlSiteModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_12
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated Site
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlSiteModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlSiteModel"
          description: OK
      summary: Partially update a Site
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_19
      parameters:
      - description: XID of AccessControlSite to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlSiteModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlSiteModel"
          description: OK
      summary: Update a Site
      tags:
      - Access Control Rest Controller
  /access-control/users:
    get:
      operationId: query_15
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlUserQueryResponse"
          description: default response
      summary: Export all Users with doors and cards
      tags:
      - Access Control Rest Controller
    post:
      description: Requires global Create User privileges
      operationId: create_12
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlUserModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlUserModel"
          description: OK
      summary: Create a User
      tags:
      - Access Control Rest Controller
  /access-control/users/{xid}:
    delete:
      operationId: delete_17
      parameters:
      - description: XID of User to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlUserModel"
          description: OK
      summary: Delete a User
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_16
      parameters:
      - description: XID of Access Control User to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlUserModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_11
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated User
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlUserModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlUserModel"
          description: OK
      summary: Partially update a User
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_18
      parameters:
      - description: XID of AccessControlDoor to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlUserModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlUserModel"
          description: OK
      summary: Update a User
      tags:
      - Access Control Rest Controller
  /actions:
    get:
      deprecated: true
      operationId: list_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
          description: OK
      summary: List Available Actions
      tags:
      - System Actions
  /actions/cancel/{resourceId}:
    put:
      deprecated: true
      description: "No Guarantees that the cancel will work, this is task dependent."
      operationId: cancel
      parameters:
      - description: Resource id
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: No resource exists with given id
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: Error processing request
      summary: Cancel Action
      tags:
      - System Actions
  /actions/status/{resourceId}:
    get:
      deprecated: true
      description: Polls temporary resource for results.
      operationId: getStatus_6
      parameters:
      - description: Resource id
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: No resource exists with given id
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: Error processing request
      summary: Get Action Progress
      tags:
      - System Actions
  /actions/trigger/{action}:
    put:
      deprecated: true
      description: Kicks off action and returns temporary URL for status
      operationId: performAction
      parameters:
      - description: Valid System Action
        in: path
        name: action
        required: true
        schema:
          type: string
      - in: query
        name: timeout
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
      responses:
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SystemActionTemporaryResource"
          description: Internal error
      summary: Perform an Action
      tags:
      - System Actions
  /ascii-file-data-source/validate-ascii-file-exists:
    post:
      operationId: validateFileExists_1
      requestBody:
        content:
          text/plain;charset=UTF-8:
            schema:
              type: string
        required: true
      responses:
        "200":
          description: OK
      summary: Validate ASCII File is readable on Server
      tags:
      - ASCII File data sources utilities
  /ascii-file-data-source/validate-ascii/{xid}:
    post:
      operationId: validateASCIIString
      parameters:
      - description: Valid ASCII data source XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          text/plain;charset=UTF-8:
            schema:
              type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AsciiFileTestResultModel"
          description: OK
      summary: Validate ASCII
      tags:
      - ASCII File data sources utilities
  /audit:
    get:
      description: Admin access only
      operationId: queryRQL_10
      parameters:
      - in: query
        name: typeName
      - in: query
        name: alarmLevel
        schema:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
      - in: query
        name: changeType
        schema:
          type: string
          enum:
          - CREATE
          - MODIFY
          - DELETE
      - in: query
        name: objectId
      - in: query
        name: timestamp
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuditQueryResult"
          description: default response
      summary: Query Audit Events
      tags:
      - Audit System access
  /audit/list-event-types:
    get:
      description: Admin access only
      operationId: listEventTypes
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventTypeInfo"
          description: OK
      summary: List all Audit Event Types in the system
      tags:
      - Audit System access
  /auth-tokens/create:
    post:
      description: Creates an authentication token for the current user or for the
        username specified (admin only)
      operationId: createToken_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateTokenRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TokenModel"
          description: OK
      summary: Create auth token
      tags:
      - Authentication tokens
  /auth-tokens/public-key:
    get:
      operationId: getPublicKey_2
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Gets the public key for verifying authentication tokens
      tags:
      - Authentication tokens
  /auth-tokens/reset-keys:
    post:
      description: Will invalidate all authentication tokens
      operationId: resetKeys_2
      responses:
        "200":
          description: OK
      summary: Resets the public and private keys
      tags:
      - Authentication tokens
  /auth-tokens/revoke:
    post:
      description: Revokes all tokens for the current user
      operationId: revokeTokens
      responses:
        "200":
          description: OK
      summary: Revoke all tokens
      tags:
      - Authentication tokens
  /auth-tokens/revoke/{username}:
    post:
      description: Revokes all tokens for a given user
      operationId: revokeTokensForUser
      parameters:
      - in: path
        name: username
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Revoke all tokens for user
      tags:
      - Authentication tokens
  /auth-tokens/verify:
    get:
      description: "Verifies the signature, but does not verify the claims"
      operationId: verifyToken_1
      parameters:
      - description: The token to parse
        in: query
        name: token
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HeaderClaimsModel"
          description: OK
      summary: Parse and verify an authentication token
      tags:
      - Authentication tokens
  /bacnet/bulk:
    get:
      description: User can only get their own bulk BACnet operations unless they
        are an admin
      operationId: getBulkOperations_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TemporaryResourceBACnetBulkResponseAbstractRestException"
          description: OK
      summary: Get a list of current bulk BACnet operations
      tags:
      - Tools for reading/writing BACnet devices and objects
    post:
      operationId: bulkBACnetAction
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BACnetBulkRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBACnetBulkResponseAbstractRestException"
          description: OK
      summary: Perform many BACnet operations using a Local Device
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkBACnetOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBACnetBulkResponseAbstractRestException"
          description: OK
      summary: Remove a bulk BACnet operation using its id
      tags:
      - Tools for reading/writing BACnet devices and objects
    get:
      description: User can only get their own bulk BACnet operations unless they
        are an admin
      operationId: getBulkOperation_1
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBACnetBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk BACnet operation using its id
      tags:
      - Tools for reading/writing BACnet devices and objects
    post:
      description: "Only cancels if the operation is not already complete.May also\
        \ be used to remove a completed temporary resource by passing remove=true,\
        \ otherwise the resource is removed when it expires.User can only cancel their\
        \ own bulk BACnet operations unless they are an admin."
      operationId: cancelBulkOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: Remove the temporary resource
        in: query
        name: remove
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBACnetBulkResponseAbstractRestException"
          description: OK
      summary: Cancel a bulk BACnet operation using its id
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/local-devices:
    get:
      operationId: queryLocalDevices
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalLocalDeviceConfigModel"
          description: OK
      summary: Query the local devices
      tags:
      - Tools for reading/writing BACnet devices and objects
    post:
      description: User must have admin permission
      operationId: create_11
      requestBody:
        content:
          application/json:
            schema:
              description: New Local Device
              oneOf:
              - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
              - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
                - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
          description: OK
      summary: Create new local device
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/local-devices/register-foreign-device/{id}:
    post:
      description: User must have admin permission
      operationId: sendForeignDeviceRegistration
      parameters:
      - description: Valid local device ID
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ForeignDeviceRegistrationModel"
        required: true
      responses:
        "200":
          description: OK
      summary: Register an existing BACnet IP local device to a BBMD
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/local-devices/{id}:
    delete:
      operationId: delete_16
      parameters:
      - description: Valid local device ID
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
                - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
          description: OK
      summary: Delete a local device
      tags:
      - Tools for reading/writing BACnet devices and objects
    get:
      operationId: getLocalDevice
      parameters:
      - description: Valid ID
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
                - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
          description: OK
      summary: Get local device by id
      tags:
      - Tools for reading/writing BACnet devices and objects
    put:
      operationId: update_17
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              description: Updated local device
              oneOf:
              - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
              - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
                - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
          description: OK
      summary: Update an existing local device
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/object-properties/{objectType}:
    get:
      description: Object type is the BACnet4J object type formatted with a - on case
        change but this will support Mango Export Codes too
      operationId: getPossibleProperties
      parameters:
      - description: Valid Object Type
        in: path
        name: objectType
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SupportedObjectType"
          description: OK
      summary: Get the possible properties for an object id
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/object-types:
    get:
      description: Optionally include properties
      operationId: getPossibleObjectTypes
      parameters:
      - description: Include properties
        in: query
        name: includeProperties
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SupportedObjectType"
          description: OK
      summary: Get all supported object types
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/read:
    post:
      operationId: read
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BACnetReadPropertiesRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BACnetReadPropertiesResponse"
          description: OK
      summary: Read property values from a device/object
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/read-object-list:
    post:
      operationId: readObjectList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReadObjectListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReadObjectListResponse"
          description: OK
      summary: Read the list of objects from a device
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/read-property-list:
    post:
      operationId: readPropertyList
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReadPropertyListRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ReadPropertyListResponse"
          description: OK
      summary: Read the list of properties from a device/object
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/whois:
    post:
      operationId: whois
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BACnetRestWhoIsRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BACnetRestWhoIsResponse"
          description: OK
      summary: Discover devices via Who-Is
      tags:
      - Tools for reading/writing BACnet devices and objects
  /bacnet/write:
    post:
      operationId: write
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BACnetWritePropertiesRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BACnetWritePropertiesResponse"
          description: OK
      summary: Write property values to a device/object
      tags:
      - Tools for reading/writing BACnet devices and objects
  /certificate-authority-service/certificates:
    get:
      operationId: certificates_1
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-authority-service-rest-controller
  /certificate-authority-service/details:
    get:
      operationId: details
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificateAuthorityDetails"
          description: OK
      tags:
      - certificate-authority-service-rest-controller
  /certificate-authority-service/issue:
    post:
      operationId: issue
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IssueRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-authority-service-rest-controller
  /certificate-authority-service/renew:
    post:
      operationId: renew_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RenewCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-authority-service-rest-controller
  /certificate-authority-service/update:
    post:
      operationId: update_26
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-authority-service-rest-controller
  /certificate-service/certificates:
    get:
      operationId: certificates
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-service-rest-controller
  /certificate-service/csr:
    post:
      operationId: csr
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CsrResponse"
          description: OK
      tags:
      - certificate-service-rest-controller
  /certificate-service/install:
    post:
      operationId: install
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InstallCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-service-rest-controller
  /certificate-service/renew:
    post:
      operationId: renew
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RenewCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-service-rest-controller
  /certificate-service/renewal-csr:
    post:
      operationId: renewalCsr
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RenewCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CsrResponse"
          description: OK
      tags:
      - certificate-service-rest-controller
  /certificate-service/update:
    post:
      operationId: update_25
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateCertificateRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CertificatesModel"
          description: OK
      tags:
      - certificate-service-rest-controller
  /cloud-connect/client/connection-status:
    get:
      operationId: connectionStatus
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClientConnectionStatus"
          description: OK
      summary: Get the client's connection status
      tags:
      - Cloud Connect client
  /cloud-connect/client/known-hosts:
    get:
      operationId: knownHosts
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/KnownHostsEntry"
          description: OK
      summary: Retrieves the client's known hosts entries
      tags:
      - Cloud Connect client
    put:
      operationId: addKnownHost
      requestBody:
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/KnownHostsEntry"
          description: OK
      summary: Adds an entry to the known hosts
      tags:
      - Cloud Connect client
  /cloud-connect/client/known-hosts/{hostName}:
    delete:
      operationId: removeKnownHost
      parameters:
      - in: path
        name: hostName
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/KnownHostsEntry"
          description: OK
      summary: Remove an entry from the known hosts
      tags:
      - Cloud Connect client
  /cloud-connect/client/new-key-pair:
    post:
      description: Returns the newly generated public key file as an authorized_keys
        entry
      operationId: newKeyPair_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: "Generates a new key pair and saves to the disk, overwriting the old\
        \ files"
      tags:
      - Cloud Connect client
  /cloud-connect/client/public-key:
    get:
      description: "Returns the public key file from the disk, does not return the\
        \ public key file that the client is currently using."
      operationId: publicKey_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get the client's public key as an authorized_keys entry
      tags:
      - Cloud Connect client
  /cloud-connect/client/reload:
    post:
      operationId: reload_2
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Reload the client settings
      tags:
      - Cloud Connect client
  /cloud-connect/client/restart:
    post:
      operationId: restart_2
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Restart the client
      tags:
      - Cloud Connect client
  /cloud-connect/client/start:
    post:
      operationId: start_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Start the client
      tags:
      - Cloud Connect client
  /cloud-connect/client/started:
    get:
      operationId: isStarted_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Retrieve if the client is started/running
      tags:
      - Cloud Connect client
  /cloud-connect/client/stop:
    post:
      operationId: stop_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Stop the client
      tags:
      - Cloud Connect client
  /cloud-connect/proxy/reload:
    post:
      operationId: reload_1
      responses:
        "200":
          description: OK
      summary: Reload the proxy settings
      tags:
      - Cloud Connect proxy
  /cloud-connect/server/authorized-keys:
    get:
      operationId: authorizedKeys
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AuthorizedKeysEntry"
          description: OK
      summary: Retrieves the authorized keys
      tags:
      - Cloud Connect server
    put:
      operationId: addAuthorizedKeyPlain
      requestBody:
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AuthorizedKeysEntry"
          description: OK
      summary: Adds an entry to the authorized keys
      tags:
      - Cloud Connect server
  /cloud-connect/server/authorized-keys/{comment}:
    delete:
      operationId: removeAuthorizedKey
      parameters:
      - in: path
        name: comment
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/AuthorizedKeysEntry"
          description: OK
      summary: Remote an entry from the authorized keys
      tags:
      - Cloud Connect server
  /cloud-connect/server/clients:
    get:
      operationId: listClients
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ClientInfoModel"
                uniqueItems: true
          description: OK
      summary: Lists info about clients connected to the server
      tags:
      - Cloud Connect server
  /cloud-connect/server/clients/{id}:
    delete:
      operationId: removeClientSession
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: "Remove a client's SSH session, only possible if it is closed"
      tags:
      - Cloud Connect server
  /cloud-connect/server/clients/{id}/close:
    post:
      operationId: closeClientSession
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Close a client's SSH session
      tags:
      - Cloud Connect server
  /cloud-connect/server/new-key-pair:
    post:
      description: Returns the newly generated public key file as an known_hosts entry
      operationId: newKeyPair
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: "Generates a new key pair and saves to the disk, overwriting the old\
        \ files"
      tags:
      - Cloud Connect server
  /cloud-connect/server/public-key:
    get:
      description: "Returns the public key file from the disk, does not return the\
        \ public key file that the server is currently using."
      operationId: publicKey
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Returns the server's public key as a known_hosts entry
      tags:
      - Cloud Connect server
  /cloud-connect/server/reload:
    post:
      operationId: reload
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Reload the server settings
      tags:
      - Cloud Connect server
  /cloud-connect/server/restart:
    post:
      operationId: restart_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Restart the server
      tags:
      - Cloud Connect server
  /cloud-connect/server/start:
    post:
      operationId: start
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Start the server
      tags:
      - Cloud Connect server
  /cloud-connect/server/started:
    get:
      operationId: isStarted
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Get if server is started/running
      tags:
      - Cloud Connect server
  /cloud-connect/server/stop:
    post:
      operationId: stop
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                enum:
                - STOPPED
                - STARTING
                - STARTED
                - STOPPING
          description: OK
      summary: Stop the server
      tags:
      - Cloud Connect server
  /comments:
    get:
      operationId: queryRQL_7
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserCommentQueryResult"
          description: default response
      summary: Query User Comments
      tags:
      - User Comments
    post:
      operationId: createNewUserComment
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserCommentModel"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserCommentModel"
          description: Created
      summary: Create New User Comment
      tags:
      - User Comments
  /comments/{xid}:
    delete:
      operationId: deleteUserComment
      parameters:
      - description: xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserCommentModel"
          description: OK
      summary: Delete A User Comment by XID
      tags:
      - User Comments
    get:
      description: Returns the user comment specified by the given xid
      operationId: getUserComment
      parameters:
      - description: Valid xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserCommentModel"
          description: OK
      summary: Get user comment by xid
      tags:
      - User Comments
    put:
      operationId: updateUserComment
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserCommentModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserCommentModel"
          description: OK
      summary: Updates a user comment
      tags:
      - User Comments
  /data-file-data-source/compile:
    post:
      description: Requires access to compiled template and template file store
      operationId: compileTemplates
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemplatesModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompiledTemplatesModel"
          description: OK
      summary: Compile Template(s)
      tags:
      - Data File Data Source
  /data-file-data-source/compiled-templates:
    get:
      description: Requires access to compiled template file store
      operationId: listCompiledTemplates
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/CompiledTemplateModel"
          description: OK
      summary: List compiled templates
      tags:
      - Data File Data Source
  /data-file-data-source/import:
    get:
      description: User can only get their own operations unless they are an admin
      operationId: getOperations
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TemporaryResourceDataFileImportResultAbstractRestException"
          description: OK
      summary: Get a list of current Data File Imports
      tags:
      - Data File Data Source
  /data-file-data-source/import/{id}:
    get:
      description: User can only get their own operations unless they are an admin
      operationId: getOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceDataFileImportResultAbstractRestException"
          description: OK
      summary: Get the status of Data File Import using its id
      tags:
      - Data File Data Source
    post:
      description: "Only cancels if the operation is not already complete.May also\
        \ be used to remove a completed temporary resource by passing remove=true,\
        \ otherwise the resource is removed when it expires.User can only cancel their\
        \ own operations unless they are an admin."
      operationId: cancelOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      - description: Remove the temporary resource
        in: query
        name: remove
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceDataFileImportResultAbstractRestException"
          description: OK
      summary: Cancel Data File Import using its id
      tags:
      - Data File Data Source
  /data-file-data-source/import/{xid}:
    post:
      description: Must have edit permission for the data source
      operationId: uploadWithPath_1
      parameters:
      - description: Valid data source xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Resource expiry milliseconds
        in: query
        name: expiry
        required: false
        schema:
          type: integer
          format: int64
      - description: Listener timeout milliseconds
        in: query
        name: timeout
        required: false
        schema:
          type: integer
          format: int64
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceDataFileImportResultAbstractRestException"
          description: OK
      summary: 'Upload and process file(s) '
      tags:
      - Data File Data Source
  /data-file-data-source/process/{id}:
    delete:
      description: Will only remove an operation if it is complete. User can only
        remove their own operations unless they are an admin.
      operationId: removeOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceDataFileImportResultAbstractRestException"
          description: OK
      summary: Remove a Data File Import using its id
      tags:
      - Data File Data Source
  /data-file-data-source/validate-file-exists:
    post:
      operationId: validateFileExists
      requestBody:
        content:
          text/plain;charset=UTF-8:
            schema:
              type: string
        required: true
      responses:
        "200":
          description: OK
      summary: Validate File is readable on Server
      tags:
      - Data File Data Source
  /data-file/import/{resourceId}:
    get:
      description: Polls temporary resource for import results.
      operationId: getStatus_5
      parameters:
      - description: Resource id
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: No resource exists with given id
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: Error processing request
      summary: Get Import Progress
      tags:
      - Data File Data Source Tools
  /data-file/{xid}/import:
    post:
      description: Starts an import and provides a resource to poll for status.
      operationId: startImport
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: Data source not found
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataFileImportStatus"
          description: Error processing request
      summary: Import Data From File via existing data source
      tags:
      - Data File Data Source Tools
  /data-file/{xid}/template:
    post:
      operationId: uploadTemplate_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "401":
          description: Unauthorized user access
        "404":
          description: Data source not found
        "422":
          description: Message is well formed but contains invalid data
        "500":
          description: Error processing request
      summary: Upload Template
      tags:
      - Data File Data Source Tools
  /data-point-tags/bulk:
    get:
      description: User can only get their own bulk tag operations unless they are
        an admin
      operationId: getBulkDataPointTagOperations
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a list of current bulk tag operations
      tags:
      - Data point tags
    post:
      description: User must have read/edit permission for the data point
      operationId: bulkDataPointTagOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/ActionAndTags"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceTagBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/set/add data point tags for a list of XIDs for CSV
      tags:
      - Data point tags
  /data-point-tags/bulk-sync:
    post:
      description: User must have read/edit permission for the data point
      operationId: bulkDataPointTagOperationSync
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TagBulkRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TagBulkResponse"
          description: OK
      summary: Synchronously bulk get/set/add data point tags for a list of XIDs
      tags:
      - Data point tags
  /data-point-tags/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk tag operations unless they are an admin.
      operationId: removeBulkDataPointTagOperation_2
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk tag operation using its id
      tags:
      - Data point tags
    get:
      description: User can only get their own bulk tag operations unless they are
        an admin
      operationId: getBulkDataPointTagOperation_2
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceTagBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk tag operation using its id
      tags:
      - Data point tags
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own bulk operations unless they are an admin.
      operationId: updateBulkDataPointTagOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceTagBulkResponseAbstractRestException"
          description: OK
      summary: Update a bulk tag operation using its id
      tags:
      - Data point tags
  /data-point-tags/keys:
    get:
      description: Only returns tag keys which are present on data points the user
        has access to
      operationId: getTagKeys
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                uniqueItems: true
          description: OK
      summary: Gets all available tags keys
      tags:
      - Data point tags
  /data-point-tags/point/{xid}:
    get:
      description: User must have read permission for the data point
      operationId: getTagsForDataPoint
      parameters:
      - description: Data point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
          description: OK
      summary: Get data point tags by data point XID
      tags:
      - Data point tags
    post:
      description: User must have edit permission for the data points
      operationId: setTagsForDataPoint
      parameters:
      - description: Data point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
          description: OK
      summary: Set data point tags by data point XID
      tags:
      - Data point tags
    put:
      description: User must have edit permission for the data points.Adds/deletes
        a tag or replaces the tag value for each tag key. Any other existing tags
        will be kept. Set the tag value to null to delete the tag.
      operationId: mergeTagsForDataPoint
      parameters:
      - description: Data point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
          description: OK
      summary: Merge data point tags by data point XID
      tags:
      - Data point tags
  /data-point-tags/points:
    get:
      description: User must have read permission for the data points
      operationId: queryTagsForDataPoint
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
            text/csv:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      summary: Query for data point tags using RQL
      tags:
      - Data point tags
    post:
      description: Only data points that the user has edit permission for will be
        modified.Replaces all tags for all points matched by the query
      operationId: setTagsForMultiplePoints
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Set data point tags for multiple points specified by a query
      tags:
      - Data point tags
    put:
      description: Only data points that the user has edit permission for will be
        modified.Adds/deletes a tag or replaces the tag value for each tag key. Any
        other existing tags will be kept. Set the tag value to null to delete the
        tag.
      operationId: mergeTagsIntoMultiplePoints
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Merge data point tags into a multiple points specified by a query
      tags:
      - Data point tags
  /data-point-tags/values/{tagKey}:
    get:
      description: Only returns tag values which are present on data points the user
        has access to
      operationId: getTagValuesForKey
      parameters:
      - description: Tag key
        in: path
        name: tagKey
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                uniqueItems: true
          description: OK
      summary: Gets tag values for a given tag key
      tags:
      - Data point tags
  /data-points:
    get:
      description: Use RQL formatted query
      operationId: queryRQL_6
      parameters:
      - in: query
        name: id
        schema:
          type: integer
          format: int32
      - in: query
        name: xid
        schema:
          type: string
      - in: query
        name: name
        schema:
          type: string
      - in: query
        name: enabled
        schema:
          type: boolean
      - in: query
        name: deviceName
        schema:
          type: string
      - in: query
        name: rql
        schema:
          $ref: "#/components/schemas/DataPointModel"
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointQueryResponse"
            text/csv:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DataPointCSVResponse"
          description: default response
      summary: Query Data Points
      tags:
      - Data Points
    post:
      operationId: createDataPoint
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataPointModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointModel"
          description: OK
      summary: Create a new data point
      tags:
      - Data Points
  /data-points/bulk:
    get:
      description: User can only get their own bulk data point operations unless they
        are an admin
      operationId: getBulkDataPointOperations_1
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a list of current bulk data point operations
      tags:
      - Data Points
    post:
      description: User must have read/edit permission for the data point
      operationId: bulkDataPointOperation
      parameters:
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataPointBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/ActionAndModelDataPointModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/create/update/delete data points
      tags:
      - Data Points
  /data-points/bulk/extended:
    get:
      description: User can only get their own bulk data point operations unless they
        are an admin
      operationId: getBulkExtendedDataPointOperations
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a list of current bulk extended data point operations
      tags:
      - Data Points
    post:
      description: User must have read/edit permission for the data point
      operationId: bulkExtendedDataPointOperation_1
      parameters:
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExtendedDataPointBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/ExtendedDataPointModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/create/update/delete extended data points
      tags:
      - Data Points
  /data-points/bulk/extended/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkExtendedDataPointOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk data point operation using its id
      tags:
      - Data Points
    get:
      description: User can only get their own bulk data point operations unless they
        are an admin
      operationId: getBulkExtendedDataPointOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk extended data point operation using its id
      tags:
      - Data Points
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own bulk operations unless they are an admin.
      operationId: updateBulkExtendedDataPointOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Update a bulk extended data point operation using its id
      tags:
      - Data Points
  /data-points/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkDataPointTagOperation_1
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk data point operation using its id
      tags:
      - Data Points
    get:
      description: User can only get their own bulk data point operations unless they
        are an admin
      operationId: getBulkDataPointTagOperation_1
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk data point operation using its id
      tags:
      - Data Points
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own bulk operations unless they are an admin.
      operationId: updateBulkDataPointOperation_1
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Update a bulk data point operation using its id
      tags:
      - Data Points
  /data-points/by-id/{id}:
    get:
      description: Only points that user has read permission to are returned
      operationId: getDataPointById
      parameters:
      - description: Valid Data Point ID
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointModel"
          description: OK
      summary: Get data point by ID
      tags:
      - Data Points
  /data-points/enable-disable/{xid}:
    put:
      operationId: enableDisable_5
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Enable or disable the data point
        in: query
        name: enabled
        required: true
        schema:
          type: boolean
      - description: "Restart the data point, enabled must equal true"
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      responses:
        "200":
          description: OK
      summary: Enable/disable/restart a data point
      tags:
      - Data Points
  /data-points/export:
    get:
      description: User must have read permission
      operationId: exportQuery_12
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Data Points
  /data-points/export/{xids}:
    get:
      description: User must have read permission
      operationId: exportDataPoints
      parameters:
      - description: Data point xids to export.
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Export data point(s) formatted for Configuration Import
      tags:
      - Data Points
  /data-points/query:
    post:
      operationId: query_14
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
        required: true
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointQueryResponse"
            text/csv:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DataPointCSVResponse"
          description: default response
      summary: Query Data Points
      tags:
      - Data Points
  /data-points/query/extended:
    get:
      description: Adds an additional action and originalXid column
      operationId: queryCsvExtended
      responses:
        "200":
          content:
            text/csv:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: Gets a list of data points for bulk import via CSV
      tags:
      - Data Points
    post:
      description: Adds an additional action and originalXid column
      operationId: queryCsvPostExtended
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
        required: true
      responses:
        "200":
          content:
            text/csv:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: Gets a list of data points for bulk import via CSV
      tags:
      - Data Points
  /data-points/{xid}:
    delete:
      operationId: deleteDataPoint
      parameters:
      - description: Valid Data Point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointModel"
          description: OK
      summary: Delete a data point
      tags:
      - Data Points
    get:
      description: Only points that user has read permission to are returned
      operationId: getDataPoint
      parameters:
      - description: Valid Data Point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointModel"
          description: OK
      summary: Get data point by XID
      tags:
      - Data Points
    put:
      operationId: updateDataPoint
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataPointModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointModel"
          description: OK
      summary: Update an existing data point
      tags:
      - Data Points
  /data-source-event-types/{dataSourceType}:
    get:
      description: User must have data source create permission
      operationId: getAlarmLevelsForType
      parameters:
      - in: path
        name: dataSourceType
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DataSourceDefaultEventTypeModel"
          description: OK
      summary: Get Default Event Types defined for a data source
      tags:
      - Data source default event types
  /data-sources:
    get:
      description: RQL Formatted Query
      operationId: query_13
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSourceQueryResponse"
          description: default response
      summary: Query Data Sources
      tags:
      - Data source controller
    post:
      operationId: save_3
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractDataSourceModelDataSourceVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Create data source
      tags:
      - Data source controller
  /data-sources/by-id/{id}:
    get:
      operationId: getById_5
      parameters:
      - description: ID of Data Source
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Get Data Source by ID
      tags:
      - Data source controller
  /data-sources/copy/{xid}:
    put:
      description: Copy the data source and its points with optional new XID and Name.
      operationId: copy
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Copy's new XID
        in: query
        name: copyXid
        required: false
        schema:
          type: string
          default: "null"
      - description: Copy's name
        in: query
        name: copyName
        required: false
        schema:
          type: string
          default: "null"
      - description: Device name for copied points
        in: query
        name: copyDeviceName
        required: false
        schema:
          type: string
          default: "null"
      - description: Enable/disabled state of data source
        in: query
        name: enabled
        required: false
        schema:
          type: boolean
          default: false
      - description: Copy data points
        in: query
        name: copyPoints
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Copy data source
      tags:
      - Data source controller
  /data-sources/enable-disable/{xid}:
    put:
      operationId: enableDisable_4
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Enable or disable the data source
        in: query
        name: enabled
        required: true
        schema:
          type: boolean
      - description: "Restart the data source, enabled must equal true"
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      responses:
        "200":
          description: OK
      summary: Enable/disable/restart a data source
      tags:
      - Data source controller
  /data-sources/export:
    get:
      description: User must have read permission
      operationId: exportQuery_11
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Data source controller
  /data-sources/export-with-points:
    get:
      description: User must have read permission
      operationId: exportQueryWithPoints
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                $ref: "#/components/schemas/DataSourceWithPointsExport"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Data source controller
  /data-sources/export/{xid}:
    get:
      description: Optionally include data points
      operationId: exportDataSource_3
      parameters:
      - description: Valid Data Source XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Include data points
        in: query
        name: includePoints
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Export formatted for Configuration Import
      tags:
      - Data source controller
  /data-sources/force-poll/{xid}:
    put:
      description: Must have edit access and be a polling style data source
      operationId: forcePoll
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Force Poll
      tags:
      - Data source controller
  /data-sources/status/{xid}:
    get:
      description: Only polling data sources have runtime status
      operationId: getRuntimeStatus
      parameters:
      - description: Valid Data Source XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RuntimeStatusModel"
          description: OK
      summary: Get runtime status for data source
      tags:
      - Data source controller
  /data-sources/{xid}:
    delete:
      operationId: delete_15
      parameters:
      - description: XID of data source to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Delete a data source
      tags:
      - Data source controller
    get:
      operationId: get_15
      parameters:
      - description: XID of Data Source
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Get Data Source by XID
      tags:
      - Data source controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_10
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated data source
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AbstractDataSourceModelDataSourceVO"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Partially update a data source
      tags:
      - Data source controller
    put:
      operationId: update_16
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractDataSourceModelDataSourceVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractDataSourceModelObject"
          description: OK
      summary: Update data source
      tags:
      - Data source controller
  /device-names:
    get:
      operationId: deviceNames
      parameters:
      - in: query
        name: contains
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                uniqueItems: true
          description: OK
      summary: List device names
      tags:
      - Device Names
  /device-names/by-data-source-id/{id}:
    get:
      operationId: deviceNamesByDataSourceId
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      - in: query
        name: contains
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                uniqueItems: true
          description: OK
      summary: List device names by data source ID
      tags:
      - Device Names
  /device-names/by-data-source-xid/{xid}:
    get:
      operationId: deviceNamesByDataSourceXid
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: contains
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                uniqueItems: true
          description: OK
      summary: List device names by data source XID
      tags:
      - Device Names
  /egauge-data-sources/query-history/{xid}:
    post:
      operationId: queryHistory
      parameters:
      - description: Valid Egauge data source XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EgaugeQueryModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Get a count of the history between 2 dates
      tags:
      - Egauge data sources utilities
  /email-verification/create-token:
    post:
      operationId: createToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateTokenRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateTokenResponse"
          description: OK
      summary: "Creates a token for updating/verifying a user's email address, or\
        \ for registering a new user if a username is not supplied"
      tags:
      - Email verification
  /email-verification/public/public-key:
    get:
      operationId: getPublicKey_1
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Gets the public key for verifying email verification tokens
      tags:
      - Email verification
  /email-verification/public/register:
    post:
      description: The new user is created disabled and must be approved by an administrator.
      operationId: publicRegisterUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PublicRegistrationRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Registers a new user if the token's signature can be verified
      tags:
      - Email verification
  /email-verification/public/send-email:
    post:
      description: "This endpoint is for verifying new user's email addresses only,\
        \ if a user is registered with this email address already they will receive\
        \ a warning email."
      operationId: publicSendEmail
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PublicEmailVerificationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Public endpoint that sends an email containing an email verification
        link
      tags:
      - Email verification
  /email-verification/public/update-email:
    post:
      operationId: publicUpdateEmail
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateEmailRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Updates the target user's email address if the token's signature can
        be verified
      tags:
      - Email verification
  /email-verification/public/verify:
    get:
      description: "Verifies the signature, but does not verify the claims"
      operationId: publicVerifyToken
      parameters:
      - description: The token to parse
        in: query
        name: token
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HeaderClaimsModel"
          description: OK
      summary: Parse and verify an email verification token
      tags:
      - Email verification
  /email-verification/reset-keys:
    post:
      description: Will invalidate all email verification tokens
      operationId: resetKeys_1
      responses:
        "200":
          description: OK
      summary: Resets the public and private keys
      tags:
      - Email verification
  /email-verification/send-email:
    post:
      description: If the username is specified then the generated token is used to
        update that user's email address
      operationId: sendEmail_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmailVerificationRequest"
        required: true
      responses:
        "200":
          description: OK
      summary: Creates a token for verifying an email address and sends it to that
        email address
      tags:
      - Email verification
  /es-config/hostname:
    put:
      operationId: setHostname
      parameters:
      - description: hostname
        in: query
        name: hostname
        required: false
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Set the network hostname
      tags:
      - MangoES Configuration Tools
  /es-config/interface:
    post:
      operationId: setInterfaceProperties
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InterfaceSettingsVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
          description: OK
      summary: Set properties to an interface
      tags:
      - MangoES Configuration Tools
  /es-config/openvpn:
    post:
      description: For use with the infinite automation VPN services
      operationId: uploadFile
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                multipartFiles:
                  type: array
                  items:
                    type: string
                    format: binary
              required:
              - multipartFiles
      responses:
        "401":
          description: Unauthorized user access
        "500":
          description: Error processing request
      summary: Upload an OpenVPN configuration
      tags:
      - MangoES Configuration Tools
  /es-config/reboot:
    put:
      operationId: rebootServer
      responses:
        "200":
          description: OK
      summary: Reboot the server
      tags:
      - MangoES Configuration Tools
  /es-config/scan:
    get:
      operationId: startScan
      parameters:
      - description: iface
        in: query
        name: iface
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/WirelessInfoVO"
          description: OK
      summary: Scan for wireless networks
      tags:
      - MangoES Configuration Tools
  /es-config/serialNumber:
    get:
      description: Only supported in ES units after 3450
      operationId: getSerialNumber
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get the Mango's serial number
      tags:
      - MangoES Configuration Tools
  /es-config/settings:
    get:
      operationId: getSettings
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Get the current MangoES configuration module settings map
      tags:
      - MangoES Configuration Tools
  /es-config/stop:
    put:
      operationId: stopMango
      responses:
        "200":
          description: OK
      summary: Shutdown Mango
      tags:
      - MangoES Configuration Tools
  /es-config/timezone:
    put:
      operationId: setTimezone
      parameters:
      - description: timezone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Set the server timezone
      tags:
      - MangoES Configuration Tools
  /event-detectors:
    get:
      description: Adds an additional action and originalXid column
      operationId: queryRQL_5
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventDetectorQueryResponse"
          description: default response
      summary: Gets a list of event detectors for bulk import via CSV
      tags:
      - "Event Detectors, full implementation"
    post:
      description: User must have data source edit permission for source of the point
      operationId: create_10
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractEventDetectorModelAbstractEventDetectorVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorModelObject"
          description: OK
      summary: Create an Event Detector
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/bulk:
    get:
      description: User can only get their own bulk operations unless they are an
        admin
      operationId: getBulkDataPointOperations
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a list of current bulk event detector operations
      tags:
      - "Event Detectors, full implementation"
    post:
      description: User must have read permission for the data point or edit permission
        for the data source
      operationId: bulkEventDetectorOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventDetectorBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/AbstractEventDetectorModelAbstractEventDetectorVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceEventDetectorBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/create/update/delete event detectors
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkDataPointTagOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk event detector operation using its id
      tags:
      - "Event Detectors, full implementation"
    get:
      description: User can only get their own bulk operations unless they are an
        admin
      operationId: getBulkDataPointTagOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceEventDetectorBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk event detector operation using its id
      tags:
      - "Event Detectors, full implementation"
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own bulk operations unless they are an admin.
      operationId: updateBulkDataPointOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceEventDetectorBulkResponseAbstractRestException"
          description: OK
      summary: Update a bulk  event detector operation using its id
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/by-id/{id}:
    get:
      description: User must have read permission for the data point
      operationId: getById_4
      parameters:
      - description: ID of Event detector
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorModelObject"
          description: OK
      summary: Get an Event Detector by id
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/export:
    get:
      description: User must have read permission
      operationId: exportQuery_10
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/query:
    post:
      description: Adds an additional action and originalXid column
      operationId: queryCsvPost_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
        required: true
      responses:
        "200":
          content:
            text/csv:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      summary: Gets a list of event detectors for bulk import via CSV
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/query-data-point-rql:
    get:
      description: Adds an additional action and originalXid column
      operationId: queryByDataPointRQL_1
      responses:
        "200":
          content:
            text/csv:
              schema:
                $ref: "#/components/schemas/JSONStreamedArray"
          description: OK
      summary: Gets a list of event detectors for bulk import via CSV using RQL against
        data points
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/runtime/{xid}:
    get:
      description: User must have read permission for the data point
      operationId: getState_1
      parameters:
      - description: ID of Event detector
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorRTModelObject"
          description: OK
      summary: Get Event Detector's internal state
      tags:
      - "Event Detectors, full implementation"
  /event-detectors/{xid}:
    delete:
      description: "User must have data source edit permission for source of the point,\
        \ data point will restart"
      operationId: delete_14
      parameters:
      - description: XID to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorModelObject"
          description: OK
      summary: Delete an Event Detector
      tags:
      - "Event Detectors, full implementation"
    get:
      description: User must have read permission for the data point
      operationId: getByXid
      parameters:
      - description: XID of Event detector
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorModelObject"
          description: OK
      summary: Get an Event Detector by xid
      tags:
      - "Event Detectors, full implementation"
    patch:
      description: User must have data source edit permission for source of the point
      operationId: partialUpdate_9
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Event detector to patch
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AbstractEventDetectorModelAbstractEventDetectorVO"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorModelObject"
          description: OK
      summary: Partially update an Event Detector
      tags:
      - "Event Detectors, full implementation"
    put:
      description: User must have data source edit permission for source of the point
      operationId: update_15
      parameters:
      - description: XID of Event Handler to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractEventDetectorModelAbstractEventDetectorVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventDetectorModelObject"
          description: OK
      summary: Update an Event Detector
      tags:
      - "Event Detectors, full implementation"
  /event-handlers:
    get:
      operationId: query_12
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventHandlerQueryResponse"
          description: default response
      summary: Query Event Handlers
      tags:
      - Event Handlers Rest Controller
    post:
      description: Requires global Event Handler privileges
      operationId: create_9
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractEventHandlerModelAbstractEventHandlerVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventHandlerModelObject"
          description: OK
      summary: Create an Event Handler
      tags:
      - Event Handlers Rest Controller
  /event-handlers/validate:
    post:
      description: Admin Only
      operationId: validate_3
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractEventHandlerModelAbstractEventHandlerVO"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate an Event Handler without saving it
      tags:
      - Event Handlers Rest Controller
  /event-handlers/validate-email-handler-script:
    post:
      description: Admin Only
      operationId: validateEmailHandlerScript
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: Validate an email event handler script
      tags:
      - Event Handlers Rest Controller
  /event-handlers/validate-set-point-handler-script:
    post:
      description: Admin Only
      operationId: validateSetPointHandlerScript
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: Validate a set point event handler script
      tags:
      - Event Handlers Rest Controller
  /event-handlers/{xid}:
    delete:
      operationId: delete_13
      parameters:
      - description: XID of EventHandler to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventHandlerModelObject"
          description: OK
      summary: Delete an EventHandler
      tags:
      - Event Handlers Rest Controller
    get:
      operationId: get_14
      parameters:
      - description: XID to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventHandlerModelObject"
          description: OK
      summary: Get an Event Handler
      tags:
      - Event Handlers Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_8
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated maintenance event
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AbstractEventHandlerModelAbstractEventHandlerVO"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventHandlerModelObject"
          description: OK
      summary: Partially update an Event Handler
      tags:
      - Event Handlers Rest Controller
    put:
      description: Requires edit permission
      operationId: update_14
      parameters:
      - description: XID of Event Handler to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractEventHandlerModelAbstractEventHandlerVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractEventHandlerModelAbstractEventHandlerVO"
          description: OK
      summary: Update an Event Handler
      tags:
      - Event Handlers Rest Controller
  /event-types:
    get:
      description: "Not specific to any reference ids, results come back based on\
        \ type/sub-type combinations"
      operationId: queryAllEventTypes
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEventTypeVOModelObjectObjectObject"
          description: OK
      summary: Query all available event types
      tags:
      - Event Types
  /event-types/query-data-point-event-types:
    post:
      description: Return unique data points with event detectors
      operationId: queryEventTypesForDataPoints
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEventTypeVOModelObjectObjectObject"
          description: OK
      summary: Query event types for data points
      tags:
      - Event Types
  /event-types/{type}:
    get:
      description: Subtypes are set
      operationId: queryEventTypesForType
      parameters:
      - description: Event type to query over
        in: path
        name: type
        required: true
        schema:
          type: string
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEventTypeVOModelObjectObjectObject"
          description: OK
      summary: Query event types from one eventType to get all subtypes for an event
        type
      tags:
      - Event Types
  /event-types/{type}/{subtype}:
    get:
      description: "ReferenceId 1 is set, only available if the type supports referenceId1"
      operationId: queryEventTypesForTypeAndSubType
      parameters:
      - description: Event type to query over
        in: path
        name: type
        required: true
        schema:
          type: string
      - description: Event subtype to query over
        in: path
        name: subtype
        required: true
        schema:
          type: string
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEventTypeVOModelObjectObjectObject"
          description: OK
      summary: Query event types from one eventType
      tags:
      - Event Types
  /event-types/{type}/{subtype}/{referenceId1}:
    get:
      description: ReferenceId 1 and 2 are set accordingly
      operationId: queryEventTypesForTypeAndSubType_1
      parameters:
      - description: Event type to query over
        in: path
        name: type
        required: true
        schema:
          type: string
      - description: Event subtype to query over
        in: path
        name: subtype
        required: true
        schema:
          type: string
      - description: Reference ID 1 locator
        in: path
        name: referenceId1
        required: true
        schema:
          type: integer
          format: int32
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEventTypeVOModelObjectObjectObject"
          description: OK
      summary: Query event types from one eventType
      tags:
      - Event Types
  /events:
    get:
      description: Use RQL formatted query
      operationId: queryRQL_9
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventQueryResult"
          description: default response
      summary: Query Events
      tags:
      - Events endpoints
  /events/acknowledge:
    post:
      operationId: acknowledgeManyEvents
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TranslatableMessageModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Acknowledge many existing events
      tags:
      - Events endpoints
  /events/acknowledge/{id}:
    put:
      operationId: acknowledgeEvent
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TranslatableMessageModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventInstanceModel"
          description: OK
      summary: Acknowledge an existing event
      tags:
      - Events endpoints
  /events/active:
    get:
      description: List of all active events for a user
      operationId: getActive
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventInstanceModel"
          description: OK
      summary: Get the active events for a user
      tags:
      - Events endpoints
  /events/active-summary:
    get:
      description: List of counts for all active events by type and the most recent
        active alarm for each.
      operationId: getActiveSummary
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventLevelSummaryModel"
          description: OK
      summary: Get the active events summary
      tags:
      - Events endpoints
  /events/counts:
    post:
      operationId: eventCounts
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
                format: date-time
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PeriodCounts"
          description: OK
      summary: Query for event counts using RQL
      tags:
      - Events endpoints
  /events/data-point-event-counts:
    post:
      description: Body restricts query event active timestamps >= from and < to (both
        optional)
      operationId: countDataPointEvents
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CountDataPointEventsQuery"
        required: true
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventCountQueryResponse"
          description: default response
      summary: Query for event counts using RQL
      tags:
      - Events endpoints
  /events/data-point-summaries:
    post:
      description: List of counts for all active events by type and the most recent
        active alarm for each.
      operationId: getDataPointSummaries
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DataPointEventSummaryModel"
          description: OK
      summary: Get summary of data point events
      tags:
      - Events endpoints
  /events/query/events-by-source-type:
    post:
      operationId: queryForEventsBySourceType
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventQueryBySourceType"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      summary: "Find Events for a set of sources found by the supplied sourceType\
        \ RQL query, then query for events with these sources using eventsRql"
      tags:
      - Events endpoints
  /events/reduced:
    get:
      description: Use RQL formatted query
      operationId: queryReducedRQL
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventInstanceReducedQueryResponse"
          description: default response
      summary: Query Events Reduced Format
      tags:
      - Events endpoints
  /events/unacknowledged-summary:
    get:
      description: List of counts for all unacknowledged events by type and the most
        recent unacknowledged alarm for each.
      operationId: getUnacknowledgedSummary
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/EventLevelSummaryModel"
          description: OK
      summary: Get the unacknowledged events summary
      tags:
      - Events endpoints
  /events/{id}:
    get:
      operationId: getById_3
      parameters:
      - description: Valid Event ID
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventInstanceModel"
          description: OK
      summary: Get event by ID
      tags:
      - Events endpoints
  /excel-report-templates:
    get:
      operationId: queryRQL_4
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateQueryResult"
          description: default response
      summary: Query Reports
      tags:
      - Excel report templates
    post:
      operationId: createNewTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportTemplateModel"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: Created
      summary: Create new template
      tags:
      - Excel report templates
  /excel-report-templates/by-id/{id}:
    delete:
      operationId: deleteTemplateByid
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Delete a template by id
      tags:
      - Excel report templates
    get:
      operationId: getTemplateById
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Get a template by id
      tags:
      - Excel report templates
    put:
      operationId: updateTemplateById
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportTemplateModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Update a template by id
      tags:
      - Excel report templates
  /excel-report-templates/download-by-xid/{xid}:
    get:
      operationId: getTemplateFileByXid
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/vnd.ms-excel:
              schema:
                type: string
                format: binary
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: string
                format: binary
          description: OK
      summary: Get report template file
      tags:
      - Excel report templates
  /excel-report-templates/email-templates:
    get:
      operationId: queryEmailTemplates
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEmailTemplateModel"
          description: OK
      summary: Query Email Templates
      tags:
      - Excel report templates
  /excel-report-templates/export:
    get:
      description: User must have read permission
      operationId: exportQuery_9
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Excel report templates
  /excel-report-templates/load-named-ranges:
    post:
      operationId: getNamedRanges
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportTemplateModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Get named ranges for a report template
      tags:
      - Excel report templates
  /excel-report-templates/upload:
    post:
      operationId: uploadTemplate
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                files[]:
                  type: array
                  items:
                    type: string
                    format: binary
              required:
              - "files[]"
      responses:
        "201":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ExcelFileMeta"
          description: Template Uploaded
        "401":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ExcelFileMeta"
          description: Unauthorized Access
        "409":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ExcelFileMeta"
          description: Template Already Exists
      summary: Upload new template file
      tags:
      - Excel report templates
  /excel-report-templates/validate-email-script:
    post:
      description: Admin Only
      operationId: validateEmailScript
      parameters:
      - in: query
        name: templateId
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: Validate a Script
      tags:
      - Excel report templates
  /excel-report-templates/validate-post-processing-script:
    post:
      description: Admin Only
      operationId: validatePostProcessingScript
      parameters:
      - in: query
        name: templateId
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: Validate a Script
      tags:
      - Excel report templates
  /excel-report-templates/{xid}:
    delete:
      operationId: deleteTemplate
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Delete a template
      tags:
      - Excel report templates
    get:
      operationId: getTemplate
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Get a template
      tags:
      - Excel report templates
    put:
      operationId: updateTemplate
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportTemplateModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportTemplateModel"
          description: OK
      summary: Update a template
      tags:
      - Excel report templates
  /excel-reports:
    get:
      operationId: queryRQL_8
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportQueryResult"
          description: default response
      summary: Query Reports
      tags:
      - Excel Reports
  /excel-reports/by-id/{id}:
    delete:
      operationId: deleteById
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Delete a report by id
      tags:
      - Excel Reports
    get:
      operationId: getReportById
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Get a Report by id
      tags:
      - Excel Reports
    put:
      operationId: updateReportById
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Update a report by id
      tags:
      - Excel Reports
  /excel-reports/download/{xid}:
    get:
      operationId: getReportFile
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/vnd.ms-excel:
              schema:
                type: string
                format: binary
            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
              schema:
                type: string
                format: binary
          description: OK
      summary: Get finished report file
      tags:
      - Excel Reports
  /excel-reports/purge/all:
    delete:
      operationId: purgeAllReports
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Purge all reports
      tags:
      - Excel Reports
  /excel-reports/purge/use-settings:
    delete:
      operationId: purgeUsingSettings
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Purge reports using system settings
      tags:
      - Excel Reports
  /excel-reports/run:
    post:
      operationId: runReportFromTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportTemplateModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: "Run a report immediately from an saved template, using the time ranges\
        \ specified in the body"
      tags:
      - Excel Reports
  /excel-reports/run/{xid}:
    post:
      operationId: runReportFromXid
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Run a report immediately from a saved template
      tags:
      - Excel Reports
  /excel-reports/view/{xid}:
    get:
      operationId: viewReportFile
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            text/html:
              schema:
                type: string
          description: OK
      summary: View a finished report file as HTML
      tags:
      - Excel Reports
  /excel-reports/{xid}:
    delete:
      operationId: delete_12
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Delete a report
      tags:
      - Excel Reports
    get:
      operationId: getReport
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Get a Report
      tags:
      - Excel Reports
    put:
      operationId: updateReport
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExcelReportModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExcelReportModel"
          description: OK
      summary: Update a report
      tags:
      - Excel Reports
  /file-stores/download-file/{name}/**:
    get:
      operationId: downloadOnly
      parameters:
      - description: Valid File Store name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Set content disposition to attachment
        in: query
        name: download
        required: false
        schema:
          type: boolean
          default: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Download a file from a store
      tags:
      - File Store
  /file-stores/{fileStoreName}/**:
    post:
      description: Must have write access to the store
      operationId: createNewFolder
      parameters:
      - description: Valid File Store name
        in: path
        name: fileStoreName
        required: true
        schema:
          type: string
      - description: Move file/folder to
        in: query
        name: moveTo
        required: false
        schema:
          type: string
      - description: Copy file/folder to
        in: query
        name: copyTo
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileModel"
          description: OK
      summary: Create a folder or copy/move/rename an existing file or folder
      tags:
      - File Store
  /file-stores/{name}/**:
    delete:
      operationId: delete_23
      parameters:
      - description: Valid File Store name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Recursive delete of directory
        in: query
        name: recursive
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: OK
      summary: Delete a file or directory
      tags:
      - File Store
    get:
      operationId: download
      parameters:
      - description: Valid File Store name
        in: path
        name: name
        required: true
        schema:
          type: string
      - description: Set content disposition to attachment
        in: query
        name: download
        required: false
        schema:
          type: boolean
          default: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: List a directory or download a file from a store
      tags:
      - File Store
    post:
      description: Must have write access to the store
      operationId: uploadWithPath
      parameters:
      - description: Valid File Store name
        in: path
        name: name
        required: true
        schema:
          type: string
      - in: query
        name: overwrite
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FileModel"
          description: OK
      summary: Upload a file to a store with a path
      tags:
      - File Store
  /global-scripts:
    get:
      description: Admin Only
      operationId: query_11
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalScriptQueryResponse"
          description: default response
      summary: Query Global Scripts
      tags:
      - Global Scripts Rest Controller
    post:
      description: Admin Only
      operationId: create_8
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalScriptModel"
          description: OK
      summary: Create a Global Script
      tags:
      - Global Scripts Rest Controller
  /global-scripts/export:
    get:
      description: Admin only
      operationId: exportQuery_8
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Global Scripts Rest Controller
  /global-scripts/validate:
    post:
      description: Admin Only
      operationId: validate_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalScriptModel"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate a Global Script
      tags:
      - Global Scripts Rest Controller
  /global-scripts/validate-script:
    post:
      description: Admin Only
      operationId: validateScript_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: Validate a Script
      tags:
      - Global Scripts Rest Controller
  /global-scripts/{xid}:
    delete:
      description: Admin Only
      operationId: delete_11
      parameters:
      - description: XID of Global Script to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalScriptModel"
          description: OK
      summary: Delete a Global Script
      tags:
      - Global Scripts Rest Controller
    get:
      description: Admin Only
      operationId: get_13
      parameters:
      - description: XID of Global Script to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalScriptModel"
          description: OK
      summary: Get a Global Script
      tags:
      - Global Scripts Rest Controller
    put:
      description: Admin Only
      operationId: update_13
      parameters:
      - description: XID of Global Script to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GlobalScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GlobalScriptModel"
          description: OK
      summary: Update a Global Script
      tags:
      - Global Scripts Rest Controller
  /grpc-data-source/connected-publishers:
    get:
      operationId: getConnectedPublishers
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalPublisherInfoSnapshot"
          description: OK
      tags:
      - grpc-data-source-rest-controller
  /grpc-data-source/connected-publishers/{publisherXid}:
    delete:
      operationId: forgetPublisher
      parameters:
      - in: path
        name: publisherXid
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      tags:
      - grpc-data-source-rest-controller
  /grpc-data-source/status/{xid}:
    get:
      operationId: status_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GrpcDataSourceStatusModel"
          description: OK
      tags:
      - grpc-data-source-rest-controller
  /grpc-publisher/clear-cache/{xid}:
    post:
      operationId: clearCache_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClearCacheResult"
          description: OK
      tags:
      - grpc-publisher-rest-controller
  /grpc-publisher/republish/{xid}:
    delete:
      operationId: cancelRepublish
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RepublishStatus"
          description: OK
      tags:
      - grpc-publisher-rest-controller
    get:
      operationId: getRepublishStatus
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RepublishStatus"
          description: OK
      tags:
      - grpc-publisher-rest-controller
    post:
      operationId: republishData
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - in: query
        name: publishTypes
        required: false
        schema:
          type: array
          default:
          - POINT_VALUES
          items:
            type: string
            enum:
            - POINT_VALUES
            - EVENTS
          uniqueItems: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RepublishStatus"
          description: OK
      tags:
      - grpc-publisher-rest-controller
  /grpc-publisher/status/{xid}:
    get:
      operationId: status
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GrpcPublisherStatusModel"
          description: OK
      tags:
      - grpc-publisher-rest-controller
  /haystack-ds/history-import-results/{id}:
    get:
      operationId: historyImportResults
      parameters:
      - description: Existing resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HaystackHistoryImportResult"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HaystackHistoryImportResult"
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HaystackHistoryImportResult"
          description: Error processing request
      summary: Check the status of a history import
      tags:
      - Haystack Data Source Tools
  /haystack-ds/{xid}/haystack-ids:
    get:
      operationId: getExistingHaystackIds
      parameters:
      - description: Existing datasource xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/HaystackIdMappingModel"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/HaystackIdMappingModel"
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/HaystackIdMappingModel"
          description: Error processing request
      summary: Gets a list of Haystack IDs for a DS and their point XIDs
      tags:
      - Haystack Data Source Tools
  /haystack-ds/{xid}/history-import:
    post:
      description: "Exclusive of from and inclusive of to times, the timezone must\
        \ match the server's"
      operationId: historyImport
      parameters:
      - description: Existing datasource xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              description: "Point Xids to Import, empty means use all from data source"
              items:
                type: string
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HaystackHistoryImportResult"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HaystackHistoryImportResult"
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HaystackHistoryImportResult"
          description: Error processing request
      summary: "Import history for all data points, requires data source permission"
      tags:
      - Haystack Data Source Tools
  /haystack-ds/{xid}/read/{filter}:
    get:
      operationId: queryZinc
      parameters:
      - description: Existing datasource xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Database filter
        in: path
        name: filter
        required: true
        schema:
          type: string
      - description: Limit
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Media type
        in: query
        name: mediaType
        required: false
        schema:
          type: string
      responses:
        "401":
          description: Unauthorized user access
        "404":
          description: Not Found
        "500":
          description: Error processing request
      summary: Read a haystack database as JSON using a filter
      tags:
      - Haystack Data Source Tools
  /haystack-rest/{database}/{operation}:
    get:
      operationId: query_26
      parameters:
      - description: Existing database name
        in: path
        name: database
        required: true
        schema:
          type: string
      - description: Database operation
        in: path
        name: operation
        required: true
        schema:
          type: string
      responses:
        "401":
          description: Unauthorized user access
        "500":
          description: Error processing request
      tags:
      - Haystack Tools
  /http-data-sources/listener:
    post:
      operationId: startListener
      parameters:
      - description: Resource expiry milliseconds
        in: query
        name: expiry
        required: false
        schema:
          type: integer
          format: int64
      - description: Listener timeout milliseconds
        in: query
        name: timeout
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/HttpListenerModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceHttpReceiverListenerResultModelAbstractRestException"
          description: OK
      summary: 'Listen for HTTP data '
      tags:
      - Http data sources utilities
  /http-data-sources/listener/{id}:
    delete:
      operationId: deleteGenerationResponse_2
      parameters:
      - description: ID of resource to cancel.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceHttpReceiverListenerResultModelAbstractRestException"
          description: OK
      summary: Cancel a running listener.
      tags:
      - Http data sources utilities
    get:
      operationId: cancelGenerationResource_1
      parameters:
      - description: ID of resource to get status for.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceHttpReceiverListenerResultModelAbstractRestException"
          description: OK
      summary: Get the status of a running listener
      tags:
      - Http data sources utilities
  /http-data-sources/test-json-retriever-timestamp:
    post:
      operationId: testHttpJsonRetrieverTimeParams
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/HttpJsonRetrieverTimestamp"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                format: date-time
          description: OK
      summary: Test JSON Retriever Timestamp extraction
      tags:
      - Http data sources utilities
  /http-data-sources/test-json-retriever-value:
    post:
      operationId: testHttpJsonRetrieverValueParams
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/HttpJsonRetrieverParameters"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Test JSON Retriever Value Parameter
      tags:
      - Http data sources utilities
  /http-data-sources/test-retriever-timestamp:
    post:
      operationId: testHttpRetrieverTimeParams
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/HttpRetrieverTimestamp"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                format: date-time
          description: OK
      summary: Test Retriever timestamp extraction
      tags:
      - Http data sources utilities
  /http-data-sources/test-retriever-value:
    post:
      operationId: testHttpRetrieverValueParams
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/HttpRetrieverParameters"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Test Retriever Value extraction
      tags:
      - Http data sources utilities
  /http-data-sources/validate-ip-mask:
    post:
      operationId: validateIpMask
      requestBody:
        content:
          application/json:
            schema:
              type: string
        required: true
      responses:
        "200":
          description: OK
      summary: Validate ip mask
      tags:
      - Http data sources utilities
  /json-data:
    get:
      description: Shows any xids that you have read permissions for
      operationId: list
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
          description: OK
      summary: List all available xids
      tags:
      - JSON Store
  /json-data/public/{xid}:
    get:
      operationId: getPublicData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      summary: Get Public JSON Data
      tags:
      - JSON Store
  /json-data/{xid}:
    delete:
      operationId: deleteJsonData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Deleted
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Unauthorized Access
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Doesn't Exists
      summary: Fully Delete JSON Data
      tags:
      - JSON Store
    get:
      operationId: getData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      summary: Get JSON Data
      tags:
      - JSON Store
    post:
      operationId: createJsonData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Read Permissions
        in: query
        name: readPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Edit Permissions
        in: query
        name: editPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Name
        in: query
        name: name
        required: true
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Created
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Unauthorized Access
        "409":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Already Exists
      summary: Create/replace JSON Data
      tags:
      - JSON Store
    put:
      operationId: updateJsonData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Read Permissions
        in: query
        name: readPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Edit Permissions
        in: query
        name: editPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Name
        in: query
        name: name
        required: true
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Created
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Unauthorized Access
        "409":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Already Exists
      summary: Append JSON Data to existing
      tags:
      - JSON Store
  /json-data/{xid}/{path}:
    delete:
      description: "{path} is the path to data with dots data.member.submember"
      operationId: deletePartialJsonData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Data path using dots as separator
        in: path
        name: path
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Deleted
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Unauthorized Access
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Doesn't Exists
      summary: Partially Delete JSON Data
      tags:
      - JSON Store
    get:
      description: To get a sub component of the data use a path of member.submember
      operationId: getDataWithPath
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Data path using dots as separator
        in: path
        name: path
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      summary: Get JSON Data using a path
      tags:
      - JSON Store
    post:
      description: "{path} is the path to data with dots data.member.submember"
      operationId: replaceJsonData
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Data path using dots as separator
        in: path
        name: path
        required: true
        schema:
          type: string
      - description: Read Permissions
        in: query
        name: readPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Edit Permissions
        in: query
        name: editPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Name
        in: query
        name: name
        required: true
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Created
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Unauthorized Access
        "409":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Already Exists
      summary: Replace JSON Data
      tags:
      - JSON Store
    put:
      description: "{path} is the path to data with dots data.member.submember"
      operationId: updateJsonData_1
      parameters:
      - description: XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Data path using dots as separator
        in: path
        name: path
        required: true
        schema:
          type: string
      - description: Read Permissions
        in: query
        name: readPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Edit Permissions
        in: query
        name: editPermission
        required: false
        schema:
          type: array
          default:
            roles: []
          items:
            type: string
      - description: Name
        in: query
        name: name
        required: true
        schema:
          type: string
          default: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Created
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Unauthorized Access
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: Data Doesn't Exists
      summary: Append JSON Data to existing
      tags:
      - JSON Store
  /json-emport:
    get:
      operationId: export
      parameters:
      - description: Elements To Export
        in: query
        name: exportElements
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonValue"
          description: OK
      summary: Export Configuration
      tags:
      - JSON Emport
    post:
      description: Submit the request and get a URL for the results
      operationId: importConfiguration
      parameters:
      - description: "Optional timeout for resource to expire, defaults to 5 minutes"
        in: query
        name: timeout
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonValue"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImportStatusProvider"
          description: OK
      summary: Import Configuration
      tags:
      - JSON Emport
  /json-emport/import/{id}:
    get:
      operationId: getImportStatus
      parameters:
      - description: Valid Resource ID
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImportStatusProvider"
          description: OK
      summary: Get Status For Import
      tags:
      - JSON Emport
  /json-emport/import/{resourceId}:
    put:
      description: Currently only cancel action is supported
      operationId: updateImport
      parameters:
      - description: Resource id
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonEmportControlModel"
        required: true
      responses:
        "200":
          description: OK
      summary: Update an Import in Progress
      tags:
      - JSON Emport
  /json-emport/list:
    get:
      description: Provided as parameters to choose what to export
      operationId: listExportElements
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/StringStringPair"
          description: OK
      summary: List Exportable Elements
      tags:
      - JSON Emport
  /json-emport/upload-file:
    post:
      description: Files should only contain the json object to be imported
      operationId: uploadConfigurationFile
      parameters:
      - description: "timeout for Status Resource to Expire, defaults to 5 minutes"
        in: query
        name: timeout
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
              - file
          multipart/form-data;boundary=-----SWAG_BOUND:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
              required:
              - file
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ImportStatusProvider"
          description: OK
      summary: Upload 1 configuration json file
      tags:
      - JSON Emport
  /json/data/{xid}:
    delete:
      operationId: deleteDataAtPointer
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonNode"
          description: OK
      tags:
      - json-rest-controller
    get:
      operationId: getData_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonNode"
          description: OK
      tags:
      - json-rest-controller
    post:
      operationId: setData
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonNode"
          description: OK
      tags:
      - json-rest-controller
  /json/data/{xid}/**:
    delete:
      operationId: setDataAtPointer_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: path
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonNode"
          description: OK
      tags:
      - json-rest-controller
    get:
      operationId: getDataAtPointer
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: path
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonNode"
          description: OK
      tags:
      - json-rest-controller
    post:
      operationId: setDataAtPointer
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonNode"
          description: OK
      tags:
      - json-rest-controller
  /json/query/{xid}:
    get:
      operationId: query_25
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArrayWithTotalStreamJsonNode"
          description: OK
      tags:
      - json-rest-controller
  /json/query/{xid}/**:
    get:
      operationId: queryAtPointer
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: path
        required: true
        schema:
          type: string
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ArrayWithTotalStreamJsonNode"
          description: OK
      tags:
      - json-rest-controller
  /json/store:
    post:
      operationId: createStore
      parameters:
      - in: query
        name: withData
        required: false
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonDataModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      tags:
      - json-rest-controller
  /json/store/{xid}:
    delete:
      operationId: deleteStore
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: withData
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      tags:
      - json-rest-controller
    get:
      operationId: getStore
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: withData
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      tags:
      - json-rest-controller
    put:
      operationId: updateStore
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: withData
        required: false
        schema:
          type: boolean
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonDataModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JsonDataModel"
          description: OK
      tags:
      - json-rest-controller
  /line-protocol/configure/{xid}:
    post:
      description: Must have read access to data source
      operationId: configureThreadPools
      parameters:
      - description: XID of data source
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LineProtocolDataSourceStatus"
        required: true
      responses:
        "200":
          description: OK
      summary: Set thread pool settings
      tags:
      - InfluxDB line protocol
  /line-protocol/status/{xid}:
    get:
      description: Must have read access to data source
      operationId: getStatus_4
      parameters:
      - description: XID to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LineProtocolDataSourceStatus"
          description: OK
      summary: Get runtime status
      tags:
      - InfluxDB line protocol
  /line-protocol/write:
    post:
      description: Must have the Influx DB Line Protocol Endpoint Access permission
      operationId: receiveMessage
      parameters:
      - description: Name of database to write to
        in: query
        name: db
        required: true
        schema:
          type: string
      - description: "Precision for timestamp (ns, us, ms, and s)"
        in: query
        name: precision
        required: false
        schema:
          type: string
          default: ns
      responses:
        "200":
          description: OK
      summary: POST line data
      tags:
      - InfluxDB line protocol
  /log4j-data-source/test-log-message:
    get:
      description: Formatted based on the log4j2 configuration
      operationId: getTestLogMessage
      parameters:
      - in: query
        name: pattern
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get a test log message
      tags:
      - Log4J data sources utilities
  /log4j-data-source/validate-regex:
    post:
      operationId: validateRegex
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Log4jPointLocatorRegexValidationModel"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate point regex against a test message
      tags:
      - Log4J data sources utilities
  /logging/download:
    get:
      operationId: downloadLogFile
      parameters:
      - in: query
        name: filename
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            text/plain:
              schema:
                type: string
                format: binary
          description: OK
      summary: Download log file
      tags:
      - Logging
  /logging/log-files:
    get:
      description: Returns a list of log files
      operationId: queryFiles
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalFileModel"
          description: OK
      summary: Query log files
      tags:
      - Logging
  /logging/view/{filename}:
    get:
      description: Optionally download file as attachment
      operationId: viewLogFile
      parameters:
      - description: Set content disposition to attachment
        in: query
        name: download
        required: false
        schema:
          type: boolean
          default: false
      - in: path
        name: filename
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            text/plain:
              schema:
                type: string
                format: binary
          description: OK
      summary: View log
      tags:
      - Logging
  /login:
    post:
      description: Used to login using POST and JSON credentials
      operationId: loginPost
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Login
      tags:
      - Login
  /login/exit-su:
    post:
      description: Used to switch User using POST
      operationId: exitSwitchUser
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Exit Switch User
      tags:
      - Login
  /login/oauth2-clients:
    get:
      operationId: oauth2Clients
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/OAuth2ClientInfo"
          description: OK
      summary: Get list of enabled OAuth2 / OpenID connect clients
      tags:
      - Login
  /login/su:
    post:
      description: Used to switch User using GET
      operationId: switchUser
      parameters:
      - description: Username to switch to
        in: query
        name: username
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Switch User
      tags:
      - Login
  /logout:
    post:
      description: Perform logout using POST
      operationId: logoutPost
      responses:
        "200":
          description: OK
      summary: Logout
      tags:
      - Logout
  /mailing-lists:
    get:
      operationId: query_10
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MailingListQueryResponse"
          description: default response
      summary: Query Mailing Lists
      tags:
      - Mailing List Rest Controller
    post:
      description: Requires global Create Mailing List privileges
      operationId: create_7
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MailingListWithRecipientsModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MailingListModel"
          description: OK
      summary: Create a Mailing List
      tags:
      - Mailing List Rest Controller
  /mailing-lists/export:
    get:
      description: User must have read permission
      operationId: exportQuery_7
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Mailing List Rest Controller
  /mailing-lists/validate:
    post:
      description: Admin Only
      operationId: validate_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MailingListWithRecipientsModel"
        required: true
      responses:
        "200":
          description: OK
      summary: Validate a Mailing List without saving it
      tags:
      - Mailing List Rest Controller
  /mailing-lists/{xid}:
    delete:
      operationId: delete_10
      parameters:
      - description: XID of Mailing List to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MailingListModel"
          description: OK
      summary: Delete a Mailing List
      tags:
      - Mailing List Rest Controller
    get:
      description: Requires Read Permission to see the addresses
      operationId: get_12
      parameters:
      - description: XID of Mailing List to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MailingListModel"
          description: OK
      summary: Get a Mailing List
      tags:
      - Mailing List Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_7
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated mailing list
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/MailingListWithRecipientsModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MailingListModel"
          description: OK
      summary: Partially update a Mailing List
      tags:
      - Mailing List Rest Controller
    put:
      description: Requires edit permission
      operationId: update_12
      parameters:
      - description: XID of MailingList to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MailingListWithRecipientsModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MailingListModel"
          description: OK
      summary: Update a Mailing List
      tags:
      - Mailing List Rest Controller
  /maintenance-events:
    get:
      description: Use RQL formatted query
      operationId: queryRQL_3
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaintenanceEventQueryResponse"
          description: default response
      summary: Query Maintenance Events
      tags:
      - Maintenance Events API
    post:
      description: User must have global data source permission
      operationId: create_6
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MaintenanceEventModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Create new maintenance event
      tags:
      - Maintenance Events API
  /maintenance-events/active/{xid}:
    get:
      description: "must have toggle permission, returns new boolean state of event"
      operationId: getState
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: OK
      summary: Get the current active state of a maintenance event
      tags:
      - Maintenance Events API
    put:
      description: "must have toggle permission, returns new boolean state of event"
      operationId: setState
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: State to set event to
        in: query
        name: active
        required: true
        schema:
          type: boolean
          default: false
      - description: Start time
        in: query
        name: startTime
        required: false
        schema:
          type: string
          format: date-time
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: OK
      summary: "Set the state of a maintenance event, only change state if necessary\
        \ ignore if no change and just return current state"
      tags:
      - Maintenance Events API
  /maintenance-events/export:
    get:
      description: User must have read permission
      operationId: exportQuery_6
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Maintenance Events API
  /maintenance-events/query/get-events-by-points-and-or-sources:
    post:
      description: Returns Events for any Maintenance event that has any of the supplied
        data points OR data sources as its source
      operationId: getEventsByCriteria
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventQueryByMaintenanceCriteria"
        required: true
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventQueryResult"
          description: default response
      summary: Find Events for a set of Maintenance events created by the supplied
        criteria
      tags:
      - Maintenance Events API
  /maintenance-events/query/get-events-by-rql:
    post:
      description: Returns Events for any Maintenance event that
      operationId: getEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EventQueryByMaintenanceEventRql"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      summary: Find Events for a set of Maintenance events created by the supplied
        rql query
      tags:
      - Maintenance Events API
  /maintenance-events/query/get-for-points-by-ids/{pointIds}:
    get:
      description: Returns a map of point ids to a list of events that have this data
        point in their list OR the its data source in the list
      operationId: getForPointsByIds
      parameters:
      - in: path
        name: pointIds
        required: true
        schema:
          type: array
          items:
            type: integer
            format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Find Maintenance Events linked to data points by point IDs
      tags:
      - Maintenance Events API
  /maintenance-events/query/get-for-points-by-xids/{pointXids}:
    get:
      description: Returns a map of point xids to a list of events that have this
        data point in their list OR the its data source in the list
      operationId: getForPointsByXid
      parameters:
      - in: path
        name: pointXids
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Find Maintenance Events linked to data points by point XIDs
      tags:
      - Maintenance Events API
  /maintenance-events/query/get-for-sources-by-ids/{sourceIds}:
    get:
      description: Returns a map of source ids to a list of events that have this
        data source in thier list
      operationId: getForSourcesByIds
      parameters:
      - in: path
        name: sourceIds
        required: true
        schema:
          type: array
          items:
            type: integer
            format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Find Maintenance Events linked to data sources by source IDs
      tags:
      - Maintenance Events API
  /maintenance-events/query/get-for-sources-by-xids/{sourceXids}:
    get:
      description: Returns a map of source xids to a list of events that have this
        data source in their list
      operationId: getForSourcesByXid
      parameters:
      - in: path
        name: sourceXids
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Find Maintenance Events linked to data sources by source XIDs
      tags:
      - Maintenance Events API
  /maintenance-events/set-point-values:
    post:
      description: "User must have edit access to data source and its points, use\
        \ created header to track progress/cancel"
      operationId: setPointValues
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MaintenanceEventPointValueOperationsModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModifyPointValuesResponseModelAbstractRestException"
          description: OK
      summary: Set Point Values for a Maintenance Event during a given time
      tags:
      - Maintenance Events API
  /maintenance-events/set-point-values/{id}:
    delete:
      description: Will only remove a task if it is complete. User can only remove
        their own task unless they are an admin.
      operationId: removeSetPointValuesTask
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a set point values task using its id
      tags:
      - Maintenance Events API
    get:
      description: User can only get their own status unless they are an admin
      operationId: getSetPointValuesStatus
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModifyPointValuesResponseModelAbstractRestException"
          description: OK
      summary: Get the status of a set point values operation using its id
      tags:
      - Maintenance Events API
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own task unless they are an admin.
      operationId: updateSetPointValues
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModifyPointValuesResponseModelAbstractRestException"
          description: OK
      summary: Update a set values task using its id
      tags:
      - Maintenance Events API
  /maintenance-events/toggle/{xid}:
    put:
      description: "must have toggle permission, returns boolean state of event"
      operationId: toggle
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: boolean
          description: OK
      summary: Toggle the state of a maintenance event
      tags:
      - Maintenance Events API
  /maintenance-events/{xid}:
    delete:
      operationId: delete_9
      parameters:
      - description: Valid maintenance event XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Delete a maintenance event
      tags:
      - Maintenance Events API
    get:
      description: Only events that user has permission to are returned
      operationId: get_11
      parameters:
      - description: Valid XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Get maintenance event by XID
      tags:
      - Maintenance Events API
    patch:
      operationId: partialUpdate_6
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated maintenance event
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/MaintenanceEventModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Partially update an existing maintenance event
      tags:
      - Maintenance Events API
    put:
      operationId: update_11
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MaintenanceEventModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MaintenanceEventModel"
          description: OK
      summary: Update an existing maintenance event
      tags:
      - Maintenance Events API
  /mango-nosql/backup:
    post:
      description: admin only
      operationId: backup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoSqlBackupSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Backup the MangoNoSQL database
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/backup-file-list:
    get:
      description: Admin Only
      operationId: getBackupList
      parameters:
      - in: query
        name: restoreSourceLocation
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/StringStringPair"
          description: OK
      summary: Get list of files for restoring backups
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/merge:
    post:
      description: admin only
      operationId: merge
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoSqlMergeSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Merge external MangoNoSQL database
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/migrate-nosql:
    post:
      description: "admin only, generally used to import data from a Mango that was\
        \ storing NoSQL point values."
      operationId: migrateNoSQL
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoSqlMigrateNoSQLSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Migrate MangoNoSQL data using both external SQL and MangoNoSQL databases.
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/migrate-sql:
    post:
      description: admin only
      operationId: migrateSQL
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoSqlMigrateSQLSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Migrate point values from an SQL database
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/reload-links:
    post:
      operationId: reloadLinks
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoSqlReloadLinksSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Reload MangoNoSQL Links
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/restore:
    post:
      description: admin only
      operationId: restore
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NoSqlRestoreSettings"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Restore a MangoNoSQL database
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/statistics:
    get:
      description: Admin Only
      operationId: getStatistics_2
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NoSqlDatabaseStatistics"
          description: OK
      summary: Get database statistics
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/status:
    get:
      operationId: listBulkDataTransferOperation
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: List all non expired operations
      tags:
      - Mango NoSQL Rest Controller
  /mango-nosql/status/{id}:
    delete:
      operationId: deleteGenerationResponse_1
      parameters:
      - description: ID of resource to cancel.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Cancel a running task.
      tags:
      - Mango NoSQL Rest Controller
    get:
      operationId: getBulkDataTransferOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceNoSqlDataTransferResultAbstractRestException"
          description: OK
      summary: Get the status of a data transfer operation using its id
      tags:
      - Mango NoSQL Rest Controller
  /meta-data-source/history-generation:
    get:
      operationId: getAllActiveResources
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalTemporaryResourceMetaGenerationResultAbstractRestException"
          description: OK
      summary: Get all running generations
      tags:
      - Meta Data Source Tools
    post:
      description: Must have permission to edit the data source(s) and/or point(s)
      operationId: generateHistory
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StartGenerateHistoryModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceMetaGenerationResultAbstractRestException"
          description: OK
      summary: Trigger a set of meta points / data sources to recompute their histories.
      tags:
      - Meta Data Source Tools
  /meta-data-source/history-generation/{id}:
    delete:
      description: Will only remove an operation if it is complete. User can only
        remove their own operations unless they are an admin.
      operationId: deleteGenerationResponse
      parameters:
      - description: ID of  resource to cancel.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceMetaGenerationResultAbstractRestException"
          description: OK
      summary: Delete a running generation by id.
      tags:
      - Meta Data Source Tools
    get:
      operationId: getGenerationResource
      parameters:
      - description: ID of resource to get.
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceMetaGenerationResultAbstractRestException"
          description: OK
      summary: Get the status of a running generation
      tags:
      - Meta Data Source Tools
    put:
      operationId: cancelGenerationResource
      parameters:
      - description: ID of resource to cancel the generation for.
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceMetaGenerationResultAbstractRestException"
          description: OK
      summary: Cancel a running generation
      tags:
      - Meta Data Source Tools
  /meta-data-source/log-file-path/{xid}:
    get:
      description: Must have permission to edit the data point
      operationId: getLogFilePath_5
      parameters:
      - description: XID of Data Point
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get logfile name
      tags:
      - Meta Data Source Tools
  /modbus/ip/locator:
    post:
      operationId: readModbusIpLocator
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusIpReadLocatorRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: object
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: object
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: object
          description: Error processing request
      summary: Modbus IP Locator
      tags:
      - Modbus Tools
  /modbus/ip/read:
    post:
      operationId: readModbusIpData
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusIpReadRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Error processing request
      summary: Modbus IP Read
      tags:
      - Modbus Tools
  /modbus/ip/read-raw:
    post:
      operationId: readRawModbusIpData
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusIpReadRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModbusReadResponse"
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModbusReadResponse"
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModbusReadResponse"
          description: Error processing request
      summary: Modbus IP read raw
      tags:
      - Modbus Tools
  /modbus/ip/write:
    post:
      operationId: writeModbusIpData
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TypedModbusIpWriteRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Error processing request
      summary: Modbus IP Write
      tags:
      - Modbus Tools
  /modbus/ip/write-raw:
    post:
      operationId: writeRawModbusIpData
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusIpWriteRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Error processing request
      summary: Modbus IP write raw
      tags:
      - Modbus Tools
  /modbus/log-file-path/{xid}:
    get:
      description: Must have permission to edit the data source
      operationId: getLogFilePath_4
      parameters:
      - description: XID of Data Source
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get logfile name
      tags:
      - Modbus Tools
  /modbus/read-generic:
    post:
      operationId: readGeneric
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenericReadModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericReadWriteModel"
          description: OK
      summary: "Modbus IP or Serial read, returns raw data and typed values"
      tags:
      - Modbus Tools
  /modbus/scan:
    post:
      operationId: modbusScan
      parameters:
      - description: Resource expiry milliseconds
        in: query
        name: expiry
        required: false
        schema:
          type: integer
          format: int64
      - description: Listener timeout milliseconds
        in: query
        name: timeout
        required: false
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/ModbusIpConfigurationModel"
              - $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModbusNodeScanResultAbstractRestException"
          description: OK
      summary: Modbus scan with websocket support
      tags:
      - Modbus Tools
  /modbus/scan/{id}:
    delete:
      description: Will only remove an operation if it is complete. User can only
        remove their own operations unless they are an admin.
      operationId: removeScan
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModbusNodeScanResultAbstractRestException"
          description: OK
      summary: Remove a Modbus scan using its id
      tags:
      - Modbus Tools
    get:
      description: User can only get their own operations unless they are an admin
      operationId: getScanStatus
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModbusNodeScanResultAbstractRestException"
          description: OK
      summary: Get the status of Modbus scan using its id
      tags:
      - Modbus Tools
    put:
      description: "Only cancels if the operation is not already complete.May also\
        \ be used to remove a completed temporary resource by passing remove=true,\
        \ otherwise the resource is removed when it expires.User can only cancel their\
        \ own operations unless they are an admin."
      operationId: cancelScan
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceModbusNodeScanResultAbstractRestException"
          description: OK
      summary: Cancel a Modbus scan using its id
      tags:
      - Modbus Tools
  /modbus/serial/locator:
    post:
      description: Uses enabled data source's configuration if exists
      operationId: readModbusSerialLocator
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusSerialReadLocatorRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: object
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: object
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: object
          description: Error processing request
      summary: Modbus Serial Locator
      tags:
      - Modbus Tools
  /modbus/serial/read:
    post:
      description: "Uses enabled data source's configuration if exists, return map\
        \ of address to value at that address."
      operationId: readModbusSerialData
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusSerialReadRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Error processing request
      summary: Modbus Serial Read
      tags:
      - Modbus Tools
  /modbus/serial/read-raw:
    post:
      operationId: readRawModbusSerialData
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusSerialReadRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModbusReadResponse"
          description: Success
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModbusReadResponse"
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModbusReadResponse"
          description: General processing error
      summary: Modbus Serial read raw
      tags:
      - Modbus Tools
  /modbus/serial/write:
    post:
      description: Uses enabled data source's configuration if exists
      operationId: writeModbusSerialData
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TypedModbusSerialWriteRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Error processing request
      summary: Modbus Serial Write
      tags:
      - Modbus Tools
  /modbus/serial/write-raw:
    post:
      operationId: writeRawModbusSerialData
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModbusSerialWriteRequest"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Unauthorized user access
        "422":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Message is well formed but contains invalid data
        "500":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: Error processing request
      summary: Modbus Serial write raw
      tags:
      - Modbus Tools
  /modbus/write-generic:
    post:
      operationId: writeGeneric
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GenericWriteModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GenericReadWriteModel"
          description: OK
      summary: "Modbus IP or Serial write, writes raw data or typed values"
      tags:
      - Modbus Tools
  /modules/angularjs-modules/public:
    get:
      description: Publicly Available Angular JS Modules
      operationId: getPublicAngularJSModules
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AngularJSModuleDefinitionGroupModel"
          description: OK
      summary: AngularJS Modules
      tags:
      - Module Definitions access
  /modules/core:
    get:
      description: For checking current licensing and version
      operationId: getCore
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get Core Module
      tags:
      - Module Definitions access
  /modules/deletion-state:
    put:
      description: Marking a module for deletion will un-install it upon restart
      operationId: markModuleForDeletion
      parameters:
      - description: Deletion State
        in: query
        name: delete
        required: true
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleModel"
          description: OK
      summary: Set Marked For Deletion state of Module
      tags:
      - Module Definitions access
  /modules/deletion-state/{moduleName}:
    put:
      description: Marking a module for deletion will un-install it upon restart
      operationId: markForDeletion
      parameters:
      - in: path
        name: moduleName
        required: true
        schema:
          type: string
      - description: Deletion State
        in: query
        name: delete
        required: true
        schema:
          type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleModel"
          description: OK
      summary: Set Marked For Deletion state of Module
      tags:
      - Module Definitions access
  /modules/download-license:
    put:
      description: Admin Only
      operationId: downloadLicense
      parameters:
      - description: Connection retries
        in: query
        name: retries
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CredentialsModel"
        required: true
      responses:
        "200":
          description: OK
      summary: Download your license from the store
      tags:
      - Module Definitions access
  /modules/list:
    get:
      description: List all installed
      operationId: listModules
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ModuleModel"
          description: OK
      summary: List Current Installed Modules
      tags:
      - Module Definitions access
  /modules/list-missing-dependencies:
    get:
      description: List all installed
      operationId: listMissingModuleDependencies
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
          description: OK
      summary: List Current Missing Module Dependencies
      tags:
      - Module Definitions access
  /modules/update-license-payload:
    get:
      description: Admin Only
      operationId: getUpdateLicensePayload
      parameters:
      - description: Set content disposition to attachment
        in: query
        name: download
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpdateLicensePayloadModel"
          description: OK
      summary: "Get the update license payload, to make requests to store"
      tags:
      - Module Definitions access
  /modules/upgrade:
    post:
      description: Use Modules web socket to track progress
      operationId: upgrade
      parameters:
      - description: Perform Backup first
        in: query
        name: backup
        required: false
        schema:
          type: boolean
          default: false
      - description: Restart when completed
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      - description: Event persistence setting for restarts
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModuleUpgradesModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Download Upgrades and optionally backup and restart
      tags:
      - Module Definitions access
    put:
      operationId: cancelUpgrade
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Cancel Download of Upgrades
      tags:
      - Module Definitions access
  /modules/upgrade-status:
    get:
      operationId: getUpgradeStatus
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpgradeStatusModel"
          description: OK
      summary: Get Current Upgrade Task Status
      tags:
      - Module Definitions access
  /modules/upgrades-available:
    get:
      description: Check the store for Upgrades
      operationId: getUpgrades
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModuleUpgradesModel"
          description: OK
      summary: Get Available Upgrades
      tags:
      - Module Definitions access
  /modules/upload-upgrades:
    post:
      description: The bundle can be downloaded from the Mango Store
      operationId: uploadUpgrades
      parameters:
      - description: Perform Backup first
        in: query
        name: backup
        required: false
        schema:
          type: boolean
          default: false
      - description: Restart after upload completes
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      - description: Event persistence setting for restarts
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpgradeUploadResult"
          description: OK
      summary: "Upload upgrade zip bundle, to be installed on restart"
      tags:
      - Module Definitions access
  /one-wire-data-source/read:
    get:
      operationId: readNetwork
      parameters:
      - description: Valid Comm Port
        in: query
        name: commPortId
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/OneWireContainerInfo"
          description: OK
      summary: Read OneWire netework
      tags:
      - OneWire data sources utilities
  /one-wire-data-source/read-demo:
    get:
      operationId: readDummyNetwork
      parameters:
      - description: Valid Comm Port
        in: query
        name: commPortId
        required: true
        schema:
          type: string
      - in: query
        name: throwException
        required: false
        schema:
          type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/OneWireContainerInfo"
          description: OK
      summary: Read OneWire Dummy netework for testing
      tags:
      - OneWire data sources utilities
  /opcda-data-source/list-servers:
    post:
      operationId: listServers
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OPCListServersRequestModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
          description: OK
      summary: List available servers
      tags:
      - OPCDA data sources utilities
  /opcda-data-source/list-tags:
    post:
      operationId: listTags
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OPCListTagsRequestModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/OPCItemModel"
          description: OK
      summary: List tags within a server
      tags:
      - OPCDA data sources utilities
  /password-reset/create:
    post:
      operationId: createTokenForUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateTokenRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateTokenResponse"
          description: OK
      summary: Creates a password reset token and link for the given user
      tags:
      - Password reset
  /password-reset/public-key:
    get:
      operationId: getPublicKey
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Gets the public key for verifying password reset tokens
      tags:
      - Password reset
  /password-reset/reset:
    post:
      operationId: reset_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PasswordResetRequestBody"
        required: true
      responses:
        "200":
          description: OK
      summary: Resets the user's password if the token is correct
      tags:
      - Password reset
  /password-reset/reset-keys:
    post:
      description: Will invalidate all password reset tokens
      operationId: resetKeys
      responses:
        "200":
          description: OK
      summary: Resets the public and private keys
      tags:
      - Password reset
  /password-reset/send-email:
    post:
      operationId: sendEmail_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SendEmailRequestBody"
        required: true
      responses:
        "200":
          description: OK
      summary: Sends the user an email containing a password reset link
      tags:
      - Password reset
  /password-reset/system-setup:
    post:
      description: Superadmin permission required
      operationId: systemSetup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SystemSetupRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: "Change admin password and set system locale, system timezone"
      tags:
      - Password reset
  /password-reset/verify:
    get:
      description: "Verifies the signature, but does not verify the claims"
      operationId: verifyToken
      parameters:
      - description: The token to parse
        in: query
        name: token
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HeaderClaimsModel"
          description: OK
      summary: Parse and verify a password reset token
      tags:
      - Password reset
  /persistent-data-source/status/{xid}:
    get:
      description: there can be more than 1 connection
      operationId: getStatus_3
      parameters:
      - description: XID to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PersistentDataSourceConnectionStatusModel"
          description: OK
      summary: Get the connection status for a data source
      tags:
      - Persistent data source utilities
  /persistent-publisher/status/{xid}:
    get:
      operationId: getStatus_2
      parameters:
      - description: XID to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PersistentSenderConnectionStatusModel"
          description: OK
      summary: Get the connection status for a publisher
      tags:
      - Persistent publisher utilities
  /persistent-publisher/sync/{xid}:
    put:
      operationId: startSync
      parameters:
      - description: Xid of publisher to start sync on
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Start a sync on the publisher
      tags:
      - Persistent publisher utilities
  /persistent-publisher/update-historical-sync-start-time/{xid}:
    put:
      operationId: updateSyncTime
      parameters:
      - description: Xid of publisher to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
              format: date-time
              description: Date to set sync start to
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Update the historical sync start time
      tags:
      - Persistent publisher utilities
  /point-value-modification/delete:
    delete:
      description: Data Point must exist and user must have write access
      operationId: deletePointValues_1
      parameters:
      - description: "Shall data point listeners be notified, default is NEVER"
        in: query
        name: fireEvents
        required: false
        schema:
          type: string
          default: NEVER
          enum:
          - ALWAYS
          - ON_CURRENT_VALUE_UPDATE
          - NEVER
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parallel:
                  type: boolean
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PointValueTimeDeleteResult"
          description: OK
      summary: Delete Point Values for one or many Data Points
      tags:
      - Point Value Import/Delete
  /point-value-modification/import:
    post:
      description: Data Point must exist and user must have write access
      operationId: importPointValues
      parameters:
      - description: "Shall data point listeners be notified, default is NEVER"
        in: query
        name: fireEvents
        required: false
        schema:
          type: string
          default: NEVER
          enum:
          - ALWAYS
          - ON_CURRENT_VALUE_UPDATE
          - NEVER
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                parallel:
                  type: boolean
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PointValueTimeImportResult"
          description: OK
      summary: Import Point Values for one or many Data Points
      tags:
      - Point Value Import/Delete
  /point-values:
    post:
      description: Data Point must exist and user must have write access
      operationId: savePointsValues
      parameters:
      - description: "Shall data point listeners be notifified, default is NEVER"
        in: query
        name: fireEvents
        required: false
        schema:
          type: string
          default: NEVER
          enum:
          - ALWAYS
          - ON_CURRENT_VALUE_UPDATE
          - NEVER
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/LegacyXidPointValueTimeModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PointValueImportResult"
          description: OK
      summary: "Import Point Values for one or many Data Points, this is deprecated\
        \ and it is recommended to use the /point-value-modification endpoints"
      tags:
      - Point Values
  /point-values/latest/{xid}:
    get:
      description: "Optionally use memory cached values that are available on Interval\
        \ Logged data points, < before time and optional limit"
      operationId: getLatestPointValues
      parameters:
      - description: Point xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Return values before this time
        in: query
        name: before
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: Limit
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: "Use cached/intra-interval logging data, for best performance\
          \ set the data point's cache size >= the the requested limit"
        in: query
        name: useCache
        required: false
        schema:
          type: string
          default: NONE
          enum:
          - CACHE_ONLY
          - NONE
          - BOTH
      - description: Tolerance for use in Simplify algorithm
        in: query
        name: simplifyTolerance
        required: false
        schema:
          type: number
          format: double
      - description: Target number of values to return for use in Simplify algorithm
        in: query
        name: simplifyTarget
        required: false
        schema:
          type: integer
          format: int32
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: Get latest values For 1 Data Point in time descending order
      tags:
      - Point Values
  /point-values/multiple-arrays/latest:
    post:
      description: "Optionally use memory cached values that are available on Interval\
        \ Logged data points, < before time and optional limit"
      operationId: postLatestPointValuesAsMultipleArrays
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidLatestQueryInfoModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    parallel:
                      type: boolean
          description: OK
      summary: Get latest values For 1 or more Data Points in time descending order
        in multiple arrays
      tags:
      - Point Values
  /point-values/multiple-arrays/latest/{xids}:
    get:
      description: "Optionally use memory cached values that are available on Interval\
        \ Logged data points, < before time and optional limit"
      operationId: getLatestPointValuesAsMultipleArrays
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Return values before this time
        in: query
        name: before
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: Limit
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Use cached/intra-interval logging data
        in: query
        name: useCache
        required: false
        schema:
          type: string
          default: NONE
          enum:
          - CACHE_ONLY
          - NONE
          - BOTH
      - description: Tolerance for use in Simplify algorithm
        in: query
        name: simplifyTolerance
        required: false
        schema:
          type: number
          format: double
      - description: Target number of values to return for use in Simplify algorithm
        in: query
        name: simplifyTarget
        required: false
        schema:
          type: integer
          format: int32
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    parallel:
                      type: boolean
          description: OK
      summary: GET latest values For 1 or more Data Points in time descending order
        in multiple arrays
      tags:
      - Point Values
  /point-values/multiple-arrays/time-period:
    post:
      description: "From time inclusive, To time exclusive.  Returns a map of xid\
        \ to values with optionally limited value arrays with bookends."
      operationId: postPointValuesForMultiplePointsAsMultipleArrays
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidTimeRangeQueryModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    parallel:
                      type: boolean
          description: OK
      summary: "POST to query time range for multiple data points, return in time\
        \ ascending order"
      tags:
      - Point Values
  /point-values/multiple-arrays/time-period/{rollup}:
    post:
      description: "From time inclusive, To time exclusive.  Returns a map of xid\
        \ to point value time arrays."
      operationId: postRollupPointValuesAsMultipleArrays
      parameters:
      - description: Rollup type
        in: path
        name: rollup
        required: true
        schema:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidRollupTimeRangeQueryModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    parallel:
                      type: boolean
          description: OK
      summary: "POST to rollup values for multiple data points, return in time ascending\
        \ order"
      tags:
      - Point Values
  /point-values/multiple-arrays/time-period/{xids}:
    get:
      description: "From time inclusive, To time exclusive.  Returns a map of xid\
        \ to values with optionally limited value arrays with bookends."
      operationId: getPointValuesForMultiplePointsAsMultipleArrays
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: Limit (per series not including bookend values)
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Bookend
        in: query
        name: bookend
        required: false
        schema:
          type: boolean
          default: false
      - description: Tolerance for use in Simplify algorithm
        in: query
        name: simplifyTolerance
        required: false
        schema:
          type: number
          format: double
      - description: Target number of values to return for use in Simplify algorithm
        in: query
        name: simplifyTarget
        required: false
        schema:
          type: integer
          format: int32
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    parallel:
                      type: boolean
          description: OK
      summary: "Query time range for multiple data points, return in time ascending\
        \ order"
      tags:
      - Point Values
  /point-values/multiple-arrays/time-period/{xids}/{rollup}:
    get:
      description: "From time inclusive, To time exclusive.  Returns a map of xid\
        \ to point value time arrays."
      operationId: getRollupPointValuesAsMultipleArrays
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: Rollup type
        in: path
        name: rollup
        required: true
        schema:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time Period Type
        in: query
        name: timePeriodType
        required: false
        schema:
          type: string
          enum:
          - MILLISECONDS
          - SECONDS
          - MINUTES
          - HOURS
          - DAYS
          - WEEKS
          - MONTHS
          - YEARS
      - description: Time Periods
        in: query
        name: timePeriods
        required: false
        schema:
          type: integer
          format: int32
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: Limit (per series)
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Truncate the from time and expand to time based on the time period
          settings
        in: query
        name: truncate
        required: false
        schema:
          type: boolean
          default: false
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    parallel:
                      type: boolean
          description: OK
      summary: "Rollup values for multiple data points, return in time ascending order"
      tags:
      - Point Values
  /point-values/purge:
    post:
      description: "User must have edit access to data source and its points, use\
        \ created header to track progress/cancel"
      operationId: purgePointValues
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PurgeDataPointValuesModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourcePurgePointValuesResponseModelAbstractRestException"
          description: OK
      summary: "Purge Point Values for one or many data points, or a single data source"
      tags:
      - Point Values
  /point-values/purge/data-points/{id}:
    delete:
      description: Will only remove a task if it is complete. User can only remove
        their own purge task unless they are an admin.
      operationId: removeDataPointPurgeTask
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a purge task using its id
      tags:
      - Point Values
  /point-values/purge/{id}:
    get:
      description: User can only get their own status unless they are an admin
      operationId: getDataPointPurgeStatus
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourcePurgePointValuesResponseModelAbstractRestException"
          description: OK
      summary: Get the status of a purge operation using its id
      tags:
      - Point Values
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own purge task unless they are an admin.
      operationId: updateDataPointPurge
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourcePurgePointValuesResponseModelAbstractRestException"
          description: OK
      summary: Update a purge task using its id
      tags:
      - Point Values
  /point-values/single-array/latest:
    post:
      description: "Optionally use memory cached values that are available on Interval\
        \ Logged data points, < before time and optional limit"
      operationId: postLatestPointValuesAsSingleArray
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidLatestQueryInfoModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: POST for latest values For 1 or more Data Points in time descending
        order in a single array
      tags:
      - Point Values
  /point-values/single-array/latest/{xids}:
    get:
      description: "Optionally use memory cached values that are available on Interval\
        \ Logged data points, < before time and optional limit"
      operationId: getLatestPointValuesAsSingleArray
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Return values before this time
        in: query
        name: before
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: "Limit, limits returned array size"
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Use cached/intra-interval logging data
        in: query
        name: useCache
        required: false
        schema:
          type: string
          default: NONE
          enum:
          - CACHE_ONLY
          - NONE
          - BOTH
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: Get latest values For 1 or more Data Points in time descending order
        in a single array
      tags:
      - Point Values
  /point-values/single-array/time-period:
    post:
      description: "From time inclusive, To time exclusive. Return in single array\
        \ with bookends, use limit if provided."
      operationId: postPointValuesAsSingleArray
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidTimeRangeQueryModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: "POST to query a time range for multiple data points, return in time\
        \ ascending order"
      tags:
      - Point Values
  /point-values/single-array/time-period/{rollup}:
    post:
      description: "From time inclusive, To time exclusive. Return in single array."
      operationId: postRollupPointValuesAsSingleArray
      parameters:
      - description: Rollup type
        in: path
        name: rollup
        required: true
        schema:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidRollupTimeRangeQueryModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: "POST to get rollup values for multiple data points, return in time\
        \ ascending order"
      tags:
      - Point Values
  /point-values/single-array/time-period/{xids}:
    get:
      description: "From time inclusive, To time exclusive. Return in single array\
        \ with bookends, use limit if provided."
      operationId: getPointValuesAsSingleArray
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: "Limit (not including bookend values), limits returned array\
          \ size"
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Bookend
        in: query
        name: bookend
        required: false
        schema:
          type: boolean
          default: false
      - description: Tolerance for use in Simplify algorithm
        in: query
        name: simplifyTolerance
        required: false
        schema:
          type: number
          format: double
      - description: Target number of values to return for use in Simplify algorithm
        in: query
        name: simplifyTarget
        required: false
        schema:
          type: integer
          format: int32
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: "Query Time Range for multiple data points, return in time ascending\
        \ order"
      tags:
      - Point Values
  /point-values/single-array/time-period/{xids}/{rollup}:
    get:
      description: "From time inclusive, To time exclusive. Return in single array."
      operationId: getRollupPointValuesAsSingleArray
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: Rollup type
        in: path
        name: rollup
        required: true
        schema:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time Period Type
        in: query
        name: timePeriodType
        required: false
        schema:
          type: string
          enum:
          - MILLISECONDS
          - SECONDS
          - MINUTES
          - HOURS
          - DAYS
          - WEEKS
          - MONTHS
          - YEARS
      - description: Time Periods
        in: query
        name: timePeriods
        required: false
        schema:
          type: integer
          format: int32
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: "Limit, limits returned array size"
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Truncate the from time and expand to time based on the time period
          settings
        in: query
        name: truncate
        required: false
        schema:
          type: boolean
          default: false
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: "Rollup values for multiple data points, return in time ascending order"
      tags:
      - Point Values
  /point-values/statistics:
    post:
      description: "From time inclusive, To time exclusive. Returns map of xid to\
        \ Statistics object"
      operationId: getStatistics
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/XidStatisticsQueryInfoModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/StreamingPointValueTimeModel"
          description: OK
      summary: GET statistics for data point(s) over the given time range
      tags:
      - Point Values
  /point-values/statistics/{xids}:
    get:
      description: "From time inclusive, To time exclusive. Returns map of xid to\
        \ Statistics object"
      operationId: getStatistics_1
      parameters:
      - description: Point xids
        in: path
        name: xids
        required: true
        schema:
          type: array
          items:
            type: string
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/StreamingPointValueTimeModel"
          description: OK
      summary: GET statistics for data point(s) over the given time range
      tags:
      - Point Values
  /point-values/time-period/{xid}:
    get:
      description: "From time inclusive, To time exclusive.  With a bookend value\
        \ at from and to if possible/necessary."
      operationId: getPointValues
      parameters:
      - description: Point xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: Limit (not including bookend values)
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Bookend
        in: query
        name: bookend
        required: false
        schema:
          type: boolean
          default: false
      - description: Tolerance for use in Simplify algorithm
        in: query
        name: simplifyTolerance
        required: false
        schema:
          type: number
          format: double
      - description: Target number of values to return for use in Simplify algorithm
        in: query
        name: simplifyTarget
        required: false
        schema:
          type: integer
          format: int32
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: "Query Time Range For 1 Data Point, return in time ascending order"
      tags:
      - Point Values
  /point-values/time-period/{xid}/{rollup}:
    get:
      description: "From time inclusive, To time exclusive."
      operationId: getRollupPointValues
      parameters:
      - description: Point xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Rollup type
        in: path
        name: rollup
        required: true
        schema:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: From time
        in: query
        name: from
        required: true
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: true
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      - description: Limit
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: Time Period Type
        in: query
        name: timePeriodType
        required: false
        schema:
          type: string
          enum:
          - MILLISECONDS
          - SECONDS
          - MINUTES
          - HOURS
          - DAYS
          - WEEKS
          - MONTHS
          - YEARS
      - description: Time Periods
        in: query
        name: timePeriods
        required: false
        schema:
          type: integer
          format: int32
      - description: Truncate the from time and expand to time based on the time period
          settings
        in: query
        name: truncate
        required: false
        schema:
          type: boolean
          default: false
      - description: "Fields to be included in the returned data, default is TIMESTAMP,VALUE"
        in: query
        name: fields
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: "Rollup values For 1 Data Point, return in time ascending order"
      tags:
      - Point Values
  /point-values/{xid}:
    delete:
      description: The user must have set permission to the data point. If date is
        not supplied it defaults to now.
      operationId: deletePointValues
      parameters:
      - description: Point xids
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: From time
        in: query
        name: from
        required: false
        schema:
          type: string
          format: date-time
      - description: To time
        in: query
        name: to
        required: false
        schema:
          type: string
          format: date-time
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int64
          description: OK
      summary: Delete point values >= from  and < to
      tags:
      - Point Values
    put:
      description: Data point must exist and be enabled
      operationId: putPointValue
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Return converted value using displayed unit
        in: query
        name: unitConversion
        required: false
        schema:
          type: boolean
          default: false
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LegacyPointValueTimeModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LegacyPointValueTimeModel"
          description: OK
      summary: Update an existing data point's value
      tags:
      - Point Values
  /point-values/{xid}/attributes:
    put:
      description: Data Point must be running and user must have write access
      operationId: updatePointAttributes
      parameters:
      - description: Point xids
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: "Update point attributes, return all attributes after change"
      tags:
      - Point Values
  /pop3-data-source/validate-time-regex:
    post:
      description: returns detected date
      operationId: validateTimeRegex
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Pop3TestModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
                format: date-time
          description: OK
      summary: Validate time regex
      tags:
      - Pop3 data sources utilities
  /pop3-data-source/validate-value-regex:
    post:
      description: returns detected value
      operationId: validateValueRegex
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Pop3TestValueModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Validate value regex
      tags:
      - Pop3 data sources utilities
  /published-points:
    get:
      description: RQL Formatted Query
      operationId: query_9
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublishedPointQueryResponse"
          description: default response
      summary: Query Published Points
      tags:
      - Mango Published Points
    post:
      operationId: create_5
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublishedPointModelObject"
          description: OK
      summary: Create published point
      tags:
      - Mango Published Points
  /published-points/bulk:
    get:
      description: User can only get their own bulk published point operations unless
        they are an admin
      operationId: getBulkOperations
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a list of current bulk published point operations
      tags:
      - Mango Published Points
    post:
      description: User must have read permission for the data point or edit permission
        for the data source
      operationId: bulkPublishedPointOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PublishedPointBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/AbstractPublishedPointModelPublishedPointVO"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourcePublishedPointBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/create/update/delete published points
      tags:
      - Mango Published Points
  /published-points/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk published point operation using its id
      tags:
      - Mango Published Points
    get:
      description: User can only get their own bulk operations unless they are an
        admin
      operationId: getBulkOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourcePublishedPointBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk published point operation using its id
      tags:
      - Mango Published Points
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own bulk operations unless they are an admin.
      operationId: updateBulkOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourcePublishedPointBulkResponseAbstractRestException"
          description: OK
      summary: Update a bulk published point operation using its id
      tags:
      - Mango Published Points
  /published-points/by-id/{id}:
    get:
      operationId: getById_2
      parameters:
      - description: ID of published point
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublishedPointModelObject"
          description: OK
      summary: Get published point by ID
      tags:
      - Mango Published Points
  /published-points/enable-disable/{xid}:
    put:
      operationId: enableDisable_3
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Enable or disable the published point
        in: query
        name: enabled
        required: true
        schema:
          type: boolean
      - description: "Restart the published point, enabled must equal true"
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: OK
      summary: Enable/disable/restart a published point
      tags:
      - Mango Published Points
  /published-points/export:
    get:
      description: User must have read permission
      operationId: exportQuery_5
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Mango Published Points
  /published-points/export/{xid}:
    get:
      operationId: exportPublishedPoint
      parameters:
      - description: Valid published point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Export formatted for Configuration Import
      tags:
      - Mango Published Points
  /published-points/query-data-point-rql:
    get:
      description: Adds an additional action and originalXid column
      operationId: queryByDataPointRQL
      responses:
        "200":
          content:
            text/csv:
              schema:
                $ref: "#/components/schemas/JSONStreamedArray"
          description: OK
      summary: Gets a list of published points for bulk import via CSV using RQL against
        data points
      tags:
      - Mango Published Points
  /published-points/{xid}:
    delete:
      operationId: delete_8
      parameters:
      - description: XID of published point to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublishedPointModelObject"
          description: OK
      summary: Delete a published point
      tags:
      - Mango Published Points
    get:
      operationId: get_10
      parameters:
      - description: XID of published point
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublishedPointModelObject"
          description: OK
      summary: Get Published Point by XID
      tags:
      - Mango Published Points
    patch:
      description: Requires edit permission
      operationId: partialUpdate_5
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated published point
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AbstractPublishedPointModelObject"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublishedPointModelObject"
          description: OK
      summary: Partially update a published point
      tags:
      - Mango Published Points
    put:
      operationId: update_10
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublishedPointModelObject"
          description: OK
      summary: Update published point
      tags:
      - Mango Published Points
  /publishers:
    get:
      description: RQL Formatted Query
      operationId: query_7
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublisherQueryResponse"
          description: default response
      summary: Query Publishers Sources
      tags:
      - Mango Publishers
    post:
      operationId: save_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Save publisher
      tags:
      - Mango Publishers
  /publishers-without-points:
    get:
      description: RQL Formatted Query
      operationId: query_8
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PublisherWithoutPointsQueryResponse"
          description: default response
      summary: Query Publishers
      tags:
      - Mango Publishers (points not included in model)
    post:
      operationId: save_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: "Save publisher, if points are supplied in model they will replace\
        \ all existing points"
      tags:
      - Mango Publishers (points not included in model)
  /publishers-without-points/by-id/{id}:
    get:
      operationId: getById_1
      parameters:
      - description: ID of publisher
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Get publisher by ID
      tags:
      - Mango Publishers (points not included in model)
  /publishers-without-points/enable-disable/{xid}:
    put:
      operationId: enableDisable_2
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Enable or disable the publisher
        in: query
        name: enabled
        required: true
        schema:
          type: boolean
      - description: "Restart the publisher, enabled must equal true"
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: OK
      summary: Enable/disable/restart a publisher
      tags:
      - Mango Publishers (points not included in model)
  /publishers-without-points/export:
    get:
      description: User must have read permission
      operationId: exportQuery_4
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Mango Publishers (points not included in model)
  /publishers-without-points/export/{xid}:
    get:
      operationId: exportDataSource_2
      parameters:
      - description: Valid publisher XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Export formatted for Configuration Import
      tags:
      - Mango Publishers (points not included in model)
  /publishers-without-points/{xid}:
    delete:
      description: Points are never returned as they don't exist after deleting a
        publisher
      operationId: delete_7
      parameters:
      - description: XID of publisher to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Delete a publisher
      tags:
      - Mango Publishers (points not included in model)
    get:
      operationId: get_9
      parameters:
      - description: XID of publisher
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Get publisher by XID
      tags:
      - Mango Publishers (points not included in model)
    patch:
      description: Requires edit permission
      operationId: partialUpdate_4
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated data source
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: "Partially update a publisher, if points are supplied in model they\
        \ will replace all existing points"
      tags:
      - Mango Publishers (points not included in model)
    put:
      operationId: update_9
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: "Update publisher, if points are supplied in model they will replace\
        \ all existing points"
      tags:
      - Mango Publishers (points not included in model)
  /publishers/by-id/{id}:
    get:
      operationId: getById
      parameters:
      - description: ID of publisher
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Get publisher by ID
      tags:
      - Mango Publishers
  /publishers/enable-disable/{xid}:
    put:
      operationId: enableDisable_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Enable or disable the publisher
        in: query
        name: enabled
        required: true
        schema:
          type: boolean
      - description: "Restart the publisher, enabled must equal true"
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: OK
      summary: Enable/disable/restart a publisher
      tags:
      - Mango Publishers
  /publishers/export:
    get:
      description: User must have read permission
      operationId: exportQuery_3
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Mango Publishers
  /publishers/export/{xid}:
    get:
      operationId: exportDataSource_1
      parameters:
      - description: Valid publisher XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Export formatted for Configuration Import
      tags:
      - Mango Publishers
  /publishers/{xid}:
    delete:
      operationId: delete_6
      parameters:
      - description: XID of publisher to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Delete a publisher
      tags:
      - Mango Publishers
    get:
      operationId: get_8
      parameters:
      - description: XID of publisher
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Get publisher by XID
      tags:
      - Mango Publishers
    patch:
      description: Requires edit permission
      operationId: partialUpdate_3
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated data source
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Partially update a publisher
      tags:
      - Mango Publishers
    put:
      operationId: update_8
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
          description: OK
      summary: Update publisher
      tags:
      - Mango Publishers
  /realtime:
    get:
      description: Check the status member to ensure the point is OK not DISABLED
        or UNRELIABLE
      operationId: query_6
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalRealTimeDataPointValueModel"
          description: OK
      summary: Query realtime values
      tags:
      - Access to current values combined with data point information for all currently
        running data points.
    post:
      operationId: getRealTimeDataPoints_1
      parameters:
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      summary: Get Realtime data points given an AST query
      tags:
      - Access to current values combined with data point information for all currently
        running data points.
  /roles:
    get:
      operationId: query_5
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: id
      - in: query
        name: xid
      - in: query
        name: name
      - in: query
        name: inherited
      - in: query
        name: inheritedBy
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleQueryResult"
          description: default response
      summary: Query Roles
      tags:
      - Roles Rest Controller
    post:
      description: Admin only
      operationId: create_4
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RoleModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleModel"
          description: OK
      summary: Create a Role
      tags:
      - Roles Rest Controller
  /roles/{xid}:
    delete:
      operationId: delete_5
      parameters:
      - description: XID of Role to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleModel"
          description: OK
      summary: Delete a Role
      tags:
      - Roles Rest Controller
    get:
      operationId: get_7
      parameters:
      - description: XID of Role to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleModel"
          description: OK
      summary: Get a Role
      tags:
      - Roles Rest Controller
    patch:
      description: Admin only
      operationId: partialUpdate_2
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated role
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/RoleModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleModel"
          description: OK
      summary: Partially update a Role
      tags:
      - Roles Rest Controller
    put:
      description: Admin only
      operationId: update_7
      parameters:
      - description: XID of Role to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/RoleModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/RoleModel"
          description: OK
      summary: Update a Role List
      tags:
      - Roles Rest Controller
  /runtime-manager/force-refresh/{xid}:
    put:
      description: Not all data sources implement this feature
      operationId: forceRefreshDataPoint
      parameters:
      - description: Valid Data Point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Force Refresh a data point
      tags:
      - Runtime Manager
  /runtime-manager/relinquish/{xid}:
    post:
      description: Only BACnet data points allow this
      operationId: relinquish
      parameters:
      - description: Valid Data Point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Relinquish the value of a data point
      tags:
      - Runtime Manager
  /runtime-manager/reset-cache/{xid}:
    post:
      description: Must have edit access to the data point
      operationId: resetCache
      parameters:
      - description: Valid Data Point XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Reset the cache on a running data point
      tags:
      - Runtime Manager
  /schedule-rule-sets:
    get:
      description: "Use RQL formatted query, filtered by permissions"
      operationId: queryRQL_2
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CalendarRuleSetQueryResponse"
          description: default response
      summary: Query Rule Sets
      tags:
      - Advanced Schedules Rule Sets
    post:
      description: "Cannot already exist, must have admin permission"
      operationId: create_3
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CalendarRuleSetModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CalendarRuleSetModel"
          description: OK
      summary: Create a Rule Set
      tags:
      - Advanced Schedules Rule Sets
  /schedule-rule-sets/{xid}:
    delete:
      description: admin only
      operationId: delete_4
      parameters:
      - description: Valid Rule Set XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CalendarRuleSetModel"
          description: OK
      summary: Delete a Rule Set
      tags:
      - Advanced Schedules Rule Sets
    get:
      operationId: get_6
      parameters:
      - description: Valid Rule Set XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CalendarRuleSetModel"
          description: OK
      summary: Get a Rule Set
      tags:
      - Advanced Schedules Rule Sets
    put:
      operationId: update_6
      parameters:
      - description: Valid Rule Set XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CalendarRuleSetModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CalendarRuleSetModel"
          description: OK
      summary: Update a Rule Set
      tags:
      - Advanced Schedules Rule Sets
  /schedules:
    get:
      description: "Use RQL formatted query, filtered by permissions"
      operationId: queryRQL_1
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleQueryResponse"
          description: default response
      summary: Query Schedules
      tags:
      - Advanced Schedules
    post:
      description: "Cannot already exist, must have admin permission"
      operationId: create_2
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScheduleModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleModel"
          description: OK
      summary: Create a Schedule
      tags:
      - Advanced Schedules
  /schedules/enable-disable/{xid}:
    put:
      operationId: enableDisable
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Enable or disable the schedule
        in: query
        name: enabled
        required: true
        schema:
          type: boolean
      - description: "Restart the schedule, enabled must equal true"
        in: query
        name: restart
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          description: OK
      summary: Enable/disable/restart a schedule
      tags:
      - Advanced Schedules
  /schedules/export:
    get:
      description: User must have read permission
      operationId: exportQuery_2
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Advanced Schedules
  /schedules/{xid}:
    delete:
      description: admin only
      operationId: delete_3
      parameters:
      - description: Valid Schedule XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleModel"
          description: OK
      summary: Delete a Schedule
      tags:
      - Advanced Schedules
    get:
      operationId: get_5
      parameters:
      - description: Schedule XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Schedule ID
        in: query
        name: id
        required: false
        schema:
          type: integer
          format: int32
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleModel"
          description: OK
      summary: Get a Schedule
      tags:
      - Advanced Schedules
    put:
      operationId: update_5
      parameters:
      - description: Valid Schedule XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ScheduleModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduleModel"
          description: OK
      summary: Update a Schedule
      tags:
      - Advanced Schedules
  /script-data-source/log-file-path/{xid}:
    get:
      description: Must have permission to edit the data source
      operationId: getLogFilePath_3
      parameters:
      - description: XID of Data Source
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get logfile name
      tags:
      - Script Data Source Rest Controller
  /script-data-source/validate-script/{xid}:
    post:
      description: Must have permission to edit the data source
      operationId: validateScript
      parameters:
      - description: XID of Data Source to validate script for
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: Validate a Script
      tags:
      - Script Data Source Rest Controller
  /script/engines:
    get:
      operationId: getEngines
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      tags:
      - script-rest-controller
  /script/eval-file-store/{fileStoreName}/**:
    post:
      operationId: evalScript
      parameters:
      - description: File store name
        in: path
        name: fileStoreName
        required: true
        schema:
          type: string
      - description: Script engine name
        in: query
        name: engineName
        required: false
        schema:
          type: string
      - description: Script file character set
        in: query
        name: fileCharset
        required: false
        schema:
          type: string
          default: UTF-8
      - description: Script roles
        in: query
        name: roles
        required: false
        schema:
          type: array
          items:
            type: string
      - in: query
        name: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Evaluate a filestore file as a script on the backend using a scripting
        engine
      tags:
      - script-rest-controller
  /script/run:
    post:
      operationId: runScript
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: "Run a script, supplied permissions must already be granted to submitting\
        \ User. Admin only"
      tags:
      - Script Utils to run or test a Mango JavaScript script
  /script/validate:
    post:
      operationId: validate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MangoJavaScriptModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MangoJavaScriptResultModel"
          description: OK
      summary: "Validate a script, supplied permissions must already be granted to\
        \ submitting User."
      tags:
      - Script Utils to run or test a Mango JavaScript script
  /serial-data-source/log-file-path/{xid}:
    get:
      description: Must have permission to edit the data source
      operationId: getLogFilePath_2
      parameters:
      - description: XID of Data Source
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get logfile name
      tags:
      - Serial data sources utilities
  /serial-data-source/validate-ascii/{xid}:
    post:
      operationId: validateSerialData
      parameters:
      - description: Valid Serial data source XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SerialValidationModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SerialTestResultModel"
          description: OK
      summary: Validate Serial Data
      tags:
      - Serial data sources utilities
  /server/accept-license-agreement:
    post:
      description: "Only valid if the current license agreement has not been accepted.\
        \  If you do not accept, Mango will restart in 15 seconds, giving you a 2nd\
        \ chance in case you change your mind."
      operationId: acceptLicenseAgreement
      parameters:
      - description: Agree or not
        in: query
        name: agree
        required: true
        schema:
          type: boolean
      responses:
        "400":
          description: License already accepted.
      summary: Accept the current license agreement.
      tags:
      - Server Information v2
  /server/client-error:
    post:
      operationId: postClientError
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ClientError"
        required: true
      responses:
        "200":
          description: OK
      summary: Send a client error / stack trace to the backend for logging
      tags:
      - Server Information v2
  /server/cors-settings:
    get:
      operationId: getCorsHeaders
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CorsSettings"
          description: OK
      summary: Get the CORS headers as set in configuration file
      tags:
      - Server Information v2
  /server/email:
    post:
      description: Sends email to supplied user
      operationId: sendEmail
      parameters:
      - in: query
        name: username
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmailContentModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Send an email
      tags:
      - Server Information v2
  /server/email/mailing-list/{xid}:
    post:
      description: Requires mailing list send permission
      operationId: sendEmailToMailingList
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EmailContentModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Send an email to a mailing list
      tags:
      - Server Information v2
  /server/email/test:
    put:
      description: Sends email to supplied address
      operationId: sendTestEmail
      parameters:
      - in: query
        name: email
        required: false
        schema:
          type: string
          default: ""
      - in: query
        name: username
        required: false
        schema:
          type: string
          default: ""
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Send a test email
      tags:
      - Server Information v2
  /server/execute-command:
    post:
      description: "Returns the output of the command, admin only"
      operationId: executeCommand
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ServerCommandModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Run OS command
      tags:
      - Server Information v2
  /server/http-sessions:
    get:
      description: Admin only
      operationId: listSessions
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SessionInformation"
          description: OK
      summary: List session information for all sessions
      tags:
      - Server Information v2
  /server/license-agreement-version:
    get:
      operationId: getLicenseAgreement
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Get the current license agreement version.
      tags:
      - Server Information v2
  /server/mango-info:
    get:
      description: "Instance description, GUID, Core version, Normalized Core Version,\
        \ Server timezone, Server locale"
      operationId: getMangoInfo
      responses:
        "500":
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
          description: Internal error
      summary: Get general Mango installation info
      tags:
      - Server Information v2
  /server/network-interfaces:
    get:
      description: Requires global data source permission
      operationId: getNetworkInterfaces
      parameters:
      - in: query
        name: includeLoopback
        required: false
        schema:
          type: boolean
          default: false
      - in: query
        name: includeDefault
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/NetworkInterfaceModel"
          description: OK
      summary: List network interfaces
      tags:
      - Server Information v2
  /server/point-history-counts:
    get:
      description: This endpoint can be very cpu intensive if you have a lot of point
        data.
      operationId: getPointHistoryCounts
      parameters:
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
          default: 100
      responses:
        "500":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/PointHistoryCount"
          description: Internal error
      summary: Get the count of values for all data points in a point by point list
      tags:
      - Server Information v2
  /server/restart:
    put:
      description: Returns location url in header for status updates while web interface
        is still active
      operationId: restart
      parameters:
      - in: query
        name: delay
        required: false
        schema:
          type: integer
          format: int64
      - description: Event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      responses:
        "200":
          description: OK
      summary: Restart Mango
      tags:
      - Server Information v2
  /server/serial-ports:
    get:
      operationId: refreshFreeSerialPorts
      parameters:
      - in: query
        name: refresh
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                uniqueItems: true
          description: OK
      summary: "Get available serial ports, optionally refresh cached list."
      tags:
      - Server Information v2
  /server/system-info:
    get:
      operationId: getSystemInfo
      responses:
        "500":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: Internal error
      summary: Get all available system information
      tags:
      - Server Information v2
  /server/system-info/{key}:
    get:
      operationId: getOne
      parameters:
      - description: Valid System Info Key
        in: path
        name: key
        required: true
        schema:
          type: string
      responses:
        "404":
          content:
            application/json:
              schema:
                type: object
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                type: object
          description: Internal error
      summary: Get one piece of system info by key
      tags:
      - Server Information v2
  /server/timezones:
    get:
      operationId: queryTimezone
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalTimezoneModel"
          description: OK
      summary: Query Timezones
      tags:
      - Server Information v2
  /snmp/get-oid:
    post:
      operationId: getOid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SnmpSettings"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                type: object
          description: Unauthorized user access
        "500":
          content:
            application/json:
              schema:
                type: object
          description: Error processing request
      summary: Get single OID
      tags:
      - SNMP Tools
  /snmp/get-oid/{dataSourceXid}:
    get:
      operationId: getOidByDataSource
      parameters:
      - in: path
        name: dataSourceXid
        required: true
        schema:
          type: string
      - in: query
        name: oid
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                type: object
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                type: object
          description: No resource exists with given id
        "500":
          content:
            application/json:
              schema:
                type: object
          description: Error processing request
      summary: Get single OID with data source settings
      tags:
      - SNMP Tools
  /snmp/mib-walk/{dataSourceXid}:
    post:
      operationId: walkWithMibFile
      parameters:
      - in: path
        name: dataSourceXid
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Unauthorized user access
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Error processing request
      summary: Upload a mib file
      tags:
      - SNMP Tools
  /snmp/set-oid:
    post:
      operationId: setOid
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SnmpSetSettings"
        required: true
      responses:
        "401":
          description: Unauthorized user access
        "500":
          description: Error processing request
      summary: Set single OID using SNMPv1
      tags:
      - SNMP Tools
  /snmp/set-oid/{dataSourceXid}:
    post:
      operationId: setOidByDataSource
      parameters:
      - in: path
        name: dataSourceXid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SnmpSetSettings"
        required: true
      responses:
        "401":
          description: Unauthorized user access
        "404":
          description: No resource exists with given id
        "500":
          description: Error processing request
      summary: Set single OID using data source settings
      tags:
      - SNMP Tools
  /snmp/walk:
    post:
      operationId: beginSnmpWalk
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SnmpSettings"
        required: true
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Unauthorized user access
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Error processing request
      summary: SNMP Walk
      tags:
      - SNMP Tools
  /snmp/walk-status/{resourceId}:
    delete:
      operationId: cancelSnmpWalk
      parameters:
      - in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        "401":
          description: Unauthorized user access
        "404":
          description: No resource exists with given id
        "500":
          description: Error processing request
      summary: Cancel SNMP Walk
      tags:
      - SNMP Tools
    get:
      operationId: getSnmpWalkStatus
      parameters:
      - in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: No resource exists with given id
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Error processing request
      summary: Get SNMP Walk results
      tags:
      - SNMP Tools
  /snmp/walk/{dataSourceXid}:
    post:
      operationId: beginSnmpWalk_1
      parameters:
      - in: path
        name: dataSourceXid
        required: true
        schema:
          type: string
      - in: query
        name: rootOID
        required: false
        schema:
          type: string
      - in: query
        name: useMibFiles
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SnmpSettings"
      responses:
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Unauthorized user access
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SnmpWalkTask"
          description: Error processing request
      summary: SNMP Walk
      tags:
      - SNMP Tools
  /snmp/{xid}/oids:
    get:
      operationId: getOidsForDataSource
      parameters:
      - description: Existing datasource xid
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "401":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SnmpOidMappingModel"
          description: Unauthorized user access
        "404":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SnmpOidMappingModel"
          description: Not Found
        "500":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/SnmpOidMappingModel"
          description: Error processing request
      summary: Gets a list of SNMP oids for a DS and their point XIDs
      tags:
      - SNMP Tools
  /sql-console:
    get:
      description: "Submit a query to the Mango database, Admin Only"
      operationId: query_4
      parameters:
      - in: query
        name: query
        required: true
        schema:
          type: string
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SqlQueryResult"
            text/csv:
              schema:
                type: array
                items:
                  type: object
                  additionalProperties: {}
          description: OK
      summary: Query
      tags:
      - SQL Console Rest Controller
    post:
      description: "Submit an update to the Mango database, Admin Only, return number\
        \ of rows affected"
      operationId: update_24
      requestBody:
        content:
          application/sql:
            schema:
              type: string
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: integer
                format: int32
          description: OK
      summary: Update
      tags:
      - SQL Console Rest Controller
  /sql-console/list-tables:
    get:
      description: "List all tables in the Mango database, Admin Only"
      operationId: listTables
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SqlQueryResult"
          description: OK
      summary: List Tables
      tags:
      - SQL Console Rest Controller
  /sql-data-source/test-statement:
    post:
      operationId: query_3
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SQL"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SqlQueryResult"
          description: OK
      summary: Execute statement using a data source settings
      tags:
      - sql-data-source-rest-controller
  /ssh-data-source/log-file-path/{xid}:
    get:
      description: Must have permission to edit the data source
      operationId: getLogFilePath_1
      parameters:
      - description: XID of Data Source
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get logfile name
      tags:
      - SSH Data Source Tools
  /surveillance/cameras:
    get:
      operationId: query_2
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCameraQueryResponse"
          description: default response
      summary: Query Camera Lists
      tags:
      - Access Control Rest Controller
    post:
      operationId: create_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlCameraModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCameraModel"
          description: OK
      tags:
      - Access Control Rest Controller
  /surveillance/cameras/{xid}:
    delete:
      operationId: delete_2
      parameters:
      - description: XID of Camera to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCameraModel"
          description: OK
      summary: Delete a Camera
      tags:
      - Access Control Rest Controller
    get:
      operationId: get_4
      parameters:
      - description: XID of Access Control Camera to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCameraModel"
          description: OK
      tags:
      - Access Control Rest Controller
    patch:
      description: Requires edit permission
      operationId: partialUpdate_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated Camera
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/AccessControlCameraModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCameraModel"
          description: OK
      summary: Partially update a Camera
      tags:
      - Access Control Rest Controller
    put:
      description: Requires edit permission
      operationId: update_4
      parameters:
      - description: XID of AccessControlCamera to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccessControlCameraModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlCameraModel"
          description: OK
      summary: Update a Camera
      tags:
      - Access Control Rest Controller
  /surveillance/cameras/{xid}/live:
    get:
      description: Camera must already be enabled
      operationId: getliveVideo
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FlowableResponseBody"
          description: OK
      summary: Get a live stream from a camera
      tags:
      - Access Control Rest Controller
  /surveillance/recordings:
    get:
      operationId: query_24
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      tags:
      - Access Control Rest Controller
  /surveillance/recordings/{xid}:
    get:
      operationId: getRecording
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccessControlVideoHistoryModel"
          description: OK
      tags:
      - Access Control Rest Controller
  /surveillance/recordings/{xid}/video:
    get:
      operationId: getRecordedVideo
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: download
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            video/mp4:
              schema:
                type: string
                format: binary
          description: OK
      tags:
      - Access Control Rest Controller
  /system-actions/log4JUtil:
    post:
      description: "is admin or has log4J Reset Permission, reset and test logging"
      operationId: reset
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Log4JUtilModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceLog4JUtilResultAbstractRestException"
          description: OK
      summary: Log4J Utility
      tags:
      - Log4J Reset System Action
  /system-actions/status/{id}:
    delete:
      description: Cancels action and removes resource.
      operationId: cancel_1
      parameters:
      - description: Valid running action id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceSystemActionResultAbstractRestException"
          description: OK
      summary: Cancel a system action
      tags:
      - System Actions Status
    get:
      description: Polls temporary resource for results.
      operationId: getStatus_1
      parameters:
      - description: Valid running action id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceSystemActionResultAbstractRestException"
          description: OK
      summary: Get Action Progress
      tags:
      - System Actions Status
  /system-metrics:
    get:
      description: TBD Add RQL Support to this endpoint
      operationId: query_23
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ValueMonitorModel"
          description: OK
      summary: Get the current value for all System Metrics
      tags:
      - "System Metrics, access to the current value for any System Metric"
  /system-metrics/prometheus:
    get:
      operationId: prometheusText
      responses:
        "200":
          content:
            application/openmetrics-text; version=1.0.0; charset=utf-8:
              schema:
                type: string
                format: byte
            application/openmetrics-text;version=1.0.0;charset=utf-8:
              schema:
                type: string
                format: byte
            application/vnd.google.protobuf; proto=io.prometheus.client.MetricFamily; encoding=delimited:
              schema:
                type: string
                format: byte
            application/vnd.google.protobuf;proto=io.prometheus.client.MetricFamily;encoding=delimited:
              schema:
                type: string
                format: byte
            text/plain; version=0.0.4; charset=utf-8:
              schema:
                type: string
                format: byte
            text/plain;version=0.0.4;charset=utf-8:
              schema:
                type: string
                format: byte
          description: OK
      summary: Get all system metrics (and more) in Prometheus format
      tags:
      - "System Metrics, access to the current value for any System Metric"
  /system-metrics/{id}:
    get:
      operationId: get_22
      parameters:
      - description: Valid Monitor id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ValueMonitorModel"
          description: OK
      summary: Get the current value for one System Metric by its ID
      tags:
      - "System Metrics, access to the current value for any System Metric"
  /system-permissions:
    get:
      operationId: query_22
      parameters:
      - in: query
        name: rql
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: name
      - in: query
        name: moduleName
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionDefinitionQueryResult"
          description: default response
      summary: "Query permissions, their names and roles"
      tags:
      - Lists permissions and their names
  /system-permissions/{name}:
    get:
      operationId: get_3
      parameters:
      - in: path
        name: name
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionDefinitionModel"
          description: OK
      summary: Get a permission
      tags:
      - Lists permissions and their names
    put:
      description: If no roles are supplied then all existing assigned roles are removed
      operationId: update_3
      parameters:
      - in: path
        name: name
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PermissionDefinitionModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PermissionDefinitionModel"
          description: OK
      summary: Update all of a Permission's Roles
      tags:
      - Lists permissions and their names
  /system-settings:
    get:
      description: "Admin Permission Required, All settings returned as string types"
      operationId: getAll
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Get All System Settings
      tags:
      - "System Settings, configure/read System Settings"
    post:
      description: Admin Privs Required
      operationId: updateMany
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                $ref: "#/components/schemas/JsonNode"
              description: Updated settings
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Update Many System Settings
      tags:
      - "System Settings, configure/read System Settings"
  /system-settings/{key}:
    get:
      description: "Admin Permission Required, if no type supplied assume to be string"
      operationId: get_2
      parameters:
      - description: Valid System Setting ID
        in: path
        name: key
        required: true
        schema:
          type: string
      - description: Return Type
        in: query
        name: type
        required: false
        schema:
          type: string
          default: STRING
          enum:
          - INTEGER
          - BOOLEAN
          - JSON
          - STRING
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Get System Setting By key
      tags:
      - "System Settings, configure/read System Settings"
    put:
      description: "If no type is provided, String is assumed"
      operationId: update_2
      parameters:
      - in: path
        name: key
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JsonNode"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Update an existing System Setting
      tags:
      - "System Settings, configure/read System Settings"
  /tcpip-data-source/log-file-path/{xid}:
    get:
      description: Must have permission to edit the data source
      operationId: getLogFilePath
      parameters:
      - description: XID of Data Source
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: string
          description: OK
      summary: Get logfile name
      tags:
      - TCP data source utilities
  /tcpip-data-source/test/{xid}:
    post:
      description: there can be more than 1 connection
      operationId: getStatus
      parameters:
      - description: XID to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TcpIpDataSourceTestModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Get the connection status for a data source
      tags:
      - TCP data source utilities
  /threads:
    get:
      description: Larger stack depth will slow this request
      operationId: getThreads
      parameters:
      - description: Limit size of stack trace
        in: query
        name: stackDepth
        required: false
        schema:
          type: integer
          format: int32
          default: 10
      - description: Return as file
        in: query
        name: asFile
        required: false
        schema:
          type: boolean
          default: false
      - description: Order by this member
        in: query
        name: orderBy
        required: false
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ThreadModel"
          description: OK
      summary: Get all threads
      tags:
      - Mango Application Threads
  /translations:
    get:
      description: Kitchen sink of translations
      operationId: translations
      parameters:
      - description: Language for translations
        in: query
        name: language
        required: false
        schema:
          type: string
      - in: query
        name: server
        required: false
        schema:
          type: boolean
          default: false
      - in: query
        name: browser
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TranslationsModel"
          description: OK
      summary: Get all translations
      tags:
      - i18n Translations access
  /translations/clear-cache:
    post:
      description: Translations will be reloaded from .properties files upon next
        translation request
      operationId: clearCache
      responses:
        "200":
          description: OK
      summary: Clear the translation cache
      tags:
      - i18n Translations access
  /translations/public/{namespaces}:
    get:
      description: "Namespace must be base , ie public not public.messages. Returns\
        \ sub-namespaces too. For > 1 use comma common,public"
      operationId: publicNamespacedTranslations
      parameters:
      - description: "Message namespaces, similar to java package structure"
        in: path
        name: namespaces
        required: true
        schema:
          type: array
          items:
            type: string
      - description: Language for translation (must have language pack installed)
        in: query
        name: language
        required: false
        schema:
          type: string
      - description: Use server language for translation
        in: query
        name: server
        required: false
        schema:
          type: boolean
          default: false
      - in: query
        name: browser
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TranslationsModel"
          description: OK
      summary: Get translations for public namespaces
      tags:
      - i18n Translations access
  /translations/{namespaces}:
    get:
      description: "Namespace must be base namespace, ie common not common.messages.\
        \ Returns sub-namespaces too.  For > 1 use comma common,public"
      operationId: namespacedTranslations
      parameters:
      - description: "Message namespaces, similar to java package structure"
        in: path
        name: namespaces
        required: true
        schema:
          type: array
          items:
            type: string
      - description: Language for translation (must have language pack installed)
        in: query
        name: language
        required: false
        schema:
          type: string
      - description: Use server language for translation
        in: query
        name: server
        required: false
        schema:
          type: boolean
          default: false
      - in: query
        name: browser
        required: false
        schema:
          type: boolean
          default: false
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TranslationsModel"
          description: OK
      summary: Get translations based on namespaces
      tags:
      - i18n Translations access
  /ui-bootstrap/post-login:
    get:
      operationId: postLogin
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PostLoginData"
          description: OK
      summary: Get the data needed after logging in
      tags:
      - UI application bootstrap
  /ui-bootstrap/pre-login:
    get:
      operationId: preLogin
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PreLoginData"
          description: OK
      summary: Get the data needed before logging in
      tags:
      - UI application bootstrap
  /ui-bootstrap/pwa-manifest:
    get:
      operationId: manifest
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
          description: OK
      summary: Get the PWA (Progressive Web App) manifest
      tags:
      - UI application bootstrap
  /user-events:
    get:
      description: Query via rql in url against events for the current user
      operationId: query_21
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalEventInstanceModel"
          description: OK
      summary: Query User Events
      tags:
      - User Events
  /user-file-stores:
    get:
      operationId: queryAllStores
      parameters:
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalFileStoreModel"
          description: OK
      summary: Query all file stores
      tags:
      - User file stores
    post:
      operationId: createUserFileStore
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FileStoreModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileStoreModel"
          description: OK
      summary: Create a user file store
      tags:
      - User file stores
  /user-file-stores/{xid}:
    delete:
      operationId: deleteUserFileStore
      parameters:
      - description: File store XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Delete a user file store
      tags:
      - User file stores
    get:
      operationId: getUserFileStoreModel
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a user file store model
      tags:
      - User file stores
    put:
      operationId: updateUserFileStore
      parameters:
      - description: File store XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FileStoreModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FileStoreModel"
          description: OK
      summary: Update a user file store
      tags:
      - User file stores
  /users:
    get:
      description: Adds an additional action and originalXid column
      operationId: queryRQL
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserQueryResult"
          description: default response
      summary: Gets a list of users for bulk import via CSV
      tags:
      - Users V2 Controller
    post:
      description: Superadmin permission required
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Create User
      tags:
      - Users V2 Controller
  /users/approve-users:
    post:
      description: Superadmin permission required
      operationId: approveUsers
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ApproveUsersModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApprovedUsersModel"
          description: OK
      summary: Approve publicly registered User(s)
      tags:
      - Users V2 Controller
  /users/bulk:
    get:
      description: User can only get their own bulk operations unless they are an
        admin
      operationId: getBulkUserOperations
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingJacksonValue"
          description: OK
      summary: Get a list of current bulk user operations
      tags:
      - Users V2 Controller
    post:
      description: User must have read/edit permission for the user
      operationId: bulkUserOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/UserActionAndModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceUserBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/create/update/delete users
      tags:
      - Users V2 Controller
  /users/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkUserOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk user operation using its id
      tags:
      - Users V2 Controller
    get:
      description: User can only get their own bulk data point operations unless they
        are an admin
      operationId: getBulkUserOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceUserBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk user operation using its id
      tags:
      - Users V2 Controller
    put:
      description: Only allowed operation is to change the status to CANCELLED. User
        can only update their own bulk operations unless they are an admin.
      operationId: updateBulkUserOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TemporaryResourceStatusUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceUserBulkResponseAbstractRestException"
          description: OK
      summary: Update a bulk user operation using its id
      tags:
      - Users V2 Controller
  /users/current:
    get:
      description: Returns the logged in user
      operationId: getCurrentUser
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Get current user
      tags:
      - Users V2 Controller
  /users/export:
    get:
      description: User must have read permission
      operationId: exportQuery_1
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Users V2 Controller
  /users/export/{usernames}:
    get:
      description: User must have read permission
      operationId: exportDataSource
      parameters:
      - description: Usernames to export.
        in: path
        name: usernames
        required: true
        schema:
          type: array
          items:
            type: string
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties: {}
          description: OK
      summary: Export user(s) formatted for Configuration Import
      tags:
      - Users V2 Controller
  /users/linked-accounts/{username}:
    get:
      operationId: getLinkedAccounts
      parameters:
      - in: path
        name: username
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  oneOf:
                  - $ref: "#/components/schemas/OAuth2LinkedAccountModel"
          description: OK
      tags:
      - Users V2 Controller
    put:
      operationId: updateLinkedAccounts
      parameters:
      - in: path
        name: username
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                oneOf:
                - $ref: "#/components/schemas/OAuth2LinkedAccountModel"
        required: true
      responses:
        "200":
          description: OK
      tags:
      - Users V2 Controller
  /users/query:
    post:
      description: Adds an additional action and originalXid column
      operationId: queryCsvPost
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
        required: true
      responses:
        "200":
          content:
            text/csv:
              schema:
                $ref: "#/components/schemas/StreamedArrayWithTotal"
          description: OK
      summary: Gets a list of users for bulk import via CSV
      tags:
      - Users V2 Controller
  /users/{username}:
    delete:
      description: Admin only
      operationId: deleteUser
      parameters:
      - description: Valid username
        in: path
        name: username
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Delete a user
      tags:
      - Users V2 Controller
    get:
      operationId: getUser
      parameters:
      - description: Valid username
        in: path
        name: username
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Get User by username
      tags:
      - Users V2 Controller
    patch:
      description: Admin or Patch Self only
      operationId: patchUser
      parameters:
      - in: path
        name: username
        required: true
        schema:
          type: string
      - in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/UserModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Partially update a User
      tags:
      - Users V2 Controller
    put:
      description: Admin or Update Self only
      operationId: updateUser
      parameters:
      - in: path
        name: username
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Update User
      tags:
      - Users V2 Controller
  /users/{username}/homepage:
    put:
      operationId: updateHomeUrl
      parameters:
      - description: Username
        in: path
        name: username
        required: true
        schema:
          type: string
      - description: Home Url
        in: query
        name: url
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Update a user's home url
      tags:
      - Users V2 Controller
  /users/{username}/lock-password:
    put:
      description: The user with a locked password cannot login using a username and
        password. However the user's auth tokens will still work and the user can
        still reset their password using a reset token or email link
      operationId: lockPassword
      parameters:
      - description: Username
        in: path
        name: username
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Locks a user's password
      tags:
      - Users V2 Controller
  /users/{username}/mute:
    put:
      description: If you do not provide the mute parameter the current setting will
        be toggled
      operationId: updateMuted
      parameters:
      - description: Username
        in: path
        name: username
        required: true
        schema:
          type: string
      - description: Mute
        in: query
        name: mute
        required: false
        schema:
          type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserModel"
          description: OK
      summary: Update a user's audio mute setting
      tags:
      - Users V2 Controller
  /virtual-serial-ports:
    get:
      description: Admin Only
      operationId: query_1
      parameters:
      - in: query
        name: query
        required: true
        schema:
          $ref: "#/components/schemas/ASTNode"
      - in: query
        name: translations
        required: true
        schema:
          $ref: "#/components/schemas/Translations"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreamWithTotalVirtualSerialPortConfig"
          description: OK
      summary: Query all Virtual Serial Ports
      tags:
      - Virtual Serial Ports
    post:
      description: "Cannot already exist, admin only"
      operationId: save
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VirtualSerialPortConfig"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VirtualSerialPortConfig"
          description: OK
      summary: Create a virtual serial port
      tags:
      - Virtual Serial Ports
  /virtual-serial-ports/{xid}:
    delete:
      operationId: delete_1
      parameters:
      - description: Valid Virtual serial port XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VirtualSerialPortConfig"
          description: OK
      summary: Delete virtual serial port
      tags:
      - Virtual Serial Ports
    get:
      description: Admin Only
      operationId: get_1
      parameters:
      - description: Valid Configuration XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VirtualSerialPortConfig"
          description: OK
      summary: Get Virtual Serial Port by XID
      tags:
      - Virtual Serial Ports
    put:
      operationId: update_1
      parameters:
      - description: Valid virtual serial port id
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VirtualSerialPortConfig"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VirtualSerialPortConfig"
          description: OK
      summary: Update virtual serial port
      tags:
      - Virtual Serial Ports
  /watch-lists:
    get:
      operationId: query
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WatchListQueryResult"
          description: default response
      summary: Query WatchLists
      tags:
      - Watch Lists
    post:
      operationId: create
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchListModel"
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WatchListModel"
          description: Created
      summary: Create New WatchList
      tags:
      - Watch Lists
  /watch-lists/bulk/{id}:
    delete:
      description: Will only remove a bulk operation if it is complete. User can only
        remove their own bulk operations unless they are an admin.
      operationId: removeBulkExtendedDataPointTagOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
      summary: Remove a bulk operation using its id
      tags:
      - Watch Lists
    get:
      description: User can only get their own bulk operations unless they are an
        admin
      operationId: getBulkExtendedDataPointTagOperation
      parameters:
      - description: Temporary resource id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Get the status of a bulk operation using its id
      tags:
      - Watch Lists
  /watch-lists/export:
    get:
      description: User must have read permission
      operationId: exportQuery
      responses:
        "200":
          content:
            application/vnd.infinite-automation-systems.mango.serotonin-json:
              schema:
                type: object
                additionalProperties:
                  $ref: "#/components/schemas/JsonStreamedArray"
          description: OK
      summary: Export formatted for Configuration Import by supplying an RQL query
      tags:
      - Watch Lists
  /watch-lists/{xid}:
    delete:
      operationId: delete
      parameters:
      - description: XID of WatchList to delete
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WatchListModel"
          description: OK
      summary: Delete a WatchList
      tags:
      - Watch Lists
    get:
      operationId: get
      parameters:
      - description: XID of Watch List to get
        in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WatchListModel"
          description: OK
      summary: Get a WatchList
      tags:
      - Watch Lists
    patch:
      description: Requires edit permission
      operationId: partialUpdate
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Updated WatchList
        in: query
        name: model
        required: true
        schema:
          $ref: "#/components/schemas/WatchListModel"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WatchListModel"
          description: OK
      summary: Partially update a WatchList
      tags:
      - Watch Lists
    put:
      description: Requires edit permission
      operationId: update
      parameters:
      - description: XID of WatchList to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WatchListModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WatchListModel"
          description: OK
      summary: Update a WatchList
      tags:
      - Watch Lists
  /watch-lists/{xid}/bulk/extended:
    post:
      description: User must have read/edit permission for the data point and watchlist
      operationId: bulkExtendedDataPointOperation
      parameters:
      - description: XID of WatchList to update
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: Option for event persistence setting
        in: query
        name: eventPersistenceSetting
        required: false
        schema:
          type: string
          enum:
          - RESTORE_STATE
          - RE_RAISE_EVENTS
          - DISCARD_STATE
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExtendedDataPointBulkRequest"
          text/csv:
            schema:
              type: array
              items:
                $ref: "#/components/schemas/ExtendedDataPointModel"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TemporaryResourceBulkResponseAbstractRestException"
          description: OK
      summary: Bulk get/create/update/delete extended data points for a watchlist
      tags:
      - Watch Lists
  /watch-lists/{xid}/data-points:
    get:
      description: Adds an additional action and originalXid column
      operationId: getDataPoints
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataPointQueryResponse"
          description: default response
      summary: Get Data Points for a Watchlist for bulk import via CSV
      tags:
      - Watch Lists
  /watch-lists/{xid}/data-points/event-detectors:
    get:
      description: Adds an additional action and originalXid column
      operationId: getExtendedDataPointsEventDetectors
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                $ref: "#/components/schemas/JSONStreamedArray"
          description: OK
      summary: Gets a list of event detectors for a Watchlist for bulk import via
        CSV using RQL against data points
      tags:
      - Watch Lists
  /watch-lists/{xid}/data-points/extended:
    get:
      description: Adds an additional action and originalXid column
      operationId: getExtendedDataPointsWithAction
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: Get Extended Data Points for a Watchlist for bulk import via CSV
      tags:
      - Watch Lists
  /watch-lists/{xid}/data-points/published-points:
    get:
      description: Adds an additional action and originalXid column
      operationId: queryPublishedPointsByWatchlistRQL
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      responses:
        "200":
          content:
            text/csv:
              schema:
                $ref: "#/components/schemas/JSONStreamedArray"
          description: OK
      summary: Gets a list of Published Points for a Watchlist for bulk import via
        CSV using RQL
      tags:
      - Watch Lists
  /watch-lists/{xid}/data-points/realtime:
    post:
      description: Adds an additional action and originalXid column
      operationId: getRealTimeDataPoints
      parameters:
      - description: Watchlist XID
        in: path
        name: xid
        required: true
        schema:
          type: string
      - description: "Date Time format pattern for timestamps as strings, if not included\
          \ epoch milli number is used"
        in: query
        name: dateTimeFormat
        required: false
        schema:
          type: string
      - description: Time zone
        in: query
        name: timezone
        required: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ASTNode"
      responses:
        "200":
          content:
            application/json:
              schema:
                type: object
                properties:
                  parallel:
                    type: boolean
          description: OK
      summary: Get Realtime data points for a Watchlist for bulk import via CSV
      tags:
      - Watch Lists
  /watch-lists/{xid}/events:
    get:
      operationId: getEvents_1
      parameters:
      - in: path
        name: xid
        required: true
        schema:
          type: string
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - in: query
        name: offset
        required: false
        schema:
          type: integer
          format: int32
      responses:
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EventQueryResult"
          description: default response
      summary: Get Data Point Events for a Watchlist
      tags:
      - Watch Lists
  /work-items:
    get:
      description: "Returns a list of all work items, optionally filterable on classname"
      operationId: getAll_1
      parameters:
      - in: query
        name: classname
        required: false
        schema:
          type: string
          default: ""
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/WorkItemInfo"
          description: OK
      summary: Get all work items
      tags:
      - Mango Work Items
  /work-items/by-priority/{priority}:
    get:
      description: Returns the Work Item specified by the given classname and priority
      operationId: getWorkItemsByPriority
      parameters:
      - description: priority
        in: path
        name: priority
        required: true
        schema:
          type: string
      - in: query
        name: classname
        required: false
        schema:
          type: string
          default: ""
      responses:
        "200":
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/WorkItemInfo"
          description: OK
      summary: Get list of work items by classname
      tags:
      - Mango Work Items
  /work-items/queue-counts:
    get:
      description: "Returns Work Item names to instance count for High, Medium and\
        \ Low thread pools"
      operationId: getQueueCounts
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BackgroundProcessingQueueCounts"
          description: OK
      summary: Get Queued Work Item Counts
      tags:
      - Mango Work Items
  /work-items/rejected-stats:
    get:
      description: Returns information on all tasks rejected from the High and Medium
        thread pools
      operationId: getRejectedStats
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BackgroundProcessingRejectedTaskStats"
          description: OK
      summary: Get Rejected Task Statistics
      tags:
      - Mango Work Items
  /work-items/running-stats:
    get:
      description: Returns information on all tasks running in the High and Medium
        thread pools
      operationId: getRunningStats
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BackgroundProcessingRunningStats"
          description: OK
      summary: Get Running Work Item Statistics
      tags:
      - Mango Work Items
components:
  schemas:
    ADDRESS:
      allOf:
      - $ref: "#/components/schemas/EmailRecipientModel"
      - type: object
        properties:
          address:
            type: string
    ASN1BitString:
      type: object
      properties:
        bitStream: {}
        bytes:
          type: string
          format: byte
        bytesLength:
          type: integer
          format: int32
        encoded:
          type: string
          format: byte
        loadedObject:
          $ref: "#/components/schemas/ASN1Primitive"
        octetAligned:
          type: boolean
        octetStream: {}
        octets:
          type: string
          format: byte
        padBits:
          type: integer
          format: int32
        string:
          type: string
    ASN1Encodable: {}
    ASN1ObjectIdentifier:
      type: object
      properties:
        encoded:
          type: string
          format: byte
        id:
          type: string
    ASN1Primitive:
      type: object
      properties:
        encoded:
          type: string
          format: byte
    ASN1Set:
      type: object
      properties:
        encoded:
          type: string
          format: byte
        objects: {}
    ASTNode:
      type: object
      description: RQL query AST
      properties:
        arguments:
          type: array
          items: {}
        argumentsSize:
          type: integer
          format: int32
        name:
          type: string
        nameValid:
          type: boolean
        parent:
          $ref: "#/components/schemas/ASTNode"
        rootNode:
          type: boolean
    AbstractBACnetRequestModel:
      type: object
      discriminator:
        propertyName: type
      properties:
        config:
          oneOf:
          - $ref: "#/components/schemas/IpLocalDeviceConfigModel"
          - $ref: "#/components/schemas/MstpLocalDeviceConfigModel"
        type:
          type: string
    AbstractBACnetResponseModel: {}
    AbstractDataSourceModelDataSourceVO:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        connectionDescription:
          type: string
          description: Read only description of data source connection
        data:
          $ref: "#/components/schemas/JsonNode"
        description:
          type: string
          description: Read only description of data source type
        descriptionKey:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        eventAlarmLevels:
          type: array
          items:
            $ref: "#/components/schemas/EventTypeAlarmLevelModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        modelType:
          type: string
        name:
          type: string
          description: Name of object
        purgeSettings:
          $ref: "#/components/schemas/PurgeSettings"
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AbstractDataSourceModelObject:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        connectionDescription:
          type: string
          description: Read only description of data source connection
        data:
          $ref: "#/components/schemas/JsonNode"
        description:
          type: string
          description: Read only description of data source type
        descriptionKey:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        eventAlarmLevels:
          type: array
          items:
            $ref: "#/components/schemas/EventTypeAlarmLevelModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        modelType:
          type: string
        name:
          type: string
          description: Name of object
        purgeSettings:
          $ref: "#/components/schemas/PurgeSettings"
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AbstractEventDetectorModelAbstractEventDetectorVO:
      type: object
      description: Event Handler of update
      discriminator:
        propertyName: detectorType
      properties:
        action:
          type: string
          description: Action to use for CSV import
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        data:
          $ref: "#/components/schemas/JsonNode"
        description:
          type: string
          description: Read only description of detector
        detectorType:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        handlerXids:
          type: array
          description: Xids for event handlers tied to this detector.  If supplied
            in the model it will replace any existing mappings.
          items:
            type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
          description: Original XID for use in CSV import
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        rtnApplicable:
          type: boolean
          description: Read only indication if this detector supports return to normal
        sourceId:
          type: integer
          format: int32
        sourceTypeName:
          type: string
        xid:
          type: string
          description: XID of object
    AbstractEventDetectorModelObject:
      type: object
      discriminator:
        propertyName: detectorType
      properties:
        action:
          type: string
          description: Action to use for CSV import
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        data:
          $ref: "#/components/schemas/JsonNode"
        description:
          type: string
          description: Read only description of detector
        detectorType:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        handlerXids:
          type: array
          description: Xids for event handlers tied to this detector.  If supplied
            in the model it will replace any existing mappings.
          items:
            type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
          description: Original XID for use in CSV import
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        rtnApplicable:
          type: boolean
          description: Read only indication if this detector supports return to normal
        sourceId:
          type: integer
          format: int32
        sourceTypeName:
          type: string
        xid:
          type: string
          description: XID of object
    AbstractEventDetectorRTModelObject: {}
    AbstractEventHandlerModelAbstractEventHandlerVO:
      type: object
      description: Event Handler of update
      discriminator:
        propertyName: handlerType
      properties:
        disabled:
          type: boolean
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        eventTypes:
          type: array
          items:
            $ref: "#/components/schemas/EventTypeMatcherModel"
        handlerType:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AbstractEventHandlerModelObject:
      type: object
      discriminator:
        propertyName: handlerType
      properties:
        disabled:
          type: boolean
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        eventTypes:
          type: array
          items:
            $ref: "#/components/schemas/EventTypeMatcherModel"
        handlerType:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AbstractEventTypeModelObjectObjectObject:
      type: object
      properties:
        duplicateHandling:
          type: string
          enum:
          - DO_NOT_ALLOW
          - IGNORE
          - IGNORE_SAME_MESSAGE
          - ALLOW
        eventType:
          type: string
          description: Type of event
        reference1: {}
        reference2: {}
        referenceId1:
          type: integer
          format: int32
          description: ID used in event type/subtype combination
        referenceId2:
          type: integer
          format: int32
          description: ID used in event type/subtype combination
        subType:
          type: string
          description: Sub-type of event
    AbstractHttpReceiverDataModel:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        deviceId:
          type: string
        modelType:
          type: string
        remoteIp:
          type: string
        time:
          type: string
          format: date-time
    AbstractPointLocatorModelObject:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        configurationDescription:
          type: string
        dataType:
          type: string
        modelType:
          type: string
        relinquishable:
          type: boolean
        settable:
          type: boolean
    AbstractPublishedPointModelObject:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        action:
          type: string
          description: Action to use for CSV import
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        dataPointId:
          type: integer
          format: int32
        dataPointTags:
          type: object
          additionalProperties:
            type: string
          description: "Tags for source data point, including name and device tags"
        dataPointXid:
          type: string
        enabled:
          type: boolean
          description: Is the point enabled
        id:
          type: integer
          format: int32
          description: ID of object in database
        modelType:
          type: string
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
          description: Original XID for use in CSV import
        publisherXid:
          type: string
        xid:
          type: string
          description: XID of object
    AbstractPublishedPointModelPublishedPointVO:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        action:
          type: string
          description: Action to use for CSV import
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        dataPointId:
          type: integer
          format: int32
        dataPointTags:
          type: object
          additionalProperties:
            type: string
          description: "Tags for source data point, including name and device tags"
        dataPointXid:
          type: string
        enabled:
          type: boolean
          description: Is the point enabled
        id:
          type: integer
          format: int32
          description: ID of object in database
        modelType:
          type: string
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
          description: Original XID for use in CSV import
        publisherXid:
          type: string
        xid:
          type: string
          description: XID of object
    AbstractPublisherModelObjectObject:
      type: object
      discriminator:
        propertyName: modelType
      properties:
        cacheDiscardSize:
          type: integer
          format: int32
        cacheWarningSize:
          type: integer
          format: int32
        connectionDescription:
          type: string
          description: Read only description of publisher connection
        description:
          type: string
          description: Read only description of publisher type
        descriptionKey:
          type: string
        enabled:
          type: boolean
        eventAlarmLevels:
          type: array
          items:
            $ref: "#/components/schemas/EventTypeAlarmLevelModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        modelType:
          type: string
        name:
          type: string
          description: Name of object
        points:
          type: array
          items:
            $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        publishAttributeChanges:
          type: boolean
        publishPointEvents:
          type: boolean
        publishType:
          type: string
        revision:
          type: integer
          format: int32
        sendSnapshot:
          type: boolean
        snapshotSendPeriod:
          $ref: "#/components/schemas/TimePeriod"
        xid:
          type: string
          description: XID of object
    AbstractRestException:
      type: object
      properties:
        cause:
          type: string
        localizedMessage:
          type: string
        mangoStatusCode:
          type: integer
          format: int32
        mangoStatusName:
          type: string
    AccessControlActivityLogModel:
      type: object
      properties:
        boardXid:
          type: string
        cardNumber:
          type: string
        doorName:
          type: string
        doorNumber:
          type: string
        doorXid:
          type: string
        eventCode:
          type: string
        eventMessage:
          type: string
        eventTimestamp:
          type: integer
          format: int64
        id:
          type: integer
          format: int32
          description: ID of object in database
        mangoUserUsername:
          type: string
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        siteEnabled:
          type: boolean
        siteName:
          type: string
        siteNumber:
          type: string
        siteXid:
          type: string
        userCompany:
          type: string
        userName:
          type: string
        userXid:
          type: string
        xid:
          type: string
          description: XID of object
    AccessControlActivityLogQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlActivityLogModel"
        total:
          type: integer
          format: int32
    AccessControlBoardModel:
      type: object
      properties:
        boardNumber:
          type: string
        clientGuid:
          type: string
        dataSourceXid:
          type: string
        doorCount:
          type: integer
          format: int32
        enabled:
          type: boolean
        host:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        port:
          type: integer
          format: int32
        revision:
          type: integer
          format: int32
        siteName:
          type: string
        siteNumber:
          type: string
        siteXid:
          type: string
        xid:
          type: string
          description: XID of object
    AccessControlBoardQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlBoardModel"
        total:
          type: integer
          format: int32
    AccessControlCameraModel:
      type: object
      properties:
        cameraNumber:
          type: string
        cameraPassword:
          type: string
        cameraUsername:
          type: string
        clientGuid:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        host:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        originGuid:
          type: string
        params:
          $ref: "#/components/schemas/AccessControlCameraParametersModel"
        port:
          type: integer
          format: int32
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        recordingSyncTime:
          type: string
          format: date-time
        revision:
          type: integer
          format: int32
        siteEnabled:
          type: boolean
        siteName:
          type: string
        siteNumber:
          type: string
        siteXid:
          type: string
        uuid:
          type: string
        xid:
          type: string
          description: XID of object
    AccessControlCameraParametersModel:
      type: object
      properties:
        autoDiscovery:
          type: boolean
        blobCount:
          type: integer
          format: int32
        blobSize:
          type: integer
          format: int32
        frameRate:
          type: integer
          format: int32
        motionDetection:
          type: boolean
        quality:
          type: integer
          format: int32
        resolutionX:
          type: integer
          format: int32
        resolutionY:
          type: integer
          format: int32
        url:
          type: string
    AccessControlCameraQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlCameraModel"
        total:
          type: integer
          format: int32
    AccessControlCardModel:
      type: object
      properties:
        advancedSchedulerXid:
          type: string
        cardNumber:
          type: string
        enabled:
          type: boolean
        expirationDate:
          type: integer
          format: int64
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        userCompany:
          type: string
        userEnabled:
          type: boolean
        userName:
          type: string
        userXid:
          type: string
        xid:
          type: string
          description: XID of object
    AccessControlCardQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlCardModel"
        total:
          type: integer
          format: int32
    AccessControlDoorGroupModel:
      type: object
      properties:
        doorCount:
          type: integer
          format: int32
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AccessControlDoorGroupQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlDoorGroupModel"
        total:
          type: integer
          format: int32
    AccessControlDoorModel:
      type: object
      properties:
        boardName:
          type: string
        boardNumber:
          type: string
        boardXid:
          type: string
        clientGuid:
          type: string
        contactDataPointXid:
          type: string
        doorGroups:
          type: array
          items:
            type: string
        doorNumber:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        egressDataPointXid:
          type: string
        enabled:
          type: boolean
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        readerGroup:
          type: integer
          format: int32
        readerId:
          type: string
        revision:
          type: integer
          format: int32
        siteName:
          type: string
        siteNumber:
          type: string
        siteXid:
          type: string
        unlockPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        userCount:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AccessControlDoorQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlDoorModel"
        total:
          type: integer
          format: int32
    AccessControlSiteModel:
      type: object
      properties:
        boardCount:
          type: integer
          format: int32
        cameraCount:
          type: integer
          format: int32
        enabled:
          type: boolean
        guid:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
        name:
          type: string
          description: Name of object
        originGuid:
          type: string
        revision:
          type: integer
          format: int32
        siteNumber:
          type: string
        xid:
          type: string
          description: XID of object
    AccessControlSiteQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlSiteModel"
        total:
          type: integer
          format: int32
    AccessControlUserModel:
      type: object
      properties:
        cardCount:
          type: integer
          format: int32
        company:
          type: string
        doorCount:
          type: integer
          format: int32
        doorGroups:
          type: array
          items:
            type: string
        doors:
          type: array
          items:
            type: string
        email:
          type: string
        employeeId:
          type: integer
          format: int32
        enabled:
          type: boolean
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        organization:
          type: string
        phone:
          type: string
        pin:
          type: integer
          format: int32
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    AccessControlUserQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AccessControlUserModel"
        total:
          type: integer
          format: int32
    AccessControlVideoHistoryModel:
      type: object
      properties:
        cameraEnabled:
          type: boolean
        cameraName:
          type: string
        cameraNumber:
          type: string
        cameraXid:
          type: string
        duration:
          type: integer
          format: int64
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        siteEnabled:
          type: boolean
        siteName:
          type: string
        siteNumber:
          type: string
        siteXid:
          type: string
        timestamp:
          type: string
          format: date-time
        xid:
          type: string
          description: XID of object
    ActionAndModelDataPointModel:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        chartColour:
          type: string
        data:
          $ref: "#/components/schemas/JsonNode"
        dataSourceId:
          type: integer
          format: int32
        dataSourceName:
          type: string
        dataSourceTypeName:
          type: string
        dataSourceXid:
          type: string
        deviceName:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        extendedName:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        integralUnit:
          type: string
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        loggingProperties:
          $ref: "#/components/schemas/LoggingPropertiesModel"
        mergeTags:
          type: boolean
          writeOnly: true
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
        plotType:
          type: string
        pointLocator:
          $ref: "#/components/schemas/AbstractPointLocatorModelObject"
        preventSetExtremeValues:
          type: boolean
        purgeOverride:
          type: boolean
        purgePeriod:
          $ref: "#/components/schemas/TimePeriodModel"
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        renderedUnit:
          type: string
        revision:
          type: integer
          format: int32
        rollup:
          type: string
        setExtremeHighLimit:
          type: number
          format: double
        setExtremeLowLimit:
          type: number
          format: double
        setPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        simplifyType:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        textRenderer:
          $ref: "#/components/schemas/BaseTextRendererModelObject"
        unit:
          type: string
        useIntegralUnit:
          type: boolean
        useRenderedUnit:
          type: boolean
        xid:
          type: string
          description: XID of object
    ActionAndTags:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - SET
          - MERGE
          - UPDATE
        tags:
          type: object
          additionalProperties:
            type: string
        xid:
          type: string
    ActiveEventTypeModel:
      type: object
      properties:
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        description:
          type: string
    AlarmPointTagCountModel:
      type: object
      properties:
        active:
          type: boolean
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        count:
          type: integer
          format: int32
        deviceName:
          type: string
        latestActive:
          type: string
          format: date-time
        latestActiveDuration:
          type: integer
          format: int64
        latestRtn:
          type: string
          format: date-time
        message:
          type: string
        name:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        xid:
          type: string
    AlgorithmIdentifier:
      type: object
      properties:
        algorithm:
          $ref: "#/components/schemas/ASN1ObjectIdentifier"
        encoded:
          type: string
          format: byte
        parameters:
          $ref: "#/components/schemas/ASN1Encodable"
    AngularJSModuleDefinitionGroupModel:
      type: object
      properties:
        modules:
          type: array
          items:
            $ref: "#/components/schemas/ModuleInfo"
        urls:
          type: array
          items:
            type: string
    ApproveUsersModel:
      type: object
      properties:
        rolesToAdd:
          type: array
          items:
            type: string
        sendEmail:
          type: boolean
        usernames:
          type: array
          items:
            type: string
    ApprovedUsersModel:
      type: object
      properties:
        approvedUsers:
          type: array
          items:
            type: string
        failedUsers:
          type: object
          additionalProperties:
            type: string
    ArrayWithTotalStreamJsonNode:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    AsciiFileTestResultModel:
      type: object
      properties:
        error:
          type: string
        identifier:
          type: string
        pointName:
          type: string
        pointXid:
          type: string
        success:
          type: boolean
        timestamp:
          type: string
          format: date-time
        value: {}
    Attribute:
      type: object
      properties:
        attrType:
          $ref: "#/components/schemas/ASN1ObjectIdentifier"
        attrValues:
          $ref: "#/components/schemas/ASN1Set"
        attributeValues:
          type: array
          items:
            $ref: "#/components/schemas/ASN1Encodable"
        encoded:
          type: string
          format: byte
    AttributeTypeAndValue:
      type: object
      properties:
        encoded:
          type: string
          format: byte
        type:
          $ref: "#/components/schemas/ASN1ObjectIdentifier"
        value:
          $ref: "#/components/schemas/ASN1Encodable"
    AuditEventInstanceModel:
      type: object
      properties:
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        changeType:
          type: string
        context:
          type: string
        message:
          type: string
        objectId:
          type: integer
          format: int32
        timestamp:
          type: integer
          format: int64
        typeName:
          type: string
        userId:
          type: integer
          format: int32
        username:
          type: string
    AuditQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AuditEventInstanceModel"
        total:
          type: integer
          format: int32
    AuthorizedKeysEntry:
      type: object
      properties:
        algorithm:
          type: string
        comment:
          type: string
        publicKey:
          type: string
    BACnetBulkRequest:
      type: object
      properties:
        action: {}
        body:
          oneOf:
          - $ref: "#/components/schemas/BACnetDefaultRequest"
          - $ref: "#/components/schemas/BACnetReadPropertiesPathRequest"
          - $ref: "#/components/schemas/BACnetReadPropertiesRequest"
          - $ref: "#/components/schemas/BACnetRestWhoIsRequest"
          - $ref: "#/components/schemas/BACnetWritePropertiesPathRequest"
          - $ref: "#/components/schemas/BACnetWritePropertiesRequest"
          - $ref: "#/components/schemas/ReadObjectListRequest"
          - $ref: "#/components/schemas/ReadPropertyListRequest"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/BACnetIndividualRequest"
        timeout:
          type: integer
          format: int64
    BACnetBulkResponse:
      type: object
      properties:
        hasError:
          type: boolean
        responses:
          type: array
          items:
            $ref: "#/components/schemas/BACnetIndividualResponse"
    BACnetDefaultRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          type:
            type: string
            description: DEFAULT
    BACnetDeviceBean:
      type: object
      properties:
        instanceNumber:
          type: integer
          format: int32
        mac:
          type: string
        model:
          type: string
        name:
          type: string
        networkNumber:
          type: integer
          format: int32
        systemStatus:
          type: string
        vendor:
          type: string
    BACnetIndividualRequest:
      type: object
      properties:
        action: {}
        body:
          oneOf:
          - $ref: "#/components/schemas/BACnetDefaultRequest"
          - $ref: "#/components/schemas/BACnetReadPropertiesPathRequest"
          - $ref: "#/components/schemas/BACnetReadPropertiesRequest"
          - $ref: "#/components/schemas/BACnetRestWhoIsRequest"
          - $ref: "#/components/schemas/BACnetWritePropertiesPathRequest"
          - $ref: "#/components/schemas/BACnetWritePropertiesRequest"
          - $ref: "#/components/schemas/ReadObjectListRequest"
          - $ref: "#/components/schemas/ReadPropertyListRequest"
    BACnetIndividualResponse:
      type: object
      properties:
        action: {}
        body:
          $ref: "#/components/schemas/AbstractBACnetResponseModel"
        error:
          $ref: "#/components/schemas/AbstractRestException"
        httpStatus:
          type: integer
          format: int32
    BACnetPathModel:
      type: object
      properties:
        deviceId:
          type: integer
          format: int32
        instanceNumber:
          type: integer
          format: int32
        objectTypeId:
          type: integer
          format: int32
        objectTypeName:
          type: string
        propertyId:
          type: integer
          format: int32
        propertyIndex:
          type: integer
          format: int64
        propertyName:
          type: string
    BACnetPathWithValueModel:
      type: object
      properties:
        deviceId:
          type: integer
          format: int32
        instanceNumber:
          type: integer
          format: int32
        objectTypeId:
          type: integer
          format: int32
        objectTypeName:
          type: string
        propertyId:
          type: integer
          format: int32
        propertyIndex:
          type: integer
          format: int64
        propertyName:
          type: string
        value:
          $ref: "#/components/schemas/Encodable"
    BACnetReadPropertiesPathRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          devices:
            type: array
            items:
              $ref: "#/components/schemas/DeviceObjectsProperties"
          individualRequests:
            type: boolean
            description: "Make each request individually, otherwise attempt bulk reads\
              \ and use Mango BACnet property cache"
          paths:
            type: array
            items:
              $ref: "#/components/schemas/BACnetPathModel"
          type:
            type: string
            description: READ_PROPERTIES_PATHS
    BACnetReadPropertiesRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          devices:
            type: array
            items:
              $ref: "#/components/schemas/DeviceObjectsProperties"
          individualRequests:
            type: boolean
            description: "Make each request individually, otherwise attempt bulk reads\
              \ and use Mango BACnet property cache"
          paths:
            type: array
            items:
              $ref: "#/components/schemas/BACnetPathModel"
          type:
            type: string
            description: READ_PROPERTIES
    BACnetReadPropertiesResponse:
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: "#/components/schemas/DeviceObjectsPropertiesValues"
    BACnetRestWhoIsRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          listenDuration:
            type: integer
            format: int64
          type:
            type: string
            description: WHOIS
    BACnetRestWhoIsResponse:
      type: object
      properties:
        devices:
          type: array
          items:
            $ref: "#/components/schemas/BACnetDeviceBean"
        startTime:
          type: integer
          format: int64
    BACnetWritePropertiesPathRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          devices:
            type: array
            items:
              $ref: "#/components/schemas/DeviceObjectsPropertiesValues"
          paths:
            type: array
            items:
              $ref: "#/components/schemas/BACnetPathWithValueModel"
          type:
            type: string
            description: WRITE_PROPERTIES_PATHS
    BACnetWritePropertiesRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          devices:
            type: array
            items:
              $ref: "#/components/schemas/DeviceObjectsPropertiesValues"
          type:
            type: string
            description: WRITE_PROPERTIES
    BACnetWritePropertiesResponse:
      type: object
      properties:
        success:
          type: boolean
    BackgroundProcessingQueueCounts:
      type: object
      properties:
        highPriorityServiceQueueClassCounts:
          type: object
          additionalProperties:
            type: integer
            format: int32
        lowPriorityServiceQueueClassCounts:
          type: object
          additionalProperties:
            type: integer
            format: int32
        mediumPriorityServiceQueueClassCounts:
          type: object
          additionalProperties:
            type: integer
            format: int32
    BackgroundProcessingRejectedTaskStats:
      type: object
      properties:
        highPriorityRejectedTaskStats:
          type: array
          items:
            $ref: "#/components/schemas/RejectedTaskStats"
        mediumPriorityRejectedTaskStats:
          type: array
          items:
            $ref: "#/components/schemas/RejectedTaskStats"
    BackgroundProcessingRunningStats:
      type: object
      properties:
        highPriorityOrderedQueueStats:
          type: array
          items:
            $ref: "#/components/schemas/OrderedTaskInfo"
        mediumPriorityOrderedQueueStats:
          type: array
          items:
            $ref: "#/components/schemas/OrderedTaskInfo"
    BaseModbusConfigurationModel:
      type: object
      discriminator:
        propertyName: type
      properties:
        dataSourceXid:
          type: string
        type:
          type: string
    BaseTextRendererModelObject:
      type: object
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
    BulkResponse:
      type: object
      properties:
        hasError:
          type: boolean
        responses:
          type: array
          items:
            $ref: "#/components/schemas/IndividualResponseObjectObjectObject"
    CalendarRule:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    CalendarRuleSetModel:
      type: object
      properties:
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        rules:
          type: array
          items:
            oneOf:
            - $ref: "#/components/schemas/WildcardDateRangeRule1"
        xid:
          type: string
          description: XID of object
    CalendarRuleSetQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/CalendarRuleSetModel"
        total:
          type: integer
          format: int32
    CertificateAuthorityDetails:
      type: object
      properties:
        certificates:
          $ref: "#/components/schemas/CertificatesModel"
        name:
          type: string
        parameters:
          type: array
          items:
            $ref: "#/components/schemas/CertificateAuthorityParameterObject"
    CertificateAuthorityParameterObject:
      type: object
      properties:
        name:
          type: string
    CertificateModel:
      type: object
      properties:
        issuer:
          type: string
        notAfter:
          type: string
          format: date-time
        notBefore:
          type: string
          format: date-time
        pem:
          type: object
          properties:
            basicConstraints:
              type: integer
              format: int32
            criticalExtensionOIDs:
              type: array
              items:
                type: string
              uniqueItems: true
            encoded:
              type: string
              format: byte
            extendedKeyUsage:
              type: array
              items:
                type: string
            issuerAlternativeNames:
              type: array
              items:
                type: array
                items: {}
            issuerDN:
              type: object
              deprecated: true
              properties:
                name:
                  type: string
            issuerUniqueID:
              type: array
              items:
                type: boolean
            issuerX500Principal:
              type: object
              properties:
                encoded:
                  type: string
                  format: byte
                name:
                  type: string
            keyUsage:
              type: array
              items:
                type: boolean
            nonCriticalExtensionOIDs:
              type: array
              items:
                type: string
              uniqueItems: true
            notAfter:
              type: string
              format: date-time
            notBefore:
              type: string
              format: date-time
            publicKey:
              type: object
              properties:
                algorithm:
                  type: string
                encoded:
                  type: string
                  format: byte
                format:
                  type: string
                params: {}
            serialNumber:
              type: integer
            sigAlgName:
              type: string
            sigAlgOID:
              type: string
            sigAlgParams:
              type: string
              format: byte
            signature:
              type: string
              format: byte
            subjectAlternativeNames:
              type: array
              items:
                type: array
                items: {}
            subjectDN:
              type: object
              deprecated: true
              properties:
                name:
                  type: string
            subjectUniqueID:
              type: array
              items:
                type: boolean
            subjectX500Principal:
              type: object
              properties:
                encoded:
                  type: string
                  format: byte
                name:
                  type: string
            tbscertificate:
              type: string
              format: byte
            type:
              type: string
            version:
              type: integer
              format: int32
        serial:
          type: integer
        subject:
          type: string
        subjectAlternativeNames:
          type: array
          items:
            type: string
    CertificatesModel:
      type: object
      properties:
        certificateChain:
          type: array
          items:
            $ref: "#/components/schemas/CertificateModel"
        rootCertificate:
          $ref: "#/components/schemas/CertificateModel"
    ClearCacheResult:
      type: object
      properties:
        discardCount:
          type: integer
          format: int64
    ClientConnectionStatus:
      type: object
      properties:
        authenticated:
          type: boolean
        connectionAttempts:
          type: integer
          format: int32
        connectionError:
          type: string
        host:
          type: string
        open:
          type: boolean
        port:
          type: integer
          format: int32
        serverInfo:
          $ref: "#/components/schemas/ServerInfo"
    ClientError:
      type: object
      properties:
        cause:
          type: string
        date:
          type: string
        language:
          type: string
        location:
          type: string
        message:
          type: string
        stackTrace:
          type: array
          items:
            $ref: "#/components/schemas/StackFrame"
        timezone:
          type: string
        userAgent:
          type: string
    ClientInfoModel:
      type: object
      properties:
        authenticated:
          type: boolean
        clientVersion:
          type: string
        connected:
          type: boolean
        coreVersion:
          type: string
        dateConnected:
          type: string
          format: date-time
        dateDisconnected:
          type: string
          format: date-time
        forwardedPorts:
          type: array
          items:
            $ref: "#/components/schemas/ForwardedPort"
        guid:
          type: string
        id:
          type: string
        instanceDescription:
          type: string
        ipAddress:
          type: string
        moduleVersion:
          type: string
        port:
          type: integer
          format: int32
        proxyAddress:
          type: string
        proxyHost:
          type: string
        proxyPort:
          type: integer
          format: int32
        url:
          type: string
    CompiledTemplateModel:
      type: object
      properties:
        baseClassName:
          type: string
        className:
          type: string
        fileName:
          type: string
        fileType:
          type: string
          enum:
          - CSV
          - BINARY
          - EXCEL
          - EXCEL_WORKBOOK
          - XML
          - POLL
        fullClassName:
          type: string
        packageName:
          type: string
    CompiledTemplatesModel:
      type: object
      properties:
        compilerOutput:
          type: string
        success:
          type: boolean
    CorsSettings:
      type: object
      properties:
        enabled:
          type: boolean
        headers:
          type: object
          additionalProperties:
            type: string
    CountDataPointEventsQuery:
      type: object
      properties:
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    CreateTokenRequest:
      type: object
      properties:
        expiry:
          type: string
          format: date-time
        lockPassword:
          type: boolean
        sendEmail:
          type: boolean
        username:
          type: string
    CreateTokenResponse:
      type: object
      properties:
        fullUrl:
          type: string
          format: uri
        relativeUrl:
          type: string
          format: uri
        token:
          type: string
    CredentialsModel:
      type: object
      description: User Credentials
      properties:
        password:
          type: string
        username:
          type: string
    CsrResponse:
      type: object
      properties:
        csr:
          $ref: "#/components/schemas/PKCS10CertificationRequest"
        subject:
          type: string
    DataFileImportResult:
      type: object
      properties:
        createdPoints:
          type: array
          items:
            type: string
        errors:
          type: array
          items:
            type: string
        failedFiles:
          type: object
          additionalProperties:
            type: string
        failedPoints:
          type: object
          additionalProperties:
            type: string
        totalImported:
          type: integer
          format: int32
        unfoundIdentifiers:
          type: array
          items:
            type: string
          uniqueItems: true
    DataFileImportStatus:
      type: object
      properties:
        cancelled:
          type: boolean
        createdPoints:
          type: array
          items:
            type: string
        errors:
          type: array
          items:
            type: string
        expires:
          type: integer
          format: int64
        failedPoints:
          type: array
          items:
            type: string
        finished:
          type: boolean
        priority:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        queueSize:
          type: integer
          format: int32
        resourceId:
          type: string
        taskId:
          type: string
        threadName:
          type: string
        totalImported:
          type: integer
          format: int32
        unfoundIdentifiers:
          type: array
          items:
            type: string
          uniqueItems: true
    DataPointBulkRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/DataPointModel"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/DataPointIndividualRequest"
        timeout:
          type: integer
          format: int64
    DataPointCSVResponse:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        chartColour:
          type: string
        data:
          $ref: "#/components/schemas/JsonNode"
        dataSourceId:
          type: integer
          format: int32
        dataSourceName:
          type: string
        dataSourceTypeName:
          type: string
        dataSourceXid:
          type: string
        deviceName:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        extendedName:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        integralUnit:
          type: string
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        loggingProperties:
          $ref: "#/components/schemas/LoggingPropertiesModel"
        mergeTags:
          type: boolean
          writeOnly: true
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
        plotType:
          type: string
        pointLocator:
          $ref: "#/components/schemas/AbstractPointLocatorModelObject"
        preventSetExtremeValues:
          type: boolean
        purgeOverride:
          type: boolean
        purgePeriod:
          $ref: "#/components/schemas/TimePeriodModel"
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        renderedUnit:
          type: string
        revision:
          type: integer
          format: int32
        rollup:
          type: string
        setExtremeHighLimit:
          type: number
          format: double
        setExtremeLowLimit:
          type: number
          format: double
        setPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        simplifyType:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        textRenderer:
          $ref: "#/components/schemas/BaseTextRendererModelObject"
        unit:
          type: string
        useIntegralUnit:
          type: boolean
        useRenderedUnit:
          type: boolean
        xid:
          type: string
          description: XID of object
    DataPointEventSummaryModel:
      type: object
      properties:
        counts:
          type: object
          additionalProperties:
            type: integer
            format: int32
        xid:
          type: string
    DataPointIndividualRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/DataPointModel"
        xid:
          type: string
    DataPointModel:
      type: object
      properties:
        chartColour:
          type: string
        data:
          $ref: "#/components/schemas/JsonNode"
        dataSourceId:
          type: integer
          format: int32
        dataSourceName:
          type: string
        dataSourceTypeName:
          type: string
        dataSourceXid:
          type: string
        deviceName:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        extendedName:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        integralUnit:
          type: string
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        loggingProperties:
          $ref: "#/components/schemas/LoggingPropertiesModel"
        mergeTags:
          type: boolean
          writeOnly: true
        name:
          type: string
          description: Name of object
        plotType:
          type: string
        pointLocator:
          $ref: "#/components/schemas/AbstractPointLocatorModelObject"
        preventSetExtremeValues:
          type: boolean
        purgeOverride:
          type: boolean
        purgePeriod:
          $ref: "#/components/schemas/TimePeriodModel"
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        renderedUnit:
          type: string
        revision:
          type: integer
          format: int32
        rollup:
          type: string
        setExtremeHighLimit:
          type: number
          format: double
        setExtremeLowLimit:
          type: number
          format: double
        setPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        simplifyType:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        textRenderer:
          $ref: "#/components/schemas/BaseTextRendererModelObject"
        unit:
          type: string
        useIntegralUnit:
          type: boolean
        useRenderedUnit:
          type: boolean
        xid:
          type: string
          description: XID of object
    DataPointQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/DataPointModel"
        total:
          type: integer
          format: int32
    DataSourceDefaultEventTypeModel:
      type: object
      properties:
        code:
          type: string
        defaultAlarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        description:
          type: string
        descriptionKey:
          type: string
        referenceId2:
          type: integer
          format: int32
    DataSourceQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AbstractDataSourceModelObject"
        total:
          type: integer
          format: int32
    DataSourceWithPointsExport:
      type: object
      properties:
        dataPoints:
          $ref: "#/components/schemas/JsonStreamedArray"
        dataSources:
          $ref: "#/components/schemas/JsonStreamedArray"
    DeviceObjectsProperties:
      type: object
      properties:
        objects:
          type: array
          items:
            $ref: "#/components/schemas/ObjectPropertyReferences"
        remoteDeviceNumber:
          type: integer
          format: int32
    DeviceObjectsPropertiesValues:
      type: object
      properties:
        objects:
          type: array
          items:
            $ref: "#/components/schemas/ObjectPropertiesValues"
        remoteDeviceNumber:
          type: integer
          format: int32
    EgaugeQueryModel:
      type: object
      properties:
        offsetPeriod:
          $ref: "#/components/schemas/TimePeriod"
        readLimit:
          type: integer
          format: int32
        sequential:
          type: boolean
        timePeriod:
          $ref: "#/components/schemas/TimePeriod"
    EmailContentModel:
      type: object
      properties:
        encoding:
          type: string
        htmlContent:
          type: string
        plainContent:
          type: string
        subject:
          type: string
    EmailRecipientModel:
      discriminator:
        propertyName: recipientType
      properties:
        recipientType:
          type: string
      required:
      - recipientType
    EmailVerificationRequest:
      type: object
      properties:
        emailAddress:
          type: string
        username:
          type: string
    Encodable: {}
    EventCountQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AlarmPointTagCountModel"
        total:
          type: integer
          format: int32
    EventDetectorBulkRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/AbstractEventDetectorModelAbstractEventDetectorVO"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/EventDetectorIndividualRequest"
        timeout:
          type: integer
          format: int64
    EventDetectorBulkResponse:
      type: object
      properties:
        hasError:
          type: boolean
        responses:
          type: array
          items:
            $ref: "#/components/schemas/EventDetectorIndividualResponse"
    EventDetectorIndividualRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/AbstractEventDetectorModelAbstractEventDetectorVO"
        xid:
          type: string
    EventDetectorIndividualResponse:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/AbstractEventDetectorModelObject"
        error:
          $ref: "#/components/schemas/AbstractRestException"
        httpStatus:
          type: integer
          format: int32
        xid:
          type: string
    EventDetectorQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AbstractEventDetectorModelObject"
        total:
          type: integer
          format: int32
    EventHandlerQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AbstractEventHandlerModelObject"
        total:
          type: integer
          format: int32
    EventInstanceModel:
      type: object
      properties:
        acknowledged:
          type: boolean
        acknowledgedByUserId:
          type: integer
          format: int32
        acknowledgedByUsername:
          type: string
        acknowledgedDate:
          type: string
          format: date-time
        acknowledgedTimestamp:
          type: integer
          format: int64
        active:
          type: boolean
        activeDate:
          type: string
          format: date-time
        activeTimestamp:
          type: integer
          format: int64
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        alternateAckSource:
          type: string
        comments:
          type: array
          items:
            $ref: "#/components/schemas/UserCommentModel"
        eventType:
          $ref: "#/components/schemas/AbstractEventTypeModelObjectObjectObject"
        id:
          type: integer
          format: int32
        message:
          type: string
        rtnApplicable:
          type: boolean
        rtnCause:
          type: string
          enum:
          - RETURN_TO_NORMAL
          - SOURCE_DISABLED
        rtnDate:
          type: string
          format: date-time
        rtnMessage:
          type: string
        rtnTimestamp:
          type: integer
          format: int64
    EventInstanceReducedModel:
      type: object
      properties:
        acknowledged:
          type: boolean
        acknowledgedByUserId:
          type: integer
          format: int32
        acknowledgedByUsername:
          type: string
        acknowledgedDate:
          type: string
          format: date-time
        acknowledgedTimestamp:
          type: integer
          format: int64
        active:
          type: boolean
        activeDate:
          type: string
          format: date-time
        activeTimestamp:
          type: integer
          format: int64
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        alternateAckSource:
          type: string
        dataPointTags:
          type: object
          additionalProperties:
            type: string
        id:
          type: integer
          format: int32
        message:
          type: string
        rtnApplicable:
          type: boolean
        rtnCause:
          type: string
          enum:
          - RETURN_TO_NORMAL
          - SOURCE_DISABLED
        rtnDate:
          type: string
          format: date-time
        rtnMessage:
          type: string
        rtnTimestamp:
          type: integer
          format: int64
    EventInstanceReducedQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/EventInstanceReducedModel"
        total:
          type: integer
          format: int32
    EventLevelSummaryModel:
      type: object
      properties:
        count:
          type: integer
          format: int32
        latest:
          $ref: "#/components/schemas/EventInstanceModel"
        level:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
    EventQueryByMaintenanceCriteria:
      type: object
      properties:
        active:
          type: boolean
          description: If present will query events for this active state
        dataPointXids:
          type: array
          description: "xids of data points linked to maintenance events, one of points\
            \ or sources required"
          items:
            type: string
        dataSourceXids:
          type: array
          description: "xids of data sources linked to maintenance events, one of\
            \ points or sources required"
          items:
            type: string
        limit:
          type: integer
          format: int32
          description: Limit the event query results
        order:
          type: string
          description: "Order the event query results one of [asc,desc,null]"
    EventQueryByMaintenanceEventRql:
      type: object
      properties:
        active:
          type: boolean
          description: If present will query events for this active state
        limit:
          type: integer
          format: int32
          description: Limit the event query results
        maintenanceEventsRql:
          type: string
          description: RQL to query for Maintenance events
        order:
          type: string
          description: "Order the event query results one of [asc,desc,null]"
    EventQueryBySourceType:
      type: object
      properties:
        eventsRql:
          type: string
          description: RQL to query events
        sourceRql:
          type: string
          description: RQL to query for sources to filter event query
        sourceType:
          type: string
          description: "Source type, valid options: DATA_POINT, DATA_SOURCE"
    EventQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/EventInstanceModel"
        total:
          type: integer
          format: int32
    EventRangeModel:
      type: object
      properties:
        level:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        namedRange:
          type: string
    EventTypeAlarmLevelModel:
      type: object
      properties:
        description:
          type: string
          description: Description of this event
        descriptionKey:
          type: string
        duplicateHandling:
          type: string
          description: How are duplicate events handled in order
          enum:
          - DO_NOT_ALLOW
          - IGNORE
          - IGNORE_SAME_MESSAGE
          - ALLOW
        eventType:
          type: string
          description: Sub-type of DATA_SOURCE type event
        level:
          type: string
          description: Alarm level to raise alarm
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
    EventTypeInfo:
      type: object
      properties:
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        description:
          type: string
        subtype:
          type: string
        type:
          type: string
    EventTypeMatcherModel:
      type: object
      properties:
        eventType:
          type: string
        referenceId1:
          type: integer
          format: int32
        referenceId2:
          type: integer
          format: int32
        subType:
          type: string
    ExcelFileMeta:
      type: object
      properties:
        fileStoreName:
          type: string
          writeOnly: true
        name:
          type: string
        namedRanges:
          type: array
          items:
            type: string
          uniqueItems: true
        size:
          type: integer
          format: int64
        url:
          type: string
    ExcelReportModel:
      type: object
      properties:
        errorMessage:
          type: string
        filename:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        preventPurge:
          type: boolean
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        recordCount:
          type: integer
          format: int32
        reportRunDuration:
          type: integer
          format: int64
        reportRunTimestamp:
          type: string
          format: date-time
        revision:
          type: integer
          format: int32
        state:
          type: string
        templateXid:
          type: string
        timeSeries:
          type: array
          items:
            $ref: "#/components/schemas/TimeSeriesModel"
        xid:
          type: string
          description: XID of object
    ExcelReportQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/ExcelReportModel"
        total:
          type: integer
          format: int32
    ExcelReportTemplateModel:
      type: object
      properties:
        allNamedRanges:
          type: array
          items:
            type: string
          uniqueItems: true
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        email:
          type: boolean
        emailModelScript:
          type: string
        emailTemplateFilename:
          type: string
        fileStoreName:
          type: string
        filename:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        postProcessingScript:
          type: string
        preventPurge:
          type: boolean
        recipients:
          type: array
          items:
            oneOf:
            - $ref: "#/components/schemas/ADDRESS"
            - $ref: "#/components/schemas/MailingListEntryModel"
            - $ref: "#/components/schemas/PHONE_NUMBER"
            - $ref: "#/components/schemas/USER"
            - $ref: "#/components/schemas/USER_PHONE_NUMBER"
        reportExecutionRoles:
          type: array
          items:
            type: string
          uniqueItems: true
        reportReadPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        schedule:
          type: boolean
        scheduleCron:
          type: string
        timeSeries:
          type: array
          items:
            $ref: "#/components/schemas/TimeSeriesModel"
        xid:
          type: string
          description: XID of object
        zipData:
          type: boolean
    ExcelReportTemplateQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/ExcelReportTemplateModel"
        total:
          type: integer
          format: int32
    ExceptionModel:
      type: object
      properties:
        ruleSet:
          $ref: "#/components/schemas/CalendarRuleSetModel"
        schedule:
          type: array
          items:
            type: string
    ExtendedDataPointBulkRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/DataPointModel"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/ExtendedDataPointIndividualRequest"
        timeout:
          type: integer
          format: int64
    ExtendedDataPointIndividualRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/DataPointModel"
        events:
          $ref: "#/components/schemas/EventDetectorBulkRequest"
        xid:
          type: string
    ExtendedDataPointModel:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        chartColour:
          type: string
        data:
          $ref: "#/components/schemas/JsonNode"
        dataSourceId:
          type: integer
          format: int32
        dataSourceName:
          type: string
        dataSourceTypeName:
          type: string
        dataSourceXid:
          type: string
        detectors:
          type: array
          description: Detectors for this point
          items:
            $ref: "#/components/schemas/AbstractEventDetectorModelObject"
        deviceName:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        extendedName:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        integralUnit:
          type: string
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        loggingProperties:
          $ref: "#/components/schemas/LoggingPropertiesModel"
        mergeTags:
          type: boolean
          writeOnly: true
        name:
          type: string
          description: Name of object
        originalXid:
          type: string
        plotType:
          type: string
        pointLocator:
          $ref: "#/components/schemas/AbstractPointLocatorModelObject"
        preventSetExtremeValues:
          type: boolean
        publishedPoints:
          type: array
          description: Published points for this point
          items:
            $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        purgeOverride:
          type: boolean
        purgePeriod:
          $ref: "#/components/schemas/TimePeriodModel"
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        renderedUnit:
          type: string
        revision:
          type: integer
          format: int32
        rollup:
          type: string
        setExtremeHighLimit:
          type: number
          format: double
        setExtremeLowLimit:
          type: number
          format: double
        setPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        simplifyType:
          type: string
        tags:
          type: object
          additionalProperties:
            type: string
        textRenderer:
          $ref: "#/components/schemas/BaseTextRendererModelObject"
        unit:
          type: string
        useIntegralUnit:
          type: boolean
        useRenderedUnit:
          type: boolean
        xid:
          type: string
          description: XID of object
    Extensions:
      type: object
      properties:
        criticalExtensionOIDs:
          type: array
          items:
            $ref: "#/components/schemas/ASN1ObjectIdentifier"
        encoded:
          type: string
          format: byte
        extensionOIDs:
          type: array
          items:
            $ref: "#/components/schemas/ASN1ObjectIdentifier"
        nonCriticalExtensionOIDs:
          type: array
          items:
            $ref: "#/components/schemas/ASN1ObjectIdentifier"
    FileModel:
      type: object
      properties:
        directory:
          type: boolean
        fileStoreXid:
          type: string
        filename:
          type: string
        folderPath:
          type: string
        lastModified:
          type: string
          format: date-time
        mimeType:
          type: string
        relativePath:
          type: string
        size:
          type: integer
          format: int64
    FileStoreModel:
      type: object
      description: File store to create
      properties:
        builtIn:
          type: boolean
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        writePermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        xid:
          type: string
          description: XID of object
    FilterProvider: {}
    FlowableResponseBody: {}
    ForeignDeviceRegistrationModel:
      type: object
      description: BBMD Settings
      properties:
        bbmdHost:
          type: string
        bbmdPort:
          type: integer
          format: int32
        timeToLiveSeconds:
          type: integer
          format: int32
    ForwardedPort:
      type: object
      properties:
        localAddress:
          $ref: "#/components/schemas/SshdSocketAddress"
        name:
          type: string
        remoteAddress:
          $ref: "#/components/schemas/SshdSocketAddress"
    GenericReadModel:
      type: object
      properties:
        bit:
          type: integer
          format: int32
        characterSet:
          type: string
        configuration:
          oneOf:
          - $ref: "#/components/schemas/ModbusIpConfigurationModel"
          - $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        data:
          type: array
          items:
            type: integer
            format: int32
        dataType:
          type: string
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        registersPerValue:
          type: integer
          format: int32
        slaveId:
          type: integer
          format: int32
        values:
          type: array
          items: {}
    GenericReadWriteModel:
      type: object
      properties:
        bit:
          type: integer
          format: int32
        characterSet:
          type: string
        configuration:
          oneOf:
          - $ref: "#/components/schemas/ModbusIpConfigurationModel"
          - $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        data:
          type: array
          items:
            type: integer
            format: int32
        dataType:
          type: string
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        registersPerValue:
          type: integer
          format: int32
        slaveId:
          type: integer
          format: int32
        values:
          type: array
          items: {}
    GenericWriteModel:
      type: object
      properties:
        bit:
          type: integer
          format: int32
        characterSet:
          type: string
        configuration:
          oneOf:
          - $ref: "#/components/schemas/ModbusIpConfigurationModel"
          - $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        data:
          type: array
          items:
            type: integer
            format: int32
        dataType:
          type: string
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        registersPerValue:
          type: integer
          format: int32
        slaveId:
          type: integer
          format: int32
        values:
          type: array
          items: {}
    GlobalScriptModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        script:
          type: string
        xid:
          type: string
          description: XID of object
    GlobalScriptQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/GlobalScriptModel"
        total:
          type: integer
          format: int32
    GrpcDataSourceStatusModel:
      type: object
      properties:
        monitors:
          type: array
          items:
            $ref: "#/components/schemas/ValueMonitorModel"
        state:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        xid:
          type: string
    GrpcPublisherStatusModel:
      type: object
      properties:
        monitors:
          type: array
          items:
            $ref: "#/components/schemas/ValueMonitorModel"
        republishStatus:
          $ref: "#/components/schemas/RepublishStatus"
        stateMessage:
          type: string
        xid:
          type: string
    HaystackHistoryImportResult:
      type: object
      properties:
        description:
          type: string
        errors:
          type: array
          items:
            type: string
        expires:
          type: integer
          format: int64
        finished:
          type: boolean
        rejected:
          type: boolean
        resourceId:
          type: string
        results:
          type: array
          items:
            $ref: "#/components/schemas/HaystackPointHistoryImportResult"
        running:
          type: boolean
        threadName:
          type: string
    HaystackIdMappingModel:
      type: object
      properties:
        haystackId:
          type: string
        pointXid:
          type: string
    HaystackPointHistoryImportResult:
      type: object
      properties:
        error:
          type: array
          items:
            type: string
          writeOnly: true
        errors:
          type: array
          items:
            type: string
        imported:
          type: integer
          format: int64
        pointXid:
          type: string
    HeaderClaimsModel:
      type: object
      properties:
        body:
          type: object
          additionalProperties: {}
        header:
          type: object
          additionalProperties: {}
    HttpJsonRetrieverParameters:
      type: object
      properties:
        dataType:
          type: string
          enum:
          - BINARY
          - MULTISTATE
          - NUMERIC
          - ALPHANUMERIC
        retries:
          type: integer
          format: int32
        timeoutSeconds:
          type: integer
          format: int32
        url:
          type: string
        valueFormat:
          type: string
        valuePointer:
          type: string
    HttpJsonRetrieverTimestamp:
      type: object
      properties:
        retries:
          type: integer
          format: int32
        timeFormat:
          type: string
        timePointer:
          type: string
        timeoutSeconds:
          type: integer
          format: int32
        url:
          type: string
    HttpListenerModel:
      type: object
      properties:
        deviceIdWhiteList:
          type: array
          items:
            type: string
        ipWhiteList:
          type: array
          items:
            type: string
        retainedMessageCount:
          type: integer
          format: int32
    HttpReceiverListenerResultModel:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: "#/components/schemas/AbstractHttpReceiverDataModel"
        whiteListErrors:
          type: array
          items:
            type: string
    HttpRetrieverParameters:
      type: object
      properties:
        dataType:
          type: string
          enum:
          - BINARY
          - MULTISTATE
          - NUMERIC
          - ALPHANUMERIC
        pointName:
          type: string
        retries:
          type: integer
          format: int32
        textRenderer:
          $ref: "#/components/schemas/BaseTextRendererModelObject"
        timeoutSeconds:
          type: integer
          format: int32
        url:
          type: string
        valueFormat:
          type: string
        valueGroup:
          type: integer
          format: int32
        valueRegex:
          type: string
    HttpRetrieverTimestamp:
      type: object
      properties:
        retries:
          type: integer
          format: int32
        timeFormat:
          type: string
        timeGroup:
          type: integer
          format: int32
        timeRegex:
          type: string
        timeoutSeconds:
          type: integer
          format: int32
        url:
          type: string
    ImportStatusProvider:
      type: object
      properties:
        expires:
          type: integer
          format: int64
        finish:
          type: string
          format: date-time
        genericMessages:
          type: array
          items:
            type: string
        owner:
          type: string
        progress:
          type: number
          format: float
        queueSize:
          type: integer
          format: int32
        resourceId:
          type: string
        start:
          type: string
          format: date-time
        state:
          type: string
          enum:
          - RUNNING
          - CANCELLED
          - COMPLETED
          - REJECTED
        taskId:
          type: string
        threadName:
          type: string
        validationMessages:
          type: array
          items:
            $ref: "#/components/schemas/RestValidationMessage"
    IndividualResponseObjectObjectObject:
      type: object
      properties:
        action: {}
        body: {}
        error: {}
        httpStatus:
          type: integer
          format: int32
    InstallCertificateRequest:
      type: object
      properties:
        chain:
          type: string
        installRootCertificate:
          type: boolean
    InterfaceAddressVO:
      type: object
      properties:
        address:
          type: string
        ipv6:
          type: boolean
        networkPrefixLength:
          type: integer
          format: int32
        subnetMask:
          type: string
    InterfaceSettingsVO:
      type: object
      description: Interface settings
      properties:
        addresses:
          type: array
          items:
            $ref: "#/components/schemas/InterfaceAddressVO"
        description:
          type: string
        hardwareAddress:
          type: string
        ipv4AddressingType:
          type: string
        ipv4DnsSearch:
          type: array
          items:
            type: string
        ipv4DnsServers:
          type: array
          items:
            type: string
        ipv4Gateway:
          type: string
        ipv6AddressingType:
          type: string
        ipv6DnsSearch:
          type: array
          items:
            type: string
        ipv6DnsServers:
          type: array
          items:
            type: string
        ipv6Gateway:
          type: string
        name:
          type: string
    InvalidModule:
      type: object
      properties:
        cause:
          type: string
        name:
          type: string
    IpLocalDeviceConfigModel:
      allOf:
      - $ref: "#/components/schemas/LocalDeviceConfigModel"
      - type: object
        properties:
          broadcastAddress:
            type: string
          foreignBBMDAddress:
            type: string
          foreignBBMDPort:
            type: integer
            format: int32
          foreignBBMDTimeToLive:
            type: integer
            format: int32
          localBindAddress:
            type: string
          port:
            type: integer
            format: int32
          reuseAddress:
            type: boolean
          subnet:
            type: integer
            format: int32
    IssueRequest:
      type: object
      properties:
        csr:
          $ref: "#/components/schemas/PKCS10CertificationRequest"
        parameters:
          type: object
          additionalProperties: {}
    JSONStreamedArray: {}
    JsonDataModel:
      type: object
      properties:
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        jsonData:
          $ref: "#/components/schemas/JsonNode"
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    JsonEmportControlModel:
      type: object
      properties:
        cancel:
          type: boolean
        resourceId:
          type: string
    JsonNode: {}
    JsonStreamedArray: {}
    JsonValue: {}
    KnownHostsEntry:
      type: object
      properties:
        algorithm:
          type: string
        comment:
          type: string
        hostname:
          type: string
        publicKey:
          type: string
    LegacyPointValueTimeModel:
      type: object
      properties:
        annotation:
          type: string
        dataType:
          type: string
          enum:
          - BINARY
          - MULTISTATE
          - NUMERIC
          - ALPHANUMERIC
        timestamp:
          type: integer
          format: int64
        value: {}
    LegacyXidPointValueTimeModel:
      type: object
      properties:
        annotation:
          type: string
        dataType:
          type: string
          enum:
          - BINARY
          - MULTISTATE
          - NUMERIC
          - ALPHANUMERIC
        timestamp:
          type: integer
          format: int64
        value: {}
        xid:
          type: string
    LineProtocolDataSourceStatus:
      type: object
      properties:
        dataPointCacheSize:
          type: integer
          format: int32
        dataPointValidationCacheSize:
          type: integer
          format: int32
        dataPointsCreatedPerMinute:
          type: integer
          format: int32
        linesPerSecond:
          type: integer
          format: int32
        requestsProcessedPerSecond:
          type: integer
          format: int32
        threadCorePoolSize:
          type: integer
          format: int32
        threadMaxPoolSize:
          type: integer
          format: int32
        threadPoolSize:
          type: integer
          format: int32
        threadQueueSize:
          type: integer
          format: int32
        totalRejectedLines:
          type: integer
          format: int64
    LinkedAccountModel:
      discriminator:
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
    LocalDeviceConfig:
      type: object
      properties:
        baudRate:
          type: integer
          format: int32
        broadcastAddress:
          type: string
        commPortId:
          type: string
        configProgramLocation:
          type: string
        description:
          type: string
        deviceId:
          type: integer
          format: int32
        deviceName:
          type: string
        driverFileLocation:
          type: string
        foreignBBMDAddress:
          type: string
        foreignBBMDPort:
          type: integer
          format: int32
        foreignBBMDTimeToLive:
          type: integer
          format: int32
        id:
          type: string
        localBindAddress:
          type: string
        localNetworkNumber:
          type: integer
          format: int32
        maxInfoFrames:
          type: integer
          format: int32
        maxMaster:
          type: integer
          format: int32
        port:
          type: integer
          format: int32
        responseTimeoutMs:
          type: integer
          format: int32
        retries:
          type: integer
          format: int32
        retryCount:
          type: integer
          format: int32
        reuseAddress:
          type: boolean
        segTimeout:
          type: integer
          format: int32
        segWindow:
          type: integer
          format: int32
        sendDelay:
          type: integer
          format: int32
        subnet:
          type: integer
          format: int32
        thisStation:
          type: integer
          format: int32
        timeout:
          type: integer
          format: int32
        type:
          type: string
          enum:
          - ip
          - mstp
          - test
        usageTimeout:
          type: integer
          format: int32
        useRealtime:
          type: boolean
    LocalDeviceConfigModel:
      type: object
      discriminator:
        propertyName: type
      properties:
        configProperties:
          $ref: "#/components/schemas/LocalDeviceConfig"
          writeOnly: true
        deviceId:
          type: integer
          format: int32
        deviceName:
          type: string
        id:
          type: string
        localNetworkNumber:
          type: integer
          format: int32
        retries:
          type: integer
          format: int32
        segTimeout:
          type: integer
          format: int32
        segWindow:
          type: integer
          format: int32
        timeout:
          type: integer
          format: int32
        type:
          type: string
    Log4JUtilModel:
      type: object
      properties:
        action:
          type: string
          enum:
          - RESET
          - TEST_DEBUG
          - TEST_INFO
          - TEST_WARN
          - TEST_ERROR
          - TEST_FATAL
        expiration:
          type: integer
          format: int64
        timeout:
          type: integer
          format: int64
    Log4JUtilResult:
      type: object
      properties:
        logOutput:
          type: string
    Log4jPointLocatorRegexValidationModel:
      type: object
      properties:
        match:
          type: string
        regex:
          type: string
    LoggingPropertiesModel:
      type: object
      properties:
        cacheSize:
          type: integer
          format: int32
        discardExtremeValues:
          type: boolean
        discardHighLimit:
          type: number
          format: double
        discardLowLimit:
          type: number
          format: double
        intervalLoggingPeriod:
          $ref: "#/components/schemas/TimePeriodModel"
        intervalLoggingSampleWindowSize:
          type: integer
          format: int32
        intervalLoggingType:
          type: string
        loggingType:
          type: string
        overrideIntervalLoggingSamples:
          type: boolean
        tolerance:
          type: number
          format: double
    MailingListEntryModel:
      allOf:
      - $ref: "#/components/schemas/EmailRecipientModel"
      - type: object
        properties:
          name:
            type: string
          xid:
            type: string
    MailingListModel:
      type: object
      properties:
        editPermissions:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        inactiveSchedule:
          type: array
          items:
            type: array
            items:
              type: string
        name:
          type: string
          description: Name of object
        readPermissions:
          $ref: "#/components/schemas/MangoPermissionModel"
        receiveAlarmEmails:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    MailingListQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/MailingListModel"
        total:
          type: integer
          format: int32
    MailingListWithRecipientsModel:
      type: object
      description: Mailing List of update
      properties:
        editPermissions:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        inactiveSchedule:
          type: array
          items:
            type: array
            items:
              type: string
        name:
          type: string
          description: Name of object
        readPermissions:
          $ref: "#/components/schemas/MangoPermissionModel"
        receiveAlarmEmails:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        recipients:
          type: array
          description: recipients are only shown for Users with read permissions for
            the mailing list
          items:
            oneOf:
            - $ref: "#/components/schemas/ADDRESS"
            - $ref: "#/components/schemas/MailingListEntryModel"
            - $ref: "#/components/schemas/PHONE_NUMBER"
            - $ref: "#/components/schemas/USER"
            - $ref: "#/components/schemas/USER_PHONE_NUMBER"
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    MaintenanceEventModel:
      type: object
      properties:
        activeCron:
          type: string
        activeDay:
          type: integer
          format: int32
        activeHour:
          type: integer
          format: int32
        activeMinute:
          type: integer
          format: int32
        activeMonth:
          type: integer
          format: int32
        activeSecond:
          type: integer
          format: int32
        activeYear:
          type: integer
          format: int32
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        autoAcknowledge:
          type: boolean
        autoAcknowledgeMessage:
          type: string
        dataPoints:
          type: array
          items:
            type: string
        dataSources:
          type: array
          items:
            type: string
        disabled:
          type: boolean
        dropEvent:
          type: boolean
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        inactiveCron:
          type: string
        inactiveDay:
          type: integer
          format: int32
        inactiveHour:
          type: integer
          format: int32
        inactiveMinute:
          type: integer
          format: int32
        inactiveMonth:
          type: integer
          format: int32
        inactiveSecond:
          type: integer
          format: int32
        inactiveYear:
          type: integer
          format: int32
        maintenanceType:
          type: string
          enum:
          - STATIC
          - WATCHLIST
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        scheduleType:
          type: string
        showBanner:
          type: boolean
        suppressHandlers:
          type: boolean
        timeoutPeriodType:
          type: string
        timeoutPeriods:
          type: integer
          format: int32
        togglePermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        watchListXid:
          type: string
        xid:
          type: string
          description: XID of object
    MaintenanceEventPointValueOperationsModel:
      type: object
      properties:
        alphanumericValue:
          type: string
          description: Value to set alphanumeric data points to
        binaryValue:
          type: boolean
          description: Value to set binary data points to
        expiry:
          type: integer
          format: int64
          description: When does the temporary Resource Expire (ms from now)
        from:
          type: string
          format: date-time
          description: "From time, inclusive"
        multistateValue:
          type: integer
          format: int32
          description: Value to set multistate data points to
        numericValue:
          type: number
          format: double
          description: Value to set numeric data points to
        operation:
          type: string
          description: Operation to perform on the data points
          enum:
          - DELETE
          - MODIFY
        timeout:
          type: integer
          format: int64
          description: How long to run the task before timeout
        timezone:
          type: string
          description: Timezone for returned current time progress
        to:
          type: string
          format: date-time
          description: "To time, exclusive"
        xid:
          type: string
          description: XID of maintenance event to use
    MaintenanceEventQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/MaintenanceEventModel"
        total:
          type: integer
          format: int32
    MangoJavaScriptAction:
      type: object
      properties:
        level:
          type: string
          enum:
          - info
          - warning
          - error
        message:
          type: string
    MangoJavaScriptError:
      type: object
      properties:
        columnNumber:
          type: integer
          format: int32
        lineNumber:
          type: integer
          format: int32
        message:
          type: string
    MangoJavaScriptModel:
      type: object
      properties:
        additionalContext:
          type: object
          additionalProperties: {}
          description: Any additional context to be added to the script during exeuction/testing
        context:
          type: array
          items:
            $ref: "#/components/schemas/ScriptContextVariableModel"
        logLevel:
          type: string
          enum:
          - TRACE
          - DEBUG
          - INFO
          - WARN
          - ERROR
          - FATAL
          - NONE
        permissions:
          type: array
          items:
            type: string
          uniqueItems: true
        resultDataType:
          type: string
          description: If non-null coerce the result into a PointValueTime with this
            data type
        script:
          type: string
        wrapInFunction:
          type: boolean
          description: Should we wrap the script in a function and call that function?
            Useful when script has a return method.
    MangoJavaScriptResultModel:
      type: object
      properties:
        actions:
          type: array
          description: Things the script has actioned i.e. setting a point value
          items:
            $ref: "#/components/schemas/MangoJavaScriptAction"
        errors:
          type: array
          description: Errors from executing the script
          items:
            $ref: "#/components/schemas/MangoJavaScriptError"
        result:
          description: "Returned value from script, can be null"
        scriptOutput:
          type: string
          description: Script log and console.log messages
    MangoPermission:
      type: object
      properties:
        id:
          type: integer
          format: int32
        roles:
          type: array
          items:
            type: array
            items:
              $ref: "#/components/schemas/Role"
            uniqueItems: true
          uniqueItems: true
    MangoPermissionModel:
      type: object
      properties:
        permission:
          $ref: "#/components/schemas/MangoPermission"
    MappingJacksonValue:
      type: object
      properties:
        filters:
          $ref: "#/components/schemas/FilterProvider"
        value: {}
    MetaGenerationResult:
      type: object
      properties:
        currentTime:
          type: string
          format: date-time
        dataPointXids:
          type: array
          items:
            type: string
        dataSourceXids:
          type: array
          items:
            type: string
        finished:
          type: boolean
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        totalPoints:
          type: integer
          format: int32
        updates:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/MetaPointGenerationResult"
    MetaPointGenerationResult:
      type: object
      properties:
        attributeChanges:
          type: integer
          format: int64
          description: count of attribute changes for this point from script executions
        contextUpdates:
          type: integer
          format: int64
          description: context update count for script executions
        deviceName:
          type: string
          description: data point device name
        error:
          type: string
          description: latest error message
        errors:
          type: integer
          format: int64
          description: count of errors for this point from script executions
        executions:
          type: integer
          format: int64
          description: script execution count
        name:
          type: string
          description: data point name
        valuesBackdated:
          type: integer
          format: int64
          description: count of backdated values for this point from script executions
        valuesLogged:
          type: integer
          format: int64
          description: count of values logged to database for this point from script
            executions
        valuesUpdated:
          type: integer
          format: int64
          description: count of updates for this point from script executions
    ModbusIpConfigurationModel:
      allOf:
      - $ref: "#/components/schemas/BaseModbusConfigurationModel"
      - type: object
        properties:
          encapsulated:
            type: boolean
          host:
            type: string
          lingerTime:
            type: integer
            format: int32
          port:
            type: integer
            format: int32
          retries:
            type: integer
            format: int32
          timeout:
            type: integer
            format: int32
          transport:
            type: string
    ModbusIpReadLocatorRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusIpConfigurationModel"
        length:
          type: integer
          format: int32
        locator:
          $ref: "#/components/schemas/ModbusPointLocatorModel"
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    ModbusIpReadRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusIpConfigurationModel"
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    ModbusIpWriteRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusIpConfigurationModel"
        data:
          type: array
          items:
            type: integer
            format: int32
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    ModbusNodeScanResult:
      type: object
      properties:
        nodesFound:
          type: array
          items:
            type: integer
            format: int32
    ModbusPointLocatorModel:
      type: object
      properties:
        additive:
          type: number
          format: double
        bit:
          type: string
          format: byte
        charset:
          type: string
        configurationDescription:
          type: string
        dataType:
          type: string
        modbusDataType:
          type: string
        modbusDataTypeId:
          type: integer
          format: int32
        modelType:
          type: string
        multiplier:
          type: number
          format: double
        multistateNumeric:
          type: boolean
        offset:
          type: integer
          format: int32
        range:
          type: string
        rangeId:
          type: integer
          format: int32
        registerCount:
          type: integer
          format: int32
        relinquishable:
          type: boolean
        settable:
          type: boolean
        slaveId:
          type: integer
          format: int32
        slaveMonitor:
          type: boolean
        writeType:
          type: string
    ModbusReadResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: integer
            format: int32
    ModbusSerialConfigurationModel:
      allOf:
      - $ref: "#/components/schemas/BaseModbusConfigurationModel"
      - type: object
        properties:
          accessPermissions:
            $ref: "#/components/schemas/MangoPermissionModel"
          baudRate:
            type: integer
            format: int32
          commPortId:
            type: string
          dataBits:
            type: string
            enum:
            - DATA_BITS_5
            - DATA_BITS_6
            - DATA_BITS_7
            - DATA_BITS_8
          encoding:
            type: string
            enum:
            - RTU
            - ASCII
          flowControlIn:
            type: string
            enum:
            - NONE
            - RTSCTS
            - XONXOFF
          flowControlOut:
            type: string
            enum:
            - NONE
            - RTSCTS
            - XONXOFF
          ownerName:
            type: string
          parity:
            type: string
            enum:
            - NONE
            - ODD
            - EVEN
            - MARK
            - SPACE
          retries:
            type: integer
            format: int32
          stopBits:
            type: string
            enum:
            - STOP_BITS_1
            - STOP_BITS_1_5
            - STOP_BITS_2
          timeout:
            type: integer
            format: int32
    ModbusSerialReadLocatorRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        length:
          type: integer
          format: int32
        locator:
          $ref: "#/components/schemas/ModbusPointLocatorModel"
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    ModbusSerialReadRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    ModbusSerialWriteRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        data:
          type: array
          items:
            type: integer
            format: int32
        length:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    ModifyPointValuesResponseModel:
      type: object
      properties:
        results:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/PointValueModificationResult"
          description: results per point
    ModuleInfo:
      type: object
      properties:
        name:
          type: string
        upgradedDate:
          type: string
          format: date-time
        url:
          type: string
        version:
          type: string
    ModuleModel:
      type: object
      description: Module model
      properties:
        buildDate:
          type: string
          format: date-time
        dependencies:
          type: string
        description:
          type: string
        licenseType:
          type: string
        longDescription:
          type: string
        markedForDeletion:
          type: boolean
        name:
          type: string
        normalVersion:
          type: string
        signed:
          type: boolean
        unloaded:
          type: boolean
        upgradedDate:
          type: string
          format: date-time
        vendor:
          type: string
        vendorUrl:
          type: string
        version:
          type: string
    ModuleUpgradeModel:
      type: object
      properties:
        buildDate:
          type: string
          format: date-time
        dependencies:
          type: string
        dependencyVersions:
          type: object
          additionalProperties:
            type: string
        description:
          type: string
        licenseType:
          type: string
        longDescription:
          type: string
        markedForDeletion:
          type: boolean
        name:
          type: string
        newVersion:
          type: string
        normalVersion:
          type: string
        releaseNotes:
          type: string
        signed:
          type: boolean
        unloaded:
          type: boolean
        upgradedDate:
          type: string
          format: date-time
        vendor:
          type: string
        vendorUrl:
          type: string
        version:
          type: string
    ModuleUpgradesModel:
      type: object
      description: Desired Upgrades
      properties:
        newInstalls:
          type: array
          items:
            $ref: "#/components/schemas/ModuleUpgradeModel"
        unavailableModules:
          type: array
          items:
            $ref: "#/components/schemas/ModuleModel"
        upgrades:
          type: array
          items:
            $ref: "#/components/schemas/ModuleUpgradeModel"
    MstpLocalDeviceConfigModel:
      allOf:
      - $ref: "#/components/schemas/LocalDeviceConfigModel"
      - type: object
        properties:
          baudRate:
            type: integer
            format: int32
          commPortId:
            type: string
          configProgramLocation:
            type: string
          driverFileLocation:
            type: string
          maxInfoFrames:
            type: integer
            format: int32
          maxMaster:
            type: integer
            format: int32
          responseTimeoutMs:
            type: integer
            format: int32
          retryCount:
            type: integer
            format: int32
          thisStation:
            type: integer
            format: int32
          usageTimeout:
            type: integer
            format: int32
          useRealtime:
            type: boolean
    NetworkInterfaceModel:
      type: object
      properties:
        hostAddress:
          type: string
        interfaceName:
          type: string
    NoSqlBackupSettings:
      type: object
      properties:
        expiration:
          type: integer
          format: int64
        location:
          type: string
          description: "location to backup to, leave empty to use system settings"
        timeout:
          type: integer
          format: int64
    NoSqlDataTransferResult: {}
    NoSqlDatabaseStatistics:
      type: object
      properties:
        clean:
          type: boolean
          description: "Has the database been modified, which can introduce corruption"
        flushCount:
          type: integer
          format: int64
        flushExpired:
          type: integer
          format: int64
        flushForced:
          type: integer
          format: int64
        flushLimit:
          type: integer
          format: int64
        lastFlushTime:
          type: string
          format: date-time
        openFiles:
          type: integer
          format: int32
        openShards:
          type: integer
          format: int32
        sizeInBytes:
          type: integer
          format: int64
        writeCount:
          type: integer
          format: int64
        writesPerSecond:
          type: integer
          format: int32
    NoSqlMergeSettings:
      type: object
      properties:
        expiration:
          type: integer
          format: int64
        from:
          type: string
          format: date-time
        mangoNoSqlLocation:
          type: string
        maxPointValueQueueSize:
          type: integer
          format: int32
        numberOfWorkItems:
          type: integer
          format: int32
        timeout:
          type: integer
          format: int64
        to:
          type: string
          format: date-time
    NoSqlMigrateNoSQLSettings:
      type: object
      properties:
        connectionUrl:
          type: string
        driverClassname:
          type: string
        expiration:
          type: integer
          format: int64
        from:
          type: string
          format: date-time
        mangoNoSqlLocation:
          type: string
        maxPointValueQueueSize:
          type: integer
          format: int32
        numberOfWorkItems:
          type: integer
          format: int32
        password:
          type: string
        timeout:
          type: integer
          format: int64
        to:
          type: string
          format: date-time
        username:
          type: string
    NoSqlMigrateSQLSettings:
      type: object
      properties:
        connectionUrl:
          type: string
        driverClassname:
          type: string
        expiration:
          type: integer
          format: int64
        from:
          type: string
          format: date-time
        maxPointValueQueueSize:
          type: integer
          format: int32
        numberOfWorkItems:
          type: integer
          format: int32
        password:
          type: string
        timeout:
          type: integer
          format: int64
        to:
          type: string
          format: date-time
        username:
          type: string
    NoSqlReloadLinksSettings:
      type: object
      properties:
        expiration:
          type: integer
          format: int64
        fast:
          type: boolean
          description: default to true if not supplied
        mode:
          type: string
          enum:
          - STANDARD
          - FAST
          - ONLY_NEW
        priority:
          type: string
        priorityInt:
          type: integer
          format: int32
        timeout:
          type: integer
          format: int64
    NoSqlRestoreSettings:
      type: object
      properties:
        expiration:
          type: integer
          format: int64
        filesToRestore:
          type: array
          items:
            type: string
            format: binary
        firstFileToRestore:
          type: string
        incrementalRestore:
          type: boolean
        restoreDestination:
          type: string
        restoreSource:
          type: string
        timeout:
          type: integer
          format: int64
    OAuth2ClientInfo:
      type: object
      properties:
        clientName:
          type: string
        logoUri:
          type: string
        registrationId:
          type: string
    OAuth2LinkedAccountModel:
      allOf:
      - $ref: "#/components/schemas/LinkedAccountModel"
      - type: object
        properties:
          issuer:
            type: string
          subject:
            type: string
    OPCItemModel:
      type: object
      properties:
        dataType:
          type: string
        settable:
          type: boolean
        tag:
          type: string
        validate:
          type: boolean
    OPCListServersRequestModel:
      type: object
      properties:
        domain:
          type: string
        host:
          type: string
        password:
          type: string
        user:
          type: string
    OPCListTagsRequestModel:
      type: object
      properties:
        domain:
          type: string
        host:
          type: string
        password:
          type: string
        server:
          type: string
        user:
          type: string
    ObjectIdentifier:
      type: object
      properties:
        instanceNumber:
          type: integer
          format: int32
        objectType:
          $ref: "#/components/schemas/ObjectType"
        typeId:
          type: string
          format: byte
        uninitialized:
          type: boolean
    ObjectPropertiesValues:
      type: object
      properties:
        oid:
          $ref: "#/components/schemas/ObjectIdentifier"
        properties:
          type: array
          items:
            $ref: "#/components/schemas/PropertyValue"
    ObjectPropertyReferences:
      type: object
      properties:
        oid:
          $ref: "#/components/schemas/ObjectIdentifier"
        properties:
          type: array
          items:
            $ref: "#/components/schemas/PropertyReference"
    ObjectPropertyWithSupportedDataTypes:
      type: object
      properties:
        propertyId:
          type: integer
          format: int32
        propertyName:
          type: string
        supportedDataTypes:
          type: array
          items:
            type: string
            enum:
            - BINARY
            - MULTISTATE
            - NUMERIC
            - ALPHANUMERIC
          uniqueItems: true
    ObjectType:
      type: object
      properties:
        typeId:
          type: string
          format: byte
    OneWireContainerAttribute:
      type: object
      properties:
        description:
          type: string
        id:
          type: integer
          format: int32
        length:
          type: integer
          format: int32
        startIndex:
          type: integer
          format: int32
    OneWireContainerInfo:
      type: object
      properties:
        address:
          type: integer
          format: int64
        addressString:
          type: string
        attributes:
          type: array
          items:
            $ref: "#/components/schemas/OneWireContainerAttribute"
        description:
          type: string
    OrderedTaskInfo:
      type: object
      properties:
        avgExecutionTimeMs:
          type: integer
          format: int64
        currentQueueSize:
          type: integer
          format: int32
        executionCount:
          type: integer
          format: int64
        id:
          type: string
        lastExecutionTimeMs:
          type: integer
          format: int64
        maxQueueSize:
          type: integer
          format: int32
        name:
          type: string
        queueSizeLimit:
          type: integer
          format: int32
        rejections:
          type: integer
          format: int32
    PHONE_NUMBER:
      allOf:
      - $ref: "#/components/schemas/EmailRecipientModel"
      - type: object
        properties:
          phone:
            type: string
    PKCS10CertificationRequest:
      type: object
      properties:
        attributes:
          type: array
          items:
            $ref: "#/components/schemas/Attribute"
        encoded:
          type: string
          format: byte
        requestedExtensions:
          $ref: "#/components/schemas/Extensions"
        signature:
          type: string
          format: byte
        signatureAlgorithm:
          $ref: "#/components/schemas/AlgorithmIdentifier"
        subject:
          $ref: "#/components/schemas/X500Name"
        subjectPublicKeyInfo:
          $ref: "#/components/schemas/SubjectPublicKeyInfo"
    PasswordResetRequestBody:
      type: object
      properties:
        newPassword:
          type: string
        token:
          type: string
    PeriodCounts:
      type: object
      properties:
        active:
          type: object
          additionalProperties:
            type: integer
            format: int32
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
        total:
          type: object
          additionalProperties:
            type: integer
            format: int32
        unacknowledged:
          type: object
          additionalProperties:
            type: integer
            format: int32
    PermissionDefinitionModel:
      type: object
      properties:
        description:
          type: string
        groupDescription:
          type: string
        groupName:
          type: string
        groupTitle:
          type: string
        name:
          type: string
        permission:
          $ref: "#/components/schemas/MangoPermissionModel"
    PermissionDefinitionQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/PermissionDefinitionModel"
        total:
          type: integer
          format: int32
    PersistentDataSourceConnectionStatusModel:
      type: object
      properties:
        address:
          type: string
        connectedForMs:
          type: integer
          format: int64
        indexedPointsCount:
          type: integer
          format: int32
        packetsRecieved:
          type: integer
          format: int64
        timeouts:
          type: integer
          format: int32
    PersistentSenderConnectionStatusModel:
      type: object
      properties:
        connectingPointIndex:
          type: integer
          format: int32
        connectionPort:
          type: integer
          format: int32
        connectionState:
          type: string
          enum:
          - NOT_CONNECTED
          - CONNECTING
          - CONNECTED
        packetsQueueSize:
          type: integer
          format: int32
        packetsSentInInterval:
          type: integer
          format: int32
        pointCount:
          type: integer
          format: int32
        pointsPerSecondDuringSync:
          type: number
          format: double
        queueSize:
          type: integer
          format: int32
        syncDuration:
          type: integer
          format: int64
        syncRequestsSent:
          type: integer
          format: int32
        syncRunning:
          type: boolean
    PointHistoryCount:
      type: object
      properties:
        count:
          type: integer
          format: int32
        pointId:
          type: integer
          format: int32
        pointName:
          type: string
        pointXid:
          type: string
    PointRangeModel:
      type: object
      properties:
        dataPointDeviceName:
          type: string
        dataPointName:
          type: string
        dataPointXid:
          type: string
        namedRange:
          type: string
    PointValueImportResult:
      type: object
      properties:
        result:
          $ref: "#/components/schemas/ProcessResult"
        total:
          type: integer
          format: int32
        xid:
          type: string
    PointValueModificationResult:
      type: object
      properties:
        error:
          type: string
          description: latest error message for this point
        name:
          type: string
          description: data point name
        operations:
          type: integer
          format: int64
          description: count of operations performed for this point
        xid:
          type: string
          description: data point XID
    PointValueTimeDeleteResult:
      type: object
      properties:
        result:
          $ref: "#/components/schemas/ProcessResult"
        totalDeleted:
          type: integer
          format: int32
        totalSkipped:
          type: integer
          format: int32
        xid:
          type: string
    PointValueTimeImportResult:
      type: object
      properties:
        result:
          $ref: "#/components/schemas/ProcessResult"
        totalQueued:
          type: integer
          format: int32
        totalSkipped:
          type: integer
          format: int32
        xid:
          type: string
    PollStatus:
      type: object
      properties:
        aborted:
          type: boolean
        duration:
          type: integer
          format: int64
        startTime:
          type: string
          format: date-time
    Pop3TestModel:
      type: object
      properties:
        format:
          type: string
        regex:
          type: string
        testData:
          type: string
    Pop3TestValueModel:
      type: object
      properties:
        dataType:
          type: string
        dataTypeEnum:
          type: string
          enum:
          - BINARY
          - MULTISTATE
          - NUMERIC
          - ALPHANUMERIC
        format:
          type: string
        regex:
          type: string
        testData:
          type: string
    PostLoginData:
      type: object
      properties:
        aggregationEnabled:
          type: boolean
        coreLicenseType:
          type: string
        coreNormalVersion:
          type: string
        coreVersion:
          type: string
        guid:
          type: string
        instanceDescription:
          type: string
        menu:
          $ref: "#/components/schemas/JsonDataModel"
        pages:
          $ref: "#/components/schemas/JsonDataModel"
        queryBoundary:
          type: integer
          format: int64
        translations:
          $ref: "#/components/schemas/TranslationsModel"
        vendor:
          type: string
        vendorUrl:
          type: string
    PreLoginData:
      type: object
      properties:
        angularJsModules:
          $ref: "#/components/schemas/AngularJSModuleDefinitionGroupModel"
        developmentMode:
          type: boolean
        lastUpgradeTime:
          type: integer
          format: int32
        loginUri:
          type: string
        logoutSuccessUri:
          type: string
        notFoundUri:
          type: string
        oauth2Clients:
          type: array
          items:
            $ref: "#/components/schemas/OAuth2ClientInfo"
        permissionConfigurationEnabled:
          type: boolean
        publicRegistrationEnabled:
          type: boolean
        serverLocale:
          type: string
        serverTimezone:
          type: string
        translations:
          $ref: "#/components/schemas/TranslationsModel"
        uiSettings:
          $ref: "#/components/schemas/JsonDataModel"
        user:
          $ref: "#/components/schemas/UserModel"
    ProcessMessage:
      type: object
      properties:
        contextKey:
          type: string
        contextualMessage:
          type: string
        genericMessage:
          type: string
        level:
          type: string
          enum:
          - info
          - warning
          - error
    ProcessResult:
      type: object
      properties:
        hasMessages:
          type: boolean
        messages:
          type: array
          items:
            $ref: "#/components/schemas/ProcessMessage"
        valid:
          type: boolean
    PropertyIdentifier:
      type: object
      properties:
        typeId:
          type: string
          format: byte
    PropertyReference:
      type: object
      properties:
        propertyArrayIndex:
          $ref: "#/components/schemas/UnsignedInteger"
        propertyIdentifier:
          $ref: "#/components/schemas/PropertyIdentifier"
    PropertyValue:
      type: object
      properties:
        priority:
          $ref: "#/components/schemas/UnsignedInteger"
        propertyArrayIndex:
          $ref: "#/components/schemas/UnsignedInteger"
        propertyIdentifier:
          $ref: "#/components/schemas/PropertyIdentifier"
        value:
          $ref: "#/components/schemas/Encodable"
    PublicEmailVerificationRequest:
      type: object
      properties:
        emailAddress:
          type: string
    PublicRegistrationRequest:
      type: object
      properties:
        token:
          type: string
        user:
          $ref: "#/components/schemas/UserModel"
    PublishedPointBulkRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/PublishedPointIndividualRequest"
        timeout:
          type: integer
          format: int64
    PublishedPointBulkResponse:
      type: object
      properties:
        hasError:
          type: boolean
        responses:
          type: array
          items:
            $ref: "#/components/schemas/PublishedPointIndividualResponse"
    PublishedPointIndividualRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        xid:
          type: string
    PublishedPointIndividualResponse:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        error:
          $ref: "#/components/schemas/AbstractRestException"
        httpStatus:
          type: integer
          format: int32
        xid:
          type: string
    PublishedPointQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AbstractPublishedPointModelObject"
        total:
          type: integer
          format: int32
    PublisherQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
        total:
          type: integer
          format: int32
    PublisherWithoutPointsQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/AbstractPublisherModelObjectObject"
        total:
          type: integer
          format: int32
    PurgeDataPointValuesModel:
      type: object
      properties:
        dataSourceXid:
          type: string
        duration:
          $ref: "#/components/schemas/TimePeriod"
        expiry:
          type: integer
          format: int64
        purgeAll:
          type: boolean
        timeRange:
          $ref: "#/components/schemas/TimeRange"
        timeout:
          type: integer
          format: int64
        useTimeRange:
          type: boolean
        xids:
          type: array
          items:
            type: string
    PurgePointValuesResponseModel:
      type: object
      properties:
        noEditPermission:
          type: array
          items:
            type: string
        notFound:
          type: array
          items:
            type: string
        successfullyPurged:
          type: array
          items:
            type: string
    PurgeSettings:
      type: object
      properties:
        frequency:
          $ref: "#/components/schemas/TimePeriod"
        override:
          type: boolean
    RDN:
      type: object
      properties:
        encoded:
          type: string
          format: byte
        first:
          $ref: "#/components/schemas/AttributeTypeAndValue"
        multiValued:
          type: boolean
        typesAndValues:
          type: array
          items:
            $ref: "#/components/schemas/AttributeTypeAndValue"
    ReadObjectListRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          deviceId:
            type: integer
            format: int32
          type:
            type: string
            description: READ_OBJECT_LIST
    ReadObjectListResponse:
      type: object
      properties:
        objects:
          type: array
          items:
            $ref: "#/components/schemas/ObjectIdentifier"
    ReadPropertyListRequest:
      allOf:
      - $ref: "#/components/schemas/AbstractBACnetRequestModel"
      - type: object
        properties:
          deviceId:
            type: integer
            format: int32
          fallbackToDefaults:
            type: boolean
          instanceNumber:
            type: integer
            format: int32
          objectTypeId:
            type: integer
            format: int32
          objectTypeName:
            type: string
          type:
            type: string
            description: READ_PROPERTY_LIST
    ReadPropertyListResponse:
      type: object
      properties:
        defaultProperties:
          type: boolean
        properties:
          type: array
          items:
            $ref: "#/components/schemas/PropertyIdentifier"
    RejectedTaskStats:
      type: object
      properties:
        currentlyRunning:
          type: integer
          format: int64
        id:
          type: string
        lastAccess:
          type: integer
          format: int64
        name:
          type: string
        poolFull:
          type: integer
          format: int64
        queueFull:
          type: integer
          format: int64
        totalRejections:
          type: integer
          format: int64
    RenewCertificateRequest:
      type: object
      properties:
        parameters:
          type: object
          additionalProperties: {}
        rekey:
          type: boolean
    RepublishStatus:
      type: object
      properties:
        cancelled:
          type: boolean
        count:
          type: integer
          format: int64
        done:
          type: boolean
        error:
          type: string
        eventCount:
          type: integer
          format: int64
        finished:
          type: string
          format: date-time
        from:
          type: string
          format: date-time
        started:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    RestValidationMessage:
      type: object
      properties:
        level:
          type: string
          enum:
          - INFORMATION
          - WARNING
          - ERROR
        message:
          type: string
        property:
          type: string
    Role:
      type: object
      properties:
        id:
          type: integer
          format: int32
        xid:
          type: string
    RoleModel:
      type: object
      properties:
        id:
          type: integer
          format: int32
          description: ID of object in database
        inherited:
          type: array
          items:
            type: string
          uniqueItems: true
        name:
          type: string
          description: Name of object
        revision:
          type: integer
          format: int32
        xid:
          type: string
          description: XID of object
    RoleQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/RoleModel"
        total:
          type: integer
          format: int32
    RuntimeStatusModel:
      type: object
      properties:
        activeEventTypes:
          type: array
          items:
            $ref: "#/components/schemas/ActiveEventTypeModel"
        latestAbortedPolls:
          type: array
          description: "Most recent aborted polls, up to 11 maximum"
          items:
            $ref: "#/components/schemas/PollStatus"
        latestPolls:
          type: array
          description: "Most recent polls, up to 11 maximum"
          items:
            $ref: "#/components/schemas/PollStatus"
        state:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
    SQL:
      type: object
      properties:
        connectionDescription:
          type: string
          description: Read only description of data source connection
        connectionUrl:
          type: string
        cronPattern:
          type: string
          description: CRON expression instead of poll period
        data:
          $ref: "#/components/schemas/JsonNode"
        description:
          type: string
          description: Read only description of data source type
        descriptionKey:
          type: string
        driverClassname:
          type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        eventAlarmLevels:
          type: array
          items:
            $ref: "#/components/schemas/EventTypeAlarmLevelModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        lifecycleState:
          type: string
          enum:
          - PRE_INITIALIZE
          - INITIALIZING
          - RUNNING
          - TERMINATING
          - TERMINATED
        lifecycleStateTranslation:
          type: string
        modelType:
          type: string
        name:
          type: string
          description: Name of object
        password:
          type: string
        pollPeriod:
          $ref: "#/components/schemas/TimePeriod"
          description: "Period to poll for data, unless using CRON"
        purgeSettings:
          $ref: "#/components/schemas/PurgeSettings"
        quantize:
          type: boolean
          description: Quantize polls to the nearest poll period type
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        rowBasedQuery:
          type: boolean
        selectStatement:
          type: string
        useCron:
          type: boolean
          description: "Instead of poll period, use a CRON expression"
        useMangoDatabase:
          type: boolean
        username:
          type: string
        xid:
          type: string
          description: XID of object
    ScheduleModel:
      type: object
      properties:
        alarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        defaultSchedule:
          type: array
          items:
            type: array
            items:
              type: string
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        enabled:
          type: boolean
        errorAlarmLevel:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        exceptions:
          type: array
          items:
            $ref: "#/components/schemas/ExceptionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        rtData:
          $ref: "#/components/schemas/SchedulePersistentDataRestModel"
        xid:
          type: string
          description: XID of object
    SchedulePersistentDataRestModel:
      type: object
      properties:
        active:
          type: boolean
        finished:
          type: boolean
        rule:
          oneOf:
          - $ref: "#/components/schemas/WildcardDateRangeRule1"
        timestamp:
          type: integer
          format: int64
    ScheduleQueryResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/ScheduleModel"
        total:
          type: integer
          format: int32
    ScriptContextVariableModel:
      type: object
      properties:
        contextUpdate:
          type: boolean
        variableName:
          type: string
        xid:
          type: string
    SendEmailRequestBody:
      type: object
      properties:
        email:
          type: string
        username:
          type: string
    SerialTestResultModel:
      type: object
      properties:
        error:
          type: string
        identifier:
          type: string
        pointName:
          type: string
        pointXid:
          type: string
        success:
          type: boolean
        timestamp:
          type: string
          format: date-time
        value: {}
    SerialValidationModel:
      type: object
      properties:
        hex:
          type: boolean
        message:
          type: string
        messageRegex:
          type: string
        messageTerminator:
          type: string
        pointIdentifierIndex:
          type: integer
          format: int32
        useTerminator:
          type: boolean
    ServerCommandModel:
      type: object
      properties:
        command:
          type: string
        timeout:
          type: integer
          format: int32
    ServerInfo:
      type: object
      properties:
        authenticated:
          type: boolean
        connected:
          type: boolean
        coreVersion:
          type: string
        dateConnected:
          type: string
          format: date-time
        dateDisconnected:
          type: string
          format: date-time
        forwardedPorts:
          type: array
          items:
            $ref: "#/components/schemas/ForwardedPort"
        guid:
          type: string
        hostname:
          type: string
        id:
          type: string
        instanceDescription:
          type: string
        ipAddress:
          type: string
        moduleVersion:
          type: string
        port:
          type: integer
          format: int32
        serverVersion:
          type: string
    SessionInformation:
      type: object
      properties:
        expired:
          type: boolean
        lastRequest:
          type: string
          format: date-time
        principal: {}
        sessionId:
          type: string
    SnmpOidMappingModel:
      type: object
      properties:
        oid:
          type: string
        pointXid:
          type: string
    SnmpSetSettings:
      type: object
      properties:
        authPassphrase:
          type: string
        authProtocol:
          type: string
        contextEngineId:
          type: string
        contextName:
          type: string
        dataType:
          type: string
        engineId:
          type: string
        filenames:
          type: array
          items:
            type: string
        host:
          type: string
        oid:
          type: string
        port:
          type: integer
          format: int32
        privPassphrase:
          type: string
        privProtocol:
          type: string
        readCommunity:
          type: string
        retries:
          type: integer
          format: int32
        securityName:
          type: string
        timeout:
          type: integer
          format: int32
        useMibFiles:
          type: boolean
        value: {}
        version:
          type: string
    SnmpSettings:
      type: object
      properties:
        authPassphrase:
          type: string
        authProtocol:
          type: string
        contextEngineId:
          type: string
        contextName:
          type: string
        engineId:
          type: string
        filenames:
          type: array
          items:
            type: string
        host:
          type: string
        oid:
          type: string
        port:
          type: integer
          format: int32
        privPassphrase:
          type: string
        privProtocol:
          type: string
        readCommunity:
          type: string
        retries:
          type: integer
          format: int32
        securityName:
          type: string
        timeout:
          type: integer
          format: int32
        useMibFiles:
          type: boolean
        version:
          type: string
    SnmpWalkInformation:
      type: object
      properties:
        currentValue:
          type: string
        id:
          type: integer
          format: int32
        oid:
          type: string
        variableSyntax:
          type: string
    SnmpWalkTask:
      type: object
      properties:
        description:
          type: string
        error:
          type: string
        expires:
          type: integer
          format: int64
        finished:
          type: boolean
        priority:
          type: integer
          format: int32
        queueSize:
          type: integer
          format: int32
        resourceId:
          type: string
        results:
          type: array
          items:
            $ref: "#/components/schemas/SnmpWalkInformation"
        taskId:
          type: string
        threadName:
          type: string
    SqlQueryResult:
      type: object
      properties:
        columnNames:
          type: array
          items:
            type: string
        columnTypes:
          type: array
          items:
            type: string
        data:
          type: array
          items:
            type: array
            items: {}
    SshdSocketAddress:
      type: object
      properties:
        hostName:
          type: string
        port:
          type: integer
          format: int32
    StackFrame:
      type: object
      properties:
        columnNumber:
          type: integer
          format: int32
        fileName:
          type: string
        functionName:
          type: string
        lineNumber:
          type: integer
          format: int32
        source:
          type: string
    StartGenerateHistoryModel:
      type: object
      properties:
        dataPointXids:
          type: array
          items:
            type: string
        dataSourceXid:
          type: string
        deleteExisting:
          type: boolean
        expiry:
          type: integer
          format: int64
        from:
          type: string
          format: date-time
        resourceId:
          type: string
        timeout:
          type: integer
          format: int64
        timezone:
          type: string
        to:
          type: string
          format: date-time
    StreamWithTotalCardInfo:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalEmailTemplateModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalEventInstanceModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalEventTypeVOModelObjectObjectObject:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalFileModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalFileStoreModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalLocalDeviceConfigModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalPublisherInfoSnapshot:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalRealTimeDataPointValueModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalTemporaryResourceMetaGenerationResultAbstractRestException:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalTimezoneModel:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamWithTotalVirtualSerialPortConfig:
      type: object
      properties:
        items:
          type: object
          properties:
            parallel:
              type: boolean
        total:
          type: integer
          format: int32
    StreamedArray: {}
    StreamedArrayWithTotal:
      type: object
      properties:
        items:
          $ref: "#/components/schemas/StreamedArray"
        total:
          type: integer
          format: int32
    StreamingPointValueTimeModel:
      type: object
      properties:
        annotation:
          type: string
        bookend:
          type: boolean
        cached:
          type: boolean
        count:
          type: integer
          format: int64
        dataSourceName:
          type: string
        deviceName:
          type: string
        first:
          $ref: "#/components/schemas/ValueTimeModel"
        last:
          $ref: "#/components/schemas/ValueTimeModel"
        name:
          type: string
        raw: {}
        rendered:
          type: string
        start:
          $ref: "#/components/schemas/ValueTimeModel"
        timestamp: {}
        value: {}
        xid:
          type: string
    StringStringPair:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    SubjectPublicKeyInfo:
      type: object
      properties:
        algorithm:
          $ref: "#/components/schemas/AlgorithmIdentifier"
        algorithmId:
          $ref: "#/components/schemas/AlgorithmIdentifier"
        encoded:
          type: string
          format: byte
        publicKey:
          $ref: "#/components/schemas/ASN1Primitive"
        publicKeyData:
          $ref: "#/components/schemas/ASN1BitString"
    SupportedObjectType:
      type: object
      properties:
        objectType:
          $ref: "#/components/schemas/ObjectType"
        properties:
          type: array
          items:
            $ref: "#/components/schemas/ObjectPropertyWithSupportedDataTypes"
        translation:
          type: string
        translationKey:
          type: string
        typeName:
          type: string
    SystemActionResult: {}
    SystemActionTemporaryResource:
      type: object
      properties:
        expires:
          type: integer
          format: int64
        finished:
          type: boolean
        queueSize:
          type: integer
          format: int32
        resourceId:
          type: string
        results:
          type: object
          additionalProperties: {}
        taskId:
          type: string
        threadName:
          type: string
    SystemSetupRequest:
      type: object
      properties:
        password:
          type: string
        systemSettings:
          type: object
          additionalProperties: {}
    TagBulkRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - SET
          - MERGE
          - UPDATE
        body:
          type: object
          additionalProperties:
            type: string
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/TagIndividualRequest"
        timeout:
          type: integer
          format: int64
    TagBulkResponse:
      type: object
      properties:
        hasError:
          type: boolean
        responses:
          type: array
          items:
            $ref: "#/components/schemas/TagIndividualResponse"
    TagIndividualRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - SET
          - MERGE
          - UPDATE
        body:
          type: object
          additionalProperties:
            type: string
        xid:
          type: string
    TagIndividualResponse:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - SET
          - MERGE
          - UPDATE
        body:
          type: object
          additionalProperties:
            type: string
        error:
          $ref: "#/components/schemas/AbstractRestException"
        httpStatus:
          type: integer
          format: int32
        xid:
          type: string
    TcpIpDataSourceTestModel:
      type: object
      properties:
        dataType:
          type: string
          description: Data type to coerce result to
        index:
          type: integer
          format: int32
          description: index of matching group
        message:
          type: string
          description: message to send
        regex:
          type: string
          description: regex to match response
    TemplateModel:
      type: object
      properties:
        fileStoreName:
          type: string
        filename:
          type: string
    TemplatesModel:
      type: object
      properties:
        additionalClasspath:
          type: string
        destinationFileStore:
          type: string
        templateFiles:
          type: array
          items:
            $ref: "#/components/schemas/TemplateModel"
    TemporaryResourceBACnetBulkResponseAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/BACnetBulkResponse"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceBulkResponseAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/BulkResponse"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceDataFileImportResultAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/DataFileImportResult"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceEventDetectorBulkResponseAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/EventDetectorBulkResponse"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceHttpReceiverListenerResultModelAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/HttpReceiverListenerResultModel"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceLog4JUtilResultAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/Log4JUtilResult"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceMetaGenerationResultAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/MetaGenerationResult"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceModbusNodeScanResultAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/ModbusNodeScanResult"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceModifyPointValuesResponseModelAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/ModifyPointValuesResponseModel"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceNoSqlDataTransferResultAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/NoSqlDataTransferResult"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourcePublishedPointBulkResponseAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/PublishedPointBulkResponse"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourcePurgePointValuesResponseModelAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/PurgePointValuesResponseModel"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceStatusUpdate:
      type: object
      properties:
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
    TemporaryResourceSystemActionResultAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/SystemActionResult"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceTagBulkResponseAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/TagBulkResponse"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    TemporaryResourceUserBulkResponseAbstractRestException:
      type: object
      properties:
        completionTime:
          type: string
          format: date-time
        error:
          $ref: "#/components/schemas/AbstractRestException"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        maximum:
          type: integer
          format: int32
        position:
          type: integer
          format: int32
        progress:
          type: integer
          format: int32
        resourceType:
          type: string
        resourceVersion:
          type: integer
          format: int32
        result:
          $ref: "#/components/schemas/UserBulkResponse"
        startTime:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - VIRGIN
          - SCHEDULED
          - RUNNING
          - TIMED_OUT
          - CANCELLED
          - SUCCESS
          - ERROR
        timeout:
          type: integer
          format: int64
    ThreadModel:
      type: object
      properties:
        cpuTime:
          type: integer
          format: int64
        id:
          type: integer
          format: int64
        location:
          type: array
          items:
            type: object
            properties:
              classLoaderName:
                type: string
              className:
                type: string
              fileName:
                type: string
              lineNumber:
                type: integer
                format: int32
              methodName:
                type: string
              moduleName:
                type: string
              moduleVersion:
                type: string
              nativeMethod:
                type: boolean
        lockInfo:
          type: object
          properties:
            className:
              type: string
            identityHashCode:
              type: integer
              format: int32
        lockOwnerId:
          type: integer
          format: int64
        lockOwnerName:
          type: string
        name:
          type: string
        priority:
          type: integer
          format: int32
        state:
          type: string
          enum:
          - NEW
          - RUNNABLE
          - BLOCKED
          - WAITING
          - TIMED_WAITING
          - TERMINATED
        userTime:
          type: integer
          format: int64
    TimePeriod:
      type: object
      properties:
        periods:
          type: integer
          format: int32
        type:
          type: string
          enum:
          - MILLISECONDS
          - SECONDS
          - MINUTES
          - HOURS
          - DAYS
          - WEEKS
          - MONTHS
          - YEARS
    TimePeriodModel:
      type: object
      properties:
        periods:
          type: integer
          format: int32
        type:
          type: string
    TimeRange:
      type: object
      properties:
        from:
          type: string
          format: date-time
        to:
          type: string
          format: date-time
    TimeSeriesModel:
      type: object
      properties:
        dateRangeType:
          type: string
        events:
          type: array
          items:
            $ref: "#/components/schemas/EventRangeModel"
        finishTimestamp:
          type: string
          format: date-time
        name:
          type: string
        namedRange:
          type: string
        periodCount:
          type: integer
          format: int32
        periodType:
          type: string
        points:
          type: array
          items:
            $ref: "#/components/schemas/PointRangeModel"
        relativeDateType:
          type: string
        rollup:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
        rollupPeriodType:
          $ref: "#/components/schemas/TimePeriod"
        startTimestamp:
          type: string
          format: date-time
    TokenModel:
      type: object
      properties:
        token:
          type: string
    TranslatableMessageModel:
      type: object
      properties:
        args:
          type: array
          items:
            type: string
        key:
          type: string
    Translations:
      type: object
      properties:
        name:
          type: string
    TranslationsModel:
      type: object
      properties:
        locale:
          type: string
        namespaces:
          type: array
          items:
            type: string
        translations:
          type: object
          additionalProperties:
            type: object
            additionalProperties:
              type: string
    TypedModbusIpWriteRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusIpConfigurationModel"
        data:
          type: array
          items: {}
        length:
          type: integer
          format: int32
        modbusDataType:
          type: string
        modbusDataTypeId:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    TypedModbusSerialWriteRequest:
      type: object
      properties:
        configuration:
          $ref: "#/components/schemas/ModbusSerialConfigurationModel"
        data:
          type: array
          items: {}
        length:
          type: integer
          format: int32
        modbusDataType:
          type: string
        modbusDataTypeId:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        range:
          type: string
        slaveId:
          type: integer
          format: int32
    USER:
      allOf:
      - $ref: "#/components/schemas/EmailRecipientModel"
      - type: object
        properties:
          username:
            type: string
    USER_PHONE_NUMBER:
      allOf:
      - $ref: "#/components/schemas/EmailRecipientModel"
      - type: object
        properties:
          username:
            type: string
    UnsignedInteger:
      type: object
      properties:
        smallValue:
          type: boolean
        typeId:
          type: string
          format: byte
    UpdateCertificateRequest:
      type: object
      properties:
        parameters:
          type: object
          additionalProperties: {}
        rekey:
          type: boolean
        subject:
          type: string
        subjectAlternativeNames:
          type: array
          items:
            type: string
    UpdateEmailRequest:
      type: object
      properties:
        token:
          type: string
    UpdateLicensePayloadModel:
      type: object
      properties:
        currentVersionState:
          type: integer
          format: int32
        description:
          type: string
        distributor:
          type: string
        guid:
          type: string
        modules:
          type: object
          additionalProperties:
            type: string
        storeUrl:
          type: string
        upgradeVersionState:
          type: integer
          format: int32
    UpgradeStatusModel:
      type: object
      properties:
        cancelled:
          type: boolean
        error:
          type: string
        finished:
          type: boolean
        results:
          type: array
          items:
            $ref: "#/components/schemas/ModuleModel"
        running:
          type: boolean
        stage:
          type: string
        willRestart:
          type: boolean
    UpgradeUploadResult:
      type: object
      properties:
        invalid:
          type: array
          items:
            $ref: "#/components/schemas/InvalidModule"
        restart:
          type: boolean
        toUpgrade:
          type: array
          items:
            type: string
    UserActionAndModel:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        created:
          type: string
          format: date-time
        data:
          $ref: "#/components/schemas/JsonNode"
        disabled:
          type: boolean
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        email:
          type: string
        emailVerified:
          type: string
          format: date-time
        hashAlgorithm:
          type: string
        homeUrl:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        inheritedRoles:
          type: array
          items:
            type: string
          uniqueItems: true
        lastLogin:
          type: string
          format: date-time
        lastPasswordChange:
          type: string
          format: date-time
        linkedAccounts:
          type: array
          items:
            oneOf:
            - $ref: "#/components/schemas/OAuth2LinkedAccountModel"
        locale:
          type: string
        muted:
          type: boolean
        name:
          type: string
          description: Name of object
        oldHashAlgorithm:
          type: boolean
        organization:
          type: string
        organizationalRole:
          type: string
        originalUsername:
          type: string
        password:
          type: string
        passwordLocked:
          type: boolean
        phone:
          type: string
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        receiveAlarmEmails:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        receiveOwnAuditEvents:
          type: boolean
        revision:
          type: integer
          format: int32
        roles:
          type: array
          items:
            type: string
          uniqueItems: true
        sessionExpirationOverride:
          type: boolean
        sessionExpirationPeriod:
          $ref: "#/components/schemas/TimePeriod"
        systemPermissions:
          type: array
          description: List of system settings permission definitions this user has
            access to
          items:
            type: string
          uniqueItems: true
        timezone:
          type: string
        username:
          type: string
        xid:
          type: string
          description: XID of object
    UserBulkRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/UserModel"
        expiration:
          type: integer
          format: int64
        id:
          type: string
        requests:
          type: array
          items:
            $ref: "#/components/schemas/UserIndividualRequest"
        timeout:
          type: integer
          format: int64
    UserBulkResponse:
      type: object
      properties:
        hasError:
          type: boolean
        responses:
          type: array
          items:
            $ref: "#/components/schemas/UserIndividualResponse"
    UserCommentModel:
      type: object
      properties:
        comment:
          type: string
        commentType:
          type: string
          enum:
          - "POINT,EVENT,JSON_DATA"
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          writeOnly: true
        referenceId:
          type: integer
          format: int32
        revision:
          type: integer
          format: int32
        timestamp:
          type: integer
          format: int64
        userId:
          type: integer
          format: int32
        username:
          type: string
        xid:
          type: string
          description: XID of object
    UserCommentQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/UserCommentModel"
        total:
          type: integer
          format: int32
    UserIndividualRequest:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/UserModel"
        username:
          type: string
    UserIndividualResponse:
      type: object
      properties:
        action:
          type: string
          enum:
          - GET
          - CREATE
          - UPDATE
          - DELETE
        body:
          $ref: "#/components/schemas/UserModel"
        error:
          $ref: "#/components/schemas/AbstractRestException"
        httpStatus:
          type: integer
          format: int32
        username:
          type: string
    UserModel:
      type: object
      properties:
        created:
          type: string
          format: date-time
        data:
          $ref: "#/components/schemas/JsonNode"
        disabled:
          type: boolean
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        email:
          type: string
        emailVerified:
          type: string
          format: date-time
        hashAlgorithm:
          type: string
        homeUrl:
          type: string
        id:
          type: integer
          format: int32
          description: ID of object in database
        inheritedRoles:
          type: array
          items:
            type: string
          uniqueItems: true
        lastLogin:
          type: string
          format: date-time
        lastPasswordChange:
          type: string
          format: date-time
        linkedAccounts:
          type: array
          items:
            oneOf:
            - $ref: "#/components/schemas/OAuth2LinkedAccountModel"
        locale:
          type: string
        muted:
          type: boolean
        name:
          type: string
          description: Name of object
        oldHashAlgorithm:
          type: boolean
        organization:
          type: string
        organizationalRole:
          type: string
        password:
          type: string
        passwordLocked:
          type: boolean
        phone:
          type: string
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        receiveAlarmEmails:
          type: string
          enum:
          - NONE
          - INFORMATION
          - IMPORTANT
          - WARNING
          - URGENT
          - CRITICAL
          - LIFE_SAFETY
          - DO_NOT_LOG
          - IGNORE
        receiveOwnAuditEvents:
          type: boolean
        revision:
          type: integer
          format: int32
        roles:
          type: array
          items:
            type: string
          uniqueItems: true
        sessionExpirationOverride:
          type: boolean
        sessionExpirationPeriod:
          $ref: "#/components/schemas/TimePeriod"
        systemPermissions:
          type: array
          description: List of system settings permission definitions this user has
            access to
          items:
            type: string
          uniqueItems: true
        timezone:
          type: string
        username:
          type: string
        xid:
          type: string
          description: XID of object
    UserQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/UserModel"
        total:
          type: integer
          format: int32
    ValueMonitorModel:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        uploadToStore:
          type: boolean
        value: {}
    ValueTimeModel:
      type: object
      properties:
        raw: {}
        rendered:
          type: string
        timestamp: {}
        value: {}
    VirtualSerialPortConfig:
      type: object
      description: Serial Port
      properties:
        portName:
          type: string
        portType:
          type: string
        xid:
          type: string
    WatchListDataPointModel:
      type: object
      properties:
        deviceName:
          type: string
        name:
          type: string
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        setPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        xid:
          type: string
    WatchListModel:
      type: object
      description: WatchList of update
      properties:
        data:
          type: object
          additionalProperties: {}
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        params:
          type: array
          items:
            $ref: "#/components/schemas/WatchListParameter"
        points:
          type: array
          items:
            $ref: "#/components/schemas/WatchListDataPointModel"
        query:
          type: string
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        type:
          type: string
        xid:
          type: string
          description: XID of object
    WatchListParameter:
      type: object
      properties:
        label:
          type: string
        name:
          type: string
        options:
          type: object
          additionalProperties: {}
        type:
          type: string
    WatchListQueryResult:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: "#/components/schemas/WatchListSummaryModel"
        total:
          type: integer
          format: int32
    WatchListSummaryModel:
      type: object
      properties:
        data:
          type: object
          additionalProperties: {}
        editPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        id:
          type: integer
          format: int32
          description: ID of object in database
        name:
          type: string
          description: Name of object
        params:
          type: array
          items:
            $ref: "#/components/schemas/WatchListParameter"
        query:
          type: string
        readPermission:
          $ref: "#/components/schemas/MangoPermissionModel"
        revision:
          type: integer
          format: int32
        type:
          type: string
        xid:
          type: string
          description: XID of object
    WildcardDateRangeRule1:
      allOf:
      - $ref: "#/components/schemas/CalendarRule"
      - type: object
        properties:
          endDate:
            $ref: "#/components/schemas/WildcardDateRule1"
          startDate:
            $ref: "#/components/schemas/WildcardDateRule1"
    WildcardDateRule1:
      allOf:
      - $ref: "#/components/schemas/CalendarRule"
      - type: object
        properties:
          day:
            type: integer
            format: int32
          dayOfWeek:
            type: integer
            format: int32
          month:
            type: integer
            format: int32
          year:
            type: integer
            format: int32
    WirelessInfoVO:
      type: object
      properties:
        address:
          type: string
        channel:
          type: integer
          format: int32
        flags:
          type: array
          items:
            type: string
        frequency:
          type: number
          format: double
        signal:
          type: number
          format: double
        ssid:
          type: string
    WorkItemInfo:
      type: object
      properties:
        classname:
          type: string
        description:
          type: string
        priority:
          type: string
    X500Name:
      type: object
      properties:
        attributeTypes:
          type: array
          items:
            $ref: "#/components/schemas/ASN1ObjectIdentifier"
        encoded:
          type: string
          format: byte
        rdns:
          type: array
          items:
            $ref: "#/components/schemas/RDN"
    XidLatestQueryInfoModel:
      type: object
      description: Query Information
      properties:
        before:
          type: string
          format: date-time
        dateTimeFormat:
          type: string
        fields:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
        limit:
          type: integer
          format: int32
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        timezone:
          type: string
        useCache:
          type: string
          enum:
          - CACHE_ONLY
          - NONE
          - BOTH
        xids:
          type: array
          items:
            type: string
    XidRollupTimeRangeQueryModel:
      type: object
      description: Query Information
      properties:
        dateTimeFormat:
          type: string
        fields:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
        from:
          type: string
          format: date-time
        limit:
          type: integer
          format: int32
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        timePeriod:
          $ref: "#/components/schemas/TimePeriod"
        timezone:
          type: string
        to:
          type: string
          format: date-time
        truncate:
          type: boolean
        xids:
          type: array
          items:
            type: string
    XidStatisticsQueryInfoModel:
      type: object
      description: Query Information
      properties:
        dateTimeFormat:
          type: string
        fields:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
        from:
          type: string
          format: date-time
        rollup:
          type: string
          enum:
          - NONE
          - AVERAGE
          - DELTA
          - MINIMUM
          - MAXIMUM
          - ACCUMULATOR
          - SUM
          - FIRST
          - LAST
          - COUNT
          - INTEGRAL
          - FFT
          - ALL
          - START
          - POINT_DEFAULT
          - ARITHMETIC_MEAN
          - MINIMUM_IN_PERIOD
          - MAXIMUM_IN_PERIOD
          - RANGE_IN_PERIOD
        timezone:
          type: string
        to:
          type: string
          format: date-time
        xids:
          type: array
          items:
            type: string
    XidTimeRangeQueryModel:
      type: object
      description: Query Information
      properties:
        bookend:
          type: boolean
        dateTimeFormat:
          type: string
        fields:
          type: array
          items:
            type: string
            enum:
            - VALUE
            - TIMESTAMP
            - ANNOTATION
            - CACHED
            - BOOKEND
            - RENDERED
            - RAW
            - XID
            - NAME
            - DEVICE_NAME
            - DATA_SOURCE_NAME
        from:
          type: string
          format: date-time
        limit:
          type: integer
          format: int32
        simplifyTarget:
          type: integer
          format: int32
        simplifyTolerance:
          type: number
          format: double
        timezone:
          type: string
        to:
          type: string
          format: date-time
        useCache:
          type: string
          enum:
          - CACHE_ONLY
          - NONE
          - BOTH
        xids:
          type: array
          items:
            type: string
  securitySchemes:
    mango-basic:
      description: Mango username/password
      scheme: basic
      type: http
    mango-jwt:
      bearerFormat: JWT
      description: Mango JWT bearer token
      scheme: bearer
      type: http
