Symphony Users API

The Users API from Symphony — 4 operation(s) for users.

OpenAPI Specification

symphony-users-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Symphony Agent Add Users 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: 22.9.1
servers:
- url: /
tags:
- name: Users
paths:
  /v1/channelco/user:
    get:
      tags:
      - Users
      security:
      - JwtAuth: []
      summary: Symphony Search Channelco User
      operationId: searchUser
      parameters:
      - name: email
        in: query
        schema:
          type: string
        required: true
        description: user's email
        example: user@comcocompany.com
      responses:
        '200':
          description: body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCoUserAndCompany'
        '400':
          description: Something was wrong about the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The user do not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      tags:
      - Users
      security:
      - JwtAuth: []
      summary: Symphony Create Channelco User
      operationId: createUser
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelCoUsersListRequest'
      responses:
        '201':
          description: body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCoUsersListResponse'
        '400':
          description: Something was wrong about the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v1/channelco/company/{companyId}/user/{userId}/roles/add:
    post:
      tags:
      - Users
      security:
      - JwtAuth: []
      summary: Symphony Adds a Role to a Channelco User's Account
      operationId: addRole
      parameters:
      - name: userId
        in: path
        schema:
          type: integer
          format: int64
        required: true
        description: symphony user id
        example: 123456789
      - name: companyId
        in: path
        schema:
          type: string
        required: true
        description: company Id of the user
        example: '10'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Role'
      responses:
        '200':
          description: body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiInfo'
        '400':
          description: Something was wrong about the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The user do not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v1/channelco/company/{companyId}/user/{userId}:
    get:
      tags:
      - Users
      security:
      - JwtAuth: []
      summary: Symphony Get Channelco User by Companyid and Userid
      operationId: getUser
      parameters:
      - name: userId
        in: path
        schema:
          type: integer
          format: int64
        required: true
        description: symphony user id
        example: 123456789
      - name: companyId
        in: path
        schema:
          type: string
        required: true
        description: company Id of the user
        example: '10'
      responses:
        '200':
          description: body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCoUserAndCompany'
        '400':
          description: Something was wrong about the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The user do not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    put:
      tags:
      - Users
      security:
      - JwtAuth: []
      summary: Symphony Update Channelco User
      operationId: updateUser
      parameters:
      - name: userId
        in: path
        schema:
          type: integer
          format: int64
        required: true
        description: symphony user id
        example: 123456789
      - name: companyId
        in: path
        schema:
          type: string
        required: true
        description: company Id of the user
        example: '10'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateChannelCoUserRequest'
      responses:
        '200':
          description: body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCoUser'
        '400':
          description: Something was wrong about the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The user do not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      tags:
      - Users
      security:
      - JwtAuth: []
      summary: Symphony Disable Channelco User
      operationId: disableUser
      parameters:
      - name: userId
        in: path
        schema:
          type: integer
          format: int64
        required: true
        description: symphony user id
        example: 123456789
      - name: companyId
        in: path
        schema:
          type: string
        required: true
        description: company Id of the user
        example: '10'
      responses:
        '204':
          description: The user was disabled successfully.
        '400':
          description: Something was wrong about the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The user do not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /pubkey/app/user/{userId}/authenticate:
    post:
      summary: Symphony Authenticate an application in a delegated context to act on behalf of a user
      consumes:
      - application/json
      produces:
      - application/json
      parameters:
      - name: sessionToken
        description: App Session authentication token.
        in: header
        required: true
        type: string
      - name: userId
        description: the user ID
        in: path
        required: true
        type: integer
        format: int64
      tags:
      - Users
      responses:
        '200':
          description: OK.
          schema:
            $ref: '#/definitions/Token'
        '401':
          description: Client is unauthorized to access this resource
          schema:
            $ref: '#/definitions/Error'
        '403':
          description: Forbidden to access this endpoint .
          schema:
            $ref: '#/definitions/Error'
        '500':
          description: Server error, see response body for further details.
          schema:
            $ref: '#/definitions/Error'
components:
  schemas:
    ChannelCoUserErrorResponse:
      allOf:
      - $ref: '#/components/schemas/ChannelCoUserRequest'
      - type: object
        properties:
          code:
            type: string
            description: error code
            example:
              alreadyExisting:
                value: USER_ALREADY_EXISTS
                description: user already existing belong a pod (error message will provide detail about pod url)
              existingCompany:
                value: COMPANY_ALREADY_EXISTS_USER_NEEDS_ACCESS
                description: company already exists and the user need access (error message will provide detail about pod url)
              existingComCoCompany:
                value: COMCO_COMPANY_ALREADY_EXISTS_USER_NEED_ACCESS
                description: comco company already exists and the user need access
              mismatchCompany:
                value: UNEXPECTED_ERROR
          message:
            type: string
            description: Human readable details about the information the api is returning
    ChannelCoUserAndCompany:
      allOf:
      - $ref: '#/components/schemas/ChannelCoUser'
      - type: object
        properties:
          companyId:
            type: string
            description: company Id of the user
            example: '10'
          companyName:
            type: string
            description: company name of the user
            example: Symphony
            maxLength: 64
    ApiInfo:
      type: object
      properties:
        code:
          type: string
          description: info code
        message:
          type: string
          description: Human readable details about the information the api is returning
        details:
          description: Full details about info
          type: object
    UpdateChannelCoUserRequest:
      type: object
      description: payload to update a channelco user account
      properties:
        email:
          type: string
          format: email
          example: foo@example.com
        firstName:
          type: string
          example: Paul
          maxLength: 64
        lastName:
          type: string
          example: Smith
          maxLength: 64
        displayName:
          type: string
          example: Paul Smith
        phoneNumber:
          type: string
          example: 33612345678
        department:
          type: string
          example: Product Engineering
          maxLength: 256
        title:
          type: string
          example: Engineering manager
          maxLength: 256
        location:
          type: string
          description: country
    ChannelCoUser:
      allOf:
      - $ref: '#/components/schemas/ChannelCoUserRequest'
      - type: object
        properties:
          userId:
            type: integer
            format: int64
            description: Member's user id
          username:
            type: string
            description: Member's username generated by API. If there is no naming conflict it is <firstName.lastName> (in lower case)
    Role:
      type: object
      properties:
        id:
          type: string
          description: role Id
          example: COMPLIANCE_OFFICER
      required:
      - id
    ChannelCoUserRequest:
      type: object
      description: payload to onboard a channelco user account
      properties:
        email:
          type: string
          format: email
          example: foo@example.com
        firstName:
          type: string
          example: Paul
          maxLength: 64
        lastName:
          type: string
          example: Smith
          maxLength: 64
        displayName:
          type: string
          example: Paul Smith
          maxLength: 128
          description: if omitted, it will be generated with the pattern <firstName lastName>
        phoneNumber:
          type: string
          example: 33612345678
        department:
          type: string
          example: Product Engineering
          maxLength: 256
        title:
          type: string
          example: Engineering manager
          maxLength: 256
        location:
          type: string
          description: country
      required:
      - email
      - firstName
      - lastName
    ChannelCoUserResponse:
      allOf:
      - $ref: '#/components/schemas/ChannelCoUserRequest'
      - type: object
        properties:
          userId:
            type: integer
            format: int64
            description: Member's user id
          username:
            type: string
            description: Member's username generated by API. It is expected to be the same as email
          code:
            type: string
            description: info code
            example:
              newCompany:
                value: USER_ADDED_NEW_COMPANY
                description: new company created and user added into it
              existingCompany:
                value: USER_ADDED_EXISTING_COMPANY
                description: company already exists, user added into it
              mismatchCompany:
                value: USER_ADDED_TO_DIFFERENT_COMPANY_NAME
                description: company already exists (lookup by domain name), but the name is different. User is added in the existing one
          message:
            type: string
            description: Human readable details about the information the api is returning
    ApiError:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: Human readable details about the error
        details:
          description: Full details about error, usefull for 400
          type: object
    ChannelCoUsersListRequest:
      type: object
      description: payload to onboard channelco users
      properties:
        companyName:
          type: string
          description: This field is mandatory only if a company with same domain (taken from email) does not exist yet
          example: Symphony
          maxLength: 64
        users:
          type: array
          items:
            $ref: '#/components/schemas/ChannelCoUserRequest'
      required:
      - companyName
      - users
    ChannelCoUsersListResponse:
      type: object
      properties:
        companyId:
          type: string
          description: company Id of the users
          example: '10'
        companyName:
          type: string
          description: company name of the users
          example: Symphony
          maxLength: 64
        success:
          type: array
          items:
            $ref: '#/components/schemas/ChannelCoUserResponse'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ChannelCoUserErrorResponse'
definitions:
  Token:
    type: object
    properties:
      name:
        description: 'The name of the header in which the token should be presented on subsequent API calls.

          '
        type: string
      token:
        type: string
        description: 'Authentication token that should be passed as header in each API rest calls.

          This should be considered opaque data by the client. It is not intended to contain any data interpretable by the

          client. The format is secret and subject to change without notice.

          '
      authorizationToken:
        type: string
        description: "(Beta) Short lived access token built from a user session. This field is still on Beta, please continue using \nthe returned \"token\" instead.\n"
  Error:
    type: object
    properties:
      code:
        type: integer
        format: int32
      message:
        type: string