openapi: 3.0.1
info:
  title: RTM Web Service
  description: |
    #Revision History  
     | Version | Date       | Description |  
     | ------- | ---------- | ----------- |  
     | 1.0     | 08/12/2025 | Initial Version|  
    # Overview
    These APIs provide a flexibility to send OR receive the messages from RTM Mqueues.  
  version: 1.0.0
servers:
  - url: https://api.seic.com
    description: Production Server with unmasked data.
paths:
  /v1/rtmws/messageCount:
    post:
      summary: End point to know the "Message Count" on a given queue.
      description: Use this endpoint to get the count of messages on a given queue.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - server
                - mqQueueName
              properties:
                server:
                  type: string
                  example: PROD
                mqQueueName:
                  type: string
                  example: PROD.LABBETT.IN
      responses:
        '200':
          description: OK - The request has succeeded and the response has been returned. Returns total message count on a queue.
          content:
            application/json:
              schema:
                type: object
                properties:
                  messageCount:
                    type: string
                    example: "6"
        '400':
          description: Bad Request - The server cannot or will not process the request due to a client error.
        '405':
          description: Method Not Allowed - Requested method not supported.
        '500':
          description: Internal Server Error - The server encountered an unexpected condition.
  /v1/rtmws/sendMessage:
    post:
      summary: End point to send the message on any given queue.
      description: End point to send the message on any given queue.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - server
                - mqQueueName
                - msgIdentifier
                - file
                - message
              properties:
                server:
                  type: string
                  example: PROD
                mqQueueName:
                  type: string
                  example: PROD.LABBETT.IN
                msgIdentifier:
                  type: string
                  example: OTHERS
                file:
                  type: string
                  example: N
                message:
                  type: string
                  example: Q6UJ9A24TET7|RECEIVED [Include @@ at the start and end of the message]
      responses:
        '200':
          description: OK - The request has succeeded and the message has been successfully put on queue.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: "Message was successfully put on queue PROD.LABBETT.IN"
        '400':
          description: Bad Request - The server cannot or will not process the request due to a client error.
        '405':
          description: Method Not Allowed - Requested method not supported.
        '500':
          description: Internal Server Error - The server encountered an unexpected condition.
  /v1/rtmws/receiveMessage:
    post:
      summary: End point to receive the message from any given queue.
      description: End point to receive the message from any given queue.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - server
                - mqQueueName
                - deleteOnReceive
              properties:
                server:
                  type: string
                  example: PROD
                mqQueueName:
                  type: string
                  example: PROD.LABBETT.IN
                deleteOnReceive:
                  type: string
                  example: N OR Y
      responses:
        '200':
          description: OK - The request has succeeded and the message has been successfully put on queue.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Q6UJ9A24TET7|RECEIVED [@@ will be included at the start and end of the message]
        '400':
          description: Bad Request - The server cannot or will not process the request due to a client error.
        '405':
          description: Method Not Allowed - Requested method not supported.
        '500':
          description: Internal Server Error - The server encountered an unexpected condition.
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: >-
        To access any API, first obtain an OAuth Token. Refer to the Access
        Token documentation for more information. The token has a 60 minutes
        active TTL and 30 minutes inactive TTL. An application making SEI API
        Requests from a Client/Server or Server/Server type of infrastructure
        will leverage the grant_type client_credentials while minting an OAuth
        from the Token API.
      flows:
        clientCredentials:
          tokenUrl: /v2/oauthtoken
          scopes: {}
    bearerAuth:
      type: http
      description: >-
        After successfully obtaining an OAuth token, pass the access_token value
        to the desired API endpoint by including the header parameter
        'Authorization' with the value 'Bearer access_token'.
      scheme: bearer
    ApiKeyAuth:
      type: apiKey
      description: >-
        Pass the header parameter 'AppKey' to the API endpoint to authenticate
        your application. This value can be found within the 'My Apps' page.
        This value uniquely identifies the registered application.
      name: AppKey
      in: header