FINOS Room Membership API

The Room Membership API from FINOS — 8 operation(s) for room membership.

OpenAPI Specification

finos-room-membership-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Agent Admin Room Membership API
  description: 'This document refers to Symphony API calls to send and receive messages

    and content. They need the on-premise Agent installed to perform

    decryption/encryption of content.


    - sessionToken and keyManagerToken can be obtained by calling the

    authenticationAPI on the symphony back end and the key manager

    respectively. Refer to the methods described in authenticatorAPI.yaml.

    - Actions are defined to be atomic, ie will succeed in their entirety

    or fail and have changed nothing.

    - If it returns a 40X status then it will have sent no message to any

    stream even if a request to some subset of the requested streams

    would have succeeded.

    - If this contract cannot be met for any reason then this is an error

    and the response code will be 50X.

    - MessageML is a markup language for messages. See reference here:

    https://rest-api.symphony.com/docs/messagemlv2

    - **Real Time Events**: The following events are returned when reading

    from a real time messages and events stream ("datafeed"). These

    events will be returned for datafeeds created with the v5 endpoints.

    To know more about the endpoints, refer to Create Messages/Events

    Stream and Read Messages/Events Stream. Unless otherwise specified,

    all events were added in 1.46.

    '
  version: 25.8.1
servers:
- url: youragentURL.symphony.com/agent
tags:
- name: Room Membership
paths:
  /v1/room/{id}/membership/add:
    post:
      summary: Adds new member to an existing room.
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: payload
        in: body
        required: true
        schema:
          $ref: '#/definitions/UserId'
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/SuccessResponse'
          examples:
            application/json:
              format: TEXT
              message: Member added
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v1/room/{id}/membership/remove:
    post:
      summary: Removes member from an existing room.
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: payload
        in: body
        required: true
        schema:
          $ref: '#/definitions/UserId'
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/SuccessResponse'
          examples:
            application/json:
              format: TEXT
              message: Member removed
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v1/room/{id}/membership/promoteOwner:
    post:
      summary: Promotes user to owner.
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: payload
        in: body
        required: true
        schema:
          $ref: '#/definitions/UserId'
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/SuccessResponse'
          examples:
            application/json:
              format: TEXT
              message: Member promoted to owner
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v1/room/{id}/membership/demoteOwner:
    post:
      summary: Demotes room owner.
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: payload
        in: body
        required: true
        schema:
          $ref: '#/definitions/UserId'
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/SuccessResponse'
          examples:
            application/json:
              format: TEXT
              message: Owner demoted
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v2/room/{id}/membership/list:
    get:
      summary: Lists current members of an existing room.
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/MembershipList'
          examples:
            application/json:
            - id: 7078106103900
              owner: false
              joinDate: 1461430710531
            - id: 7078106103809
              owner: true
              joinDate: 1461426797875
            - id: 7078106103810
              owner: true
              joinDate: 1461426797833
              addedThroughGroups:
              - 68719476744
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v1/admin/room/{id}/membership/list:
    get:
      summary: Lists current and previous members of an existing room.
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      - name: includePastMembers
        in: query
        required: false
        type: boolean
        description: If true, the membership list will include past members of the stream. If false, the listing will only incude current members. Default false.
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/MembershipList'
          examples:
            application/json:
            - id: 7078106103900
              owner: false
              joinDate: 1461430710531
            - id: 7078106103809
              owner: true
              joinDate: 1461426797875
            - id: 7078106103810
              owner: true
              joinDate: 1461426797833
              addedThroughGroups:
              - 68719476744
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v1/admin/room/{id}/membership/add:
    post:
      summary: Add a member to an existing room.
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: payload
        in: body
        required: true
        schema:
          $ref: '#/definitions/UserId'
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/SuccessResponse'
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
  /v1/admin/room/{id}/membership/remove:
    post:
      summary: Remove a member from a room.
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: id
        description: Room streamId
        in: path
        required: true
        type: string
      - name: payload
        in: body
        required: true
        schema:
          $ref: '#/definitions/UserId'
      - name: sessionToken
        description: Session authentication token.
        in: header
        required: true
        type: string
      tags:
      - Room Membership
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/SuccessResponse'
        '400':
          description: Client error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 400
              message: // Client error, see response body for further details.
        '401':
          description: 'Unauthorized: Invalid session token.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 401
              message: Invalid session
        '403':
          description: 'Forbidden: Caller lacks necessary entitlement.'
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 403
              message: The user lacks the required entitlement to perform this operation
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
          examples:
            application/json:
              code: 500
              message: // Server error, see response body for further details.
definitions:
  MembershipList:
    description: List of members in a room.
    type: array
    items:
      $ref: '#/definitions/MemberInfo'
    example:
    - id: 7078106103900
      owner: false
      joinDate: 1461430710531
    - id: 7078106103809
      owner: true
      joinDate: 1461426797875
    - id: 7078106103810
      owner: true
      joinDate: 1461426797833
      addedThroughGroups:
      - 68719476744
  SuccessResponse:
    type: object
    properties:
      format:
        type: string
        enum:
        - TEXT
        - XML
        example: TEXT
      message:
        type: string
        example: Success
  UserId:
    type: object
    properties:
      id:
        type: integer
        format: int64
        example: 7215545058313
  MemberInfo:
    description: Detailed membership record.
    type: object
    properties:
      id:
        type: integer
        format: int64
        example: 7078106103810
      owner:
        type: boolean
        example: true
      joinDate:
        type: integer
        format: int64
        example: 1461426797833
      addedThroughGroups:
        description: When the user has been added to the stream through a group (aka SDL), this array contains the group ID which the user belongs to. Since SBE 20.14.
        x-since: 20.14
        type: array
        items:
          type: integer
          format: int64
        example:
        - 68719476744
  Error:
    type: object
    properties:
      code:
        type: integer
        format: int32
        example: 401
      message:
        type: string
        example: Invalid session