Rainbow Application Portal API

The Rainbow Application Portal REST API allows developers to manage Rainbow applications, register OAuth clients, and access provisioning and administration functions for the Rainbow platform.

OpenAPI Specification

rainbow-application-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Rainbow Application Portal API
  description: >-
    The Rainbow Application Portal API allows developers to register and manage
    Rainbow applications, configure OAuth clients, and perform administrative
    operations on the Rainbow CPaaS platform by Alcatel-Lucent Enterprise.
  version: '1.0'
  contact:
    url: https://developers.openrainbow.com/
  x-tags:
    - Applications
    - Administration
    - OAuth
    - Provisioning
    - CPaaS
servers:
  - url: https://openrainbow.com/api/rainbow
    description: Rainbow Production API

security:
  - BearerAuth: []

tags:
  - name: Applications
    description: Register and manage developer applications
  - name: Authentication
    description: OAuth2 token management

paths:
  /applications/v1.0/applications:
    get:
      operationId: listApplications
      summary: List Applications
      description: >-
        Returns the list of Rainbow applications registered by the authenticated
        developer account.
      tags:
        - Applications
      parameters:
        - name: limit
          in: query
          required: false
          description: Maximum number of applications to return
          schema:
            type: integer
            default: 25
        - name: offset
          in: query
          required: false
          description: Pagination offset
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of registered applications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationListResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'

    post:
      operationId: createApplication
      summary: Create Application
      description: Register a new Rainbow application to obtain API credentials.
      tags:
        - Applications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
      responses:
        '200':
          description: Application created with API credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'

  /applications/v1.0/applications/{appId}:
    get:
      operationId: getApplication
      summary: Get Application
      description: Returns the details of a specific registered application.
      tags:
        - Applications
      parameters:
        - name: appId
          in: path
          required: true
          description: Unique identifier of the application
          schema:
            type: string
      responses:
        '200':
          description: Application details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Application not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'

    delete:
      operationId: deleteApplication
      summary: Delete Application
      description: Delete a registered application and revoke its credentials.
      tags:
        - Applications
      parameters:
        - name: appId
          in: path
          required: true
          description: Unique identifier of the application
          schema:
            type: string
      responses:
        '200':
          description: Application deleted
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Application not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'

  /oauth/token:
    post:
      operationId: getOAuthToken
      summary: Get OAuth Token
      description: >-
        Exchange application credentials for a Bearer token to authenticate
        API requests. Supports client_credentials and password grant types.
      tags:
        - Authentication
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required: [grant_type]
              properties:
                grant_type:
                  type: string
                  enum: [client_credentials, password]
                  description: OAuth2 grant type
                client_id:
                  type: string
                  description: Application client ID
                client_secret:
                  type: string
                  description: Application client secret
                username:
                  type: string
                  description: User email (for password grant)
                password:
                  type: string
                  description: User password (for password grant)
      responses:
        '200':
          description: OAuth token response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthTokenResponse'
        '400':
          description: Bad Request - invalid credentials or grant type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Bearer token from OAuth2 token endpoint

  schemas:
    ApplicationListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Application'
        total:
          type: integer

    ApplicationResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Application'

    Application:
      type: object
      properties:
        id:
          type: string
          description: Unique application identifier
        name:
          type: string
          description: Application name
        appSecret:
          type: string
          description: Application secret (only returned on creation)
        type:
          type: string
          enum: [public, private]
        state:
          type: string
          enum: [active, inactive, suspended]
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time

    CreateApplicationRequest:
      type: object
      required: [name]
      properties:
        name:
          type: string
          description: Display name for the application
        description:
          type: string
          description: Application description
        type:
          type: string
          enum: [public, private]
          default: private

    OAuthTokenResponse:
      type: object
      properties:
        access_token:
          type: string
          description: Bearer token for API authentication
        token_type:
          type: string
          enum: [Bearer]
        expires_in:
          type: integer
          description: Token expiration in seconds
        scope:
          type: string
          description: Granted scopes

    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
        msg:
          type: string
        param:
          type: string