Red Hat 3scale APIcast Management API

The APIcast Management API is an HTTP REST interface exposed by the APIcast API gateway on port 8090 for debugging and runtime configuration. It provides endpoints to retrieve and update the gateway configuration, inspect DNS cache, trigger boot/initialization, and check readiness and liveness health status. Access is controlled via the APICAST_MANAGEMENT_API environment variable.

OpenAPI Specification

red-hat-3scale-apicast-management-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Red Hat 3scale APIcast Management API
  description: >-
    The APIcast Management API is an HTTP REST interface exposed by the APIcast
    API gateway on port 8090 for debugging and runtime configuration management.
    It provides endpoints to retrieve and update the gateway configuration,
    inspect DNS cache state, trigger boot/initialization sequences, and check
    readiness and liveness health status. Access level is controlled via the
    APICAST_MANAGEMENT_API environment variable (debug, status, or disabled).
    This API is intended for debugging and is not production-hardened.
  version: '1'
  contact:
    name: Red Hat 3scale Support
    url: https://access.redhat.com/support
  termsOfService: https://www.redhat.com/en/about/agreements
externalDocs:
  description: APIcast Management API Documentation
  url: https://github.com/3scale/APIcast/blob/master/doc/management-api.md
servers:
  - url: http://localhost:8090
    description: APIcast Management API (local)
tags:
  - name: Configuration
    description: Retrieve and update APIcast gateway configuration
  - name: DNS
    description: Inspect and manage DNS cache state
  - name: Health
    description: Health check and liveness/readiness probes
  - name: Initialization
    description: Bootstrap and initialization endpoints
paths:
  /config:
    get:
      operationId: getConfig
      summary: Get Gateway Configuration
      description: >-
        Returns the current APIcast configuration in JSON format. This includes
        the loaded service configurations, proxy settings, and policy chains
        currently active in the gateway.
      tags:
        - Configuration
      responses:
        '200':
          description: Current configuration returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayConfig'
        '404':
          description: No configuration loaded
    post:
      operationId: updateConfigPost
      summary: Update Gateway Configuration (POST)
      description: >-
        Updates the APIcast configuration by replacing it with the JSON payload
        provided in the request body.
      tags:
        - Configuration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayConfig'
      responses:
        '200':
          description: Configuration updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayConfig'
    put:
      operationId: updateConfigPut
      summary: Update Gateway Configuration (PUT)
      description: >-
        Updates the APIcast configuration by replacing it with the JSON payload
        provided in the request body (idempotent).
      tags:
        - Configuration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GatewayConfig'
      responses:
        '200':
          description: Configuration updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayConfig'
    delete:
      operationId: deleteConfig
      summary: Delete Gateway Configuration
      description: Deletes the current APIcast configuration, resetting the gateway.
      tags:
        - Configuration
      responses:
        '200':
          description: Configuration deleted successfully
        '404':
          description: No configuration loaded
  /boot:
    post:
      operationId: bootGateway
      summary: Boot Gateway
      description: >-
        Triggers the APIcast initialization process, causing the gateway to
        attempt to download a new configuration from the 3scale management API.
        This is useful for forcing a configuration refresh.
      tags:
        - Initialization
      responses:
        '200':
          description: Boot process initiated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BootResponse'
  /dns/cache:
    get:
      operationId: getDnsCache
      summary: Get DNS Cache
      description: >-
        Returns the current state of the APIcast DNS cache including cached
        records, their expiration times, and resolved IP addresses. Useful
        for debugging DNS resolution issues.
      tags:
        - DNS
      responses:
        '200':
          description: DNS cache contents returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DnsCacheResponse'
  /status/ready:
    get:
      operationId: getReadiness
      summary: Check Readiness
      description: >-
        Returns the readiness status of the APIcast gateway. Used as a
        Kubernetes readiness probe. Returns 200 when the gateway is ready
        to accept traffic, non-200 when not ready.
      tags:
        - Health
      responses:
        '200':
          description: Gateway is ready
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadinessStatus'
        '503':
          description: Gateway is not ready
  /status/live:
    get:
      operationId: getLiveness
      summary: Check Liveness
      description: >-
        Returns the liveness status of the APIcast gateway. Used as a
        Kubernetes liveness probe. Returns 200 if the process is alive.
      tags:
        - Health
      responses:
        '200':
          description: Gateway is alive
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LivenessStatus'
  /status/info:
    get:
      operationId: getStatusInfo
      summary: Get Status Information
      description: >-
        Returns internal information about the APIcast gateway including
        timer states, worker process counts, and internal configuration
        parameters useful for debugging.
      tags:
        - Health
      responses:
        '200':
          description: Status information returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusInfo'
components:
  schemas:
    GatewayConfig:
      type: object
      properties:
        services:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
              proxy:
                type: object
    BootResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
    DnsCacheResponse:
      type: object
      properties:
        dns_cache:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                description: The DNS hostname
              addresses:
                type: array
                items:
                  type: string
                description: Resolved IP addresses
              expire:
                type: number
                description: Expiration time in seconds
    ReadinessStatus:
      type: object
      properties:
        success:
          type: boolean
        status:
          type: string
          enum:
            - ready
            - not_ready
    LivenessStatus:
      type: object
      properties:
        success:
          type: boolean
    StatusInfo:
      type: object
      properties:
        timers:
          type: object
          additionalProperties: true
        workers:
          type: integer
          description: Number of worker processes