Choreo Components API

Manage components (services, APIs, web apps, jobs) within projects.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

choreo-components-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Choreo API Management Alerts Components API
  description: The Choreo API Management API provides programmatic access to manage the full lifecycle of APIs on the WSO2 Choreo platform. It allows API creators to create, publish, version, and manage APIs, configure rate limiting policies, and manage API documentation. Choreo is an AI-native internal developer platform that simplifies building, deploying, and managing cloud-native applications.
  version: 1.0.0
  contact:
    name: WSO2 Choreo
    url: https://choreo.dev/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  x-provider-slug: choreo
  x-api-slug: api-management
servers:
- url: https://console.choreo.dev/api/v1
  description: Choreo Console API
security:
- bearerAuth: []
- oauth2:
  - read
  - write
tags:
- name: Components
  description: Manage components (services, APIs, web apps, jobs) within projects.
paths:
  /organizations/{orgId}/projects/{projectId}/components:
    get:
      operationId: listComponents
      summary: Choreo List components
      description: Retrieve a list of components within a project. Components represent services, APIs, web apps, jobs, and other deployable units.
      tags:
      - Components
      parameters:
      - name: orgId
        in: path
        required: true
        schema:
          type: string
        description: Organization identifier.
      - name: projectId
        in: path
        required: true
        schema:
          type: string
        description: Project identifier.
      responses:
        '200':
          description: Successful response with list of components.
          content:
            application/json:
              schema:
                type: object
                properties:
                  list:
                    type: array
                    items:
                      $ref: '#/components/schemas/Component'
        '401':
          description: Unauthorized.
        '404':
          description: Project not found.
    post:
      operationId: createComponent
      summary: Choreo Create a component
      description: Create a new component within a project. A component can be a service, API proxy, web application, scheduled job, manual trigger, or event handler.
      tags:
      - Components
      parameters:
      - name: orgId
        in: path
        required: true
        schema:
          type: string
        description: Organization identifier.
      - name: projectId
        in: path
        required: true
        schema:
          type: string
        description: Project identifier.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComponentCreate'
      responses:
        '201':
          description: Component created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '400':
          description: Bad request.
        '401':
          description: Unauthorized.
  /organizations/{orgId}/projects/{projectId}/components/{componentId}:
    get:
      operationId: getComponent
      summary: Choreo Get a component
      description: Retrieve details of a specific component.
      tags:
      - Components
      parameters:
      - name: orgId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: componentId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with component details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Component'
        '401':
          description: Unauthorized.
        '404':
          description: Component not found.
    delete:
      operationId: deleteComponent
      summary: Choreo Delete a component
      description: Delete a specific component from a project.
      tags:
      - Components
      parameters:
      - name: orgId
        in: path
        required: true
        schema:
          type: string
      - name: projectId
        in: path
        required: true
        schema:
          type: string
      - name: componentId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Component deleted successfully.
        '401':
          description: Unauthorized.
        '404':
          description: Component not found.
components:
  schemas:
    Component:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the component.
        name:
          type: string
          description: Name of the component.
        type:
          type: string
          enum:
          - Service
          - REST API Proxy
          - GraphQL API Proxy
          - Web Application
          - Scheduled Job
          - Manual Trigger
          - Event Handler
          - Webhook
          description: Type of the component.
        description:
          type: string
          description: Description of the component.
        repoUrl:
          type: string
          description: Git repository URL.
        branch:
          type: string
          description: Git branch.
        buildpackId:
          type: string
          description: Buildpack used for the component.
        projectId:
          type: string
        orgId:
          type: string
        status:
          type: string
          enum:
          - Active
          - Inactive
        createdAt:
          type: string
          format: date-time
    ComponentCreate:
      type: object
      required:
      - name
      - type
      - repoUrl
      properties:
        name:
          type: string
          description: Name of the component.
        type:
          type: string
          enum:
          - Service
          - REST API Proxy
          - GraphQL API Proxy
          - Web Application
          - Scheduled Job
          - Manual Trigger
          - Event Handler
          - Webhook
          description: Type of the component.
        description:
          type: string
        repoUrl:
          type: string
          description: Git repository URL.
        branch:
          type: string
          description: Git branch.
          default: main
        buildpackId:
          type: string
          description: Buildpack identifier.
        subPath:
          type: string
          description: Sub-path within the repository.
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://console.choreo.dev/oauth2/authorize
          tokenUrl: https://console.choreo.dev/oauth2/token
          scopes:
            read: Read access
            write: Write access
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT