Apache APISIX Protos API

Manage Protocol Buffer definition resources.

OpenAPI Specification

apache-apisix-protos-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Apache APISIX Admin Consumer Groups Protos API
  description: The Apache APISIX Admin API provides a RESTful interface to dynamically control and configure your deployed Apache APISIX instance. It allows management of routes, services, upstreams, consumers, SSL certificates, global rules, plugin configurations, consumer groups, secrets, and more. By default, the Admin API listens on port 9180 and requires API key authentication via the X-API-KEY header.
  version: 3.14.0
  contact:
    name: Apache APISIX
    url: https://apisix.apache.org
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: http://127.0.0.1:9180/apisix/admin
  description: Default local Admin API server
security:
- apiKey: []
tags:
- name: Protos
  description: Manage Protocol Buffer definition resources.
paths:
  /protos:
    get:
      operationId: listProtos
      summary: Apache APISIX List All Protos
      description: Fetches a list of all configured Protocol Buffer definition resources.
      tags:
      - Protos
      responses:
        '200':
          description: Successful response with list of protos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceList'
  /protos/{proto_id}:
    get:
      operationId: getProto
      summary: Apache APISIX Get a Proto
      description: Fetches the specified Protocol Buffer definition by its ID.
      tags:
      - Protos
      parameters:
      - $ref: '#/components/parameters/ProtoId'
      responses:
        '200':
          description: Successful response with proto details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponse'
        '404':
          description: Proto not found.
    put:
      operationId: createOrUpdateProto
      summary: Apache APISIX Create or Update a Proto
      description: Creates a proto with the specified ID, or updates it if it already exists.
      tags:
      - Protos
      parameters:
      - $ref: '#/components/parameters/ProtoId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Proto'
      responses:
        '200':
          description: Proto updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceResponse'
        '201':
          description: Proto created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceCreated'
    delete:
      operationId: deleteProto
      summary: Apache APISIX Delete a Proto
      description: Removes the specified Protocol Buffer definition.
      tags:
      - Protos
      parameters:
      - $ref: '#/components/parameters/ProtoId'
      responses:
        '200':
          description: Proto deleted successfully.
        '404':
          description: Proto not found.
components:
  schemas:
    ResourceResponse:
      type: object
      description: Standard response wrapper for a single resource.
      properties:
        key:
          type: string
          description: The etcd key path for the resource.
        value:
          type: object
          description: The resource configuration.
        modifiedIndex:
          type: integer
          description: The etcd modification index.
        createdIndex:
          type: integer
          description: The etcd creation index.
    ResourceCreated:
      type: object
      description: Response wrapper for a newly created resource.
      properties:
        key:
          type: string
          description: The etcd key path for the created resource.
        value:
          type: object
          description: The created resource configuration.
    ResourceList:
      type: object
      description: Standard response wrapper for a list of resources.
      properties:
        list:
          type: array
          items:
            $ref: '#/components/schemas/ResourceResponse'
          description: Array of resource entries.
        total:
          type: integer
          description: Total count of resources.
    Proto:
      type: object
      description: A Proto resource stores Protocol Buffer definitions used by the grpc-transcode plugin.
      required:
      - content
      properties:
        desc:
          type: string
          description: Description of the proto resource.
        content:
          type: string
          description: The Protocol Buffer definition content.
  parameters:
    ProtoId:
      name: proto_id
      in: path
      required: true
      description: Unique identifier of the proto resource.
      schema:
        type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Admin API key for authentication.