openapi: 3.1.0
info:
  version: 3.4.0
  contact:
    name: Kong
    url: https://github.com/Kong/kong
  title: Kong Admin API
  license:
    name: Apache 2.0
    url: https://github.com/Kong/kong/blob/master/LICENSE
  summary: Kong RESTful Admin API for administration purposes.
  description: "       {{site.base_gateway}} comes with an **internal** RESTful Admin
    API for administration purposes.\n        Requests to the Admin API can be sent
    to any node in the cluster, and Kong will\n        keep the configuration consistent
    across all nodes.\n\n        - `8001` is the default port on which the Admin API
    listens.\n        - `8444` is the default port for HTTPS traffic to the Admin
    API.\n\n        This API is designed for internal use and provides full control
    over Kong, so\n        care should be taken when setting up Kong environments
    to avoid undue public\n        exposure of this API. See [this document][secure-admin-api]
    for a discussion\n        of methods to secure the Admin API.\n      "
paths:
  /certificates/{certificates}/snis: []
  /schemas/{db_entity_name}/validate:
    post:
      description: This method is not available when using DB-less mode.
      summary: Validate a configuration against a schema
  /targets/{targets}: []
  /targets/{targets}/upstream: []
  /certificates/{certificates}:
    get: []
    put:
      description: This method is not available when using DB-less mode.
    patch:
      description: This method is not available when using DB-less mode.
  /debug/node/log-level:
    get:
      summary: Retrieve node log level of a node
  /upstreams/{upstreams}/health:
    get:
      summary: Show Upstream health for node
  /consumers/{consumers}/plugins:
    post:
      description: This method is not available when using DB-less mode.
  /services/{services}/plugins:
    post:
      description: This method is not available when using DB-less mode.
  /schemas/plugins/{name}:
    get:
      summary: Retrieve Plugin Schema
  /upstreams/{upstreams}/targets/all:
    get:
      summary: List all Targets
  /schemas/{name}:
    get:
      summary: Retrieve Entity Schema
  /plugins/enabled:
    get:
      summary: Retrieve Enabled Plugins
  /tags/{tags}:
    get:
      summary: ' List entity IDs by tag '
  /snis/{snis}/certificate: []
  /endpoints:
    get:
      summary: List available endpoints
  /plugins/{plugins}:
    patch:
      description: This method is not available when using DB-less mode.
  /routes/{routes}/plugins:
    post:
      description: This method is not available when using DB-less mode.
  /cache:
    delete:
      description: This method is not available when using DB-less mode.
  /services/:services/plugins/:plugins:
    patch: []
  /consumers:
    get: []
  /consumers/{consumers}/plugins/{plugins}:
    patch:
      description: This method is not available when using DB-less mode.
  /upstreams/{upstreams}/targets/{targets}:
    get: []
    put:
      description: This method is not available when using DB-less mode.
    delete:
      description: This method is not available when using DB-less mode.
      summary: Delete Target
    patch:
      description: This method is not available when using DB-less mode.
      summary: Update Target
  /upstreams/{upstreams}/targets/{targets}/healthy:
    put:
      description: This method is not available when using DB-less mode.
      summary: Set target as healthy
  /debug/node/log-level/{log_level}:
    put:
      description: This method is not available when using DB-less mode.
      summary: Set log level of a single node
  /upstreams/{upstreams}/targets/{targets}/{address}/unhealthy:
    put:
      description: This method is not available when using DB-less mode.
      summary: Set target address as unhealthy
  /upstreams/{upstreams}/targets/{targets}/unhealthy:
    put:
      description: This method is not available when using DB-less mode.
      summary: Set target as unhealthy
  /certificates/{certificates}/snis/{snis}: []
  /upstreams/{upstreams}/targets:
    get: []
    post:
      description: This method is not available when using DB-less mode.
  /upstreams/{upstreams}/targets/{targets}/{address}/healthy:
    put:
      description: This method is not available when using DB-less mode.
      summary: Set target address as healthy
  /cache/{key}:
    delete:
      description: This method is not available when using DB-less mode.
    get: []
  /:
    get:
      summary: Retrieve node information
  /debug/cluster/log-level/{log_level}:
    put:
      description: This method is not available when using DB-less mode.
      summary: Set node log level of all nodes
  /schemas/plugins/validate:
    post:
      description: This method is not available when using DB-less mode.
      summary: Validate a plugin configuration against the schema
  /clustering/status: []
  /timers:
    get:
      summary: Retrieve runtime debugging info of Kong's timers
  /targets: []
  /status:
    get:
      summary: Retrieve node status
  /plugins:
    post:
      description: This method is not available when using DB-less mode.
  /clustering/data-planes: []
  /config:
    get:
      description: This method is only available when using DB-less mode.
    post:
      description: This method is only available when using DB-less mode.
  /routes/{routes}/plugins/{plugins}:
    patch:
      description: This method is not available when using DB-less mode.
  /filter-chains:
    post:
      description: This method is not available when using DB-less mode.
  /filter-chains/{filter_chains}:
    patch:
      description: This method is not available when using DB-less mode.
    delete:
      description: This method is not available when using DB-less mode.
  /services/{services}/filter-chains:
    post:
      description: This method is not available when using DB-less mode.
  /services/{services}/filter-chains/{filter_chains}:
    patch:
      description: This method is not available when using DB-less mode.
    delete:
      description: This method is not available when using DB-less mode.
  /routes/{routes}/filter-chains:
    post:
      description: This method is not available when using DB-less mode.
  /routes/{routes}/filter-chains/{filter_chains}:
    patch:
      description: This method is not available when using DB-less mode.
    delete:
      description: This method is not available when using DB-less mode.
components:
  schemas:
    key_sets:
      type: object
      properties:
        id:
          format: uuid
          type: string
        tags:
          type: array
        name:
          type: string
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
      required: []
    clustering_data_planes:
      type: object
      properties:
        version:
          type: string
        last_seen:
          format: int32
          type: integer
        config_hash:
          type: string
        sync_status:
          default: unknown
          type: string
        id:
          type: string
        updated_at:
          format: int32
          type: integer
        hostname:
          type: string
        ip:
          type: string
      required:
      - id
      - ip
      - hostname
      - sync_status
    parameters:
      type: object
      properties:
        value:
          type: string
        created_at:
          format: int32
          type: integer
        key:
          type: string
      required:
      - key
      - value
    plugins:
      type: object
      properties:
        config:
          type: array
        consumer:
          nullable: true
          $ref: '#/components/schemas/consumers'
          default: ~
        enabled:
          default: true
          type: boolean
        protocols:
          enum:
          - http
          - https
          - tcp
          - tls
          - udp
          - grpc
          - grpcs
          type: array
          default:
          - grpc
          - grpcs
          - http
          - https
        instance_name:
          type: string
        id:
          format: uuid
          type: string
        tags:
          type: array
        updated_at:
          format: int32
          type: integer
        name:
          type: string
        route:
          nullable: true
          $ref: '#/components/schemas/routes'
          default: ~
        created_at:
          format: int32
          type: integer
        service:
          nullable: true
          $ref: '#/components/schemas/services'
          default: ~
      required:
      - name
      - protocols
      - enabled
    tags:
      type: object
      properties:
        entity_name:
          type: string
        entity_id:
          type: string
        tag:
          type: string
      required:
      - tag
      - entity_name
      - entity_id
    services:
      type: object
      properties:
        retries:
          default: 5
          type: integer
        connect_timeout:
          default: 60000
          type: integer
        tags:
          type: array
        write_timeout:
          default: 60000
          type: integer
        read_timeout:
          default: 60000
          type: integer
        created_at:
          format: int32
          type: integer
        client_certificate:
          $ref: '#/components/schemas/certificates'
        protocol:
          default: http
          type: string
        tls_verify_depth:
          nullable: true
          type: integer
          default: ~
        host:
          type: string
        port:
          default: 80
          type: integer
        enabled:
          default: true
          type: boolean
        ca_certificates:
          type: array
        updated_at:
          format: int32
          type: integer
        id:
          format: uuid
          type: string
        path:
          type: string
        name:
          type: string
        tls_verify:
          type: boolean
      required:
      - protocol
      - host
      - port
      - enabled
    routes:
      type: object
      properties:
        strip_path:
          default: true
          type: boolean
        https_redirect_status_code:
          default: 426
          type: integer
        path_handling:
          default: v0
          type: string
        hosts:
          type: array
        methods:
          type: array
        paths: []
        protocols:
          default:
          - http
          - https
          type: array
        sources:
          type: array
        id:
          format: uuid
          type: string
        tags:
          type: array
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
        headers:
          type: array
        regex_priority:
          default: 0
          type: integer
        preserve_host:
          default: false
          type: boolean
        destinations:
          type: array
        request_buffering:
          default: true
          type: boolean
        snis:
          type: array
        response_buffering:
          default: true
          type: boolean
        name:
          type: string
        service:
          $ref: '#/components/schemas/services'
      required:
      - protocols
      - https_redirect_status_code
      - strip_path
      - preserve_host
      - request_buffering
      - response_buffering
    consumers:
      type: object
      properties:
        custom_id:
          type: string
        id:
          format: uuid
          type: string
        tags:
          type: array
        username:
          type: string
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
      required: []
    workspaces:
      type: object
      properties:
        id:
          format: uuid
          type: string
        config:
          type: array
        meta:
          type: array
        name:
          type: string
        comment:
          type: string
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
      required:
      - name
    certificates:
      type: object
      properties:
        key_alt:
          type: string
        id:
          format: uuid
          type: string
        tags:
          type: array
        key:
          type: string
        cert_alt:
          type: string
        updated_at:
          format: int32
          type: integer
        created_at:
          format: int32
          type: integer
        cert:
          type: string
      required:
      - cert
      - key
    ca_certificates:
      type: object
      properties:
        id:
          format: uuid
          type: string
        tags:
          type: array
        cert_digest:
          type: string
        updated_at:
          format: int32
          type: integer
        created_at:
          format: int32
          type: integer
        cert:
          type: string
      required:
      - cert
    snis:
      type: object
      properties:
        id:
          format: uuid
          type: string
        tags:
          type: array
        certificate:
          $ref: '#/components/schemas/certificates'
        name:
          type: string
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
      required:
      - name
      - certificate
    upstreams:
      type: object
      properties:
        hash_on:
          default: none
          type: string
        hash_fallback:
          default: none
          type: string
        hash_on_header:
          type: string
        hash_fallback_header:
          type: string
        id:
          format: uuid
          type: string
        tags:
          type: array
        hash_on_cookie_path:
          default: /
          type: string
        hash_on_query_arg:
          type: string
        created_at:
          format: int32
          type: integer
        hash_fallback_query_arg:
          type: string
        hash_on_uri_capture:
          type: string
        hash_fallback_uri_capture:
          type: string
        host_header:
          type: string
        use_srv_name:
          default: false
          type: boolean
        client_certificate:
          $ref: '#/components/schemas/certificates'
        healthchecks:
          default:
            active:
              healthy:
                interval: 0
                http_statuses:
                - 200
                - 302
                successes: 0
              concurrency: 10
              unhealthy:
                interval: 0
                http_statuses:
                - 429
                - 404
                - 500
                - 501
                - 502
                - 503
                - 504
                - 505
                tcp_failures: 0
                timeouts: 0
                http_failures: 0
              timeout: 1
              http_path: /
              type: http
              https_verify_certificate: true
            passive:
              healthy:
                http_statuses:
                - 200
                - 201
                - 202
                - 203
                - 204
                - 205
                - 206
                - 207
                - 208
                - 226
                - 300
                - 301
                - 302
                - 303
                - 304
                - 305
                - 306
                - 307
                - 308
                successes: 0
              type: http
              unhealthy:
                tcp_failures: 0
                timeouts: 0
                http_statuses:
                - 429
                - 500
                - 503
                http_failures: 0
          type: array
        hash_on_cookie:
          type: string
        updated_at:
          format: int32
          type: integer
        slots:
          default: 10000
          type: integer
        name:
          type: string
        algorithm:
          default: round-robin
          type: string
      required:
      - name
    targets:
      type: object
      properties:
        weight:
          default: 100
          type: integer
        id:
          format: uuid
          type: string
        tags:
          type: array
        upstream:
          $ref: '#/components/schemas/upstreams'
        target:
          type: string
        created_at:
          format: float
          type: number
        updated_at:
          format: float
          type: number
      required:
      - upstream
      - target
    vaults:
      type: object
      properties:
        description:
          type: string
        id:
          format: uuid
          type: string
        prefix:
          type: string
        tags:
          type: array
        config:
          type: array
        created_at:
          format: int32
          type: integer
        name:
          type: string
        updated_at:
          format: int32
          type: integer
      required:
      - prefix
      - name
    keys:
      type: object
      properties:
        kid:
          type: string
        jwk:
          type: string
        id:
          format: uuid
          type: string
        tags:
          type: array
        pem: []
        set:
          $ref: '#/components/schemas/key_sets'
        name:
          type: string
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
      required:
      - kid
    filter_chains:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        enabled:
          type: boolean
          default: true
        filters:
          type: array
          items:
            $ref: '#/components/schemas/filters'
        service:
          nullable: true
          $ref: '#/components/schemas/services'
          default: ~
        route:
          nullable: true
          $ref: '#/components/schemas/routes'
          default: ~
        tags:
          type: array
        created_at:
          format: int32
          type: integer
        updated_at:
          format: int32
          type: integer
      required: []
    filters:
      properties:
        name:
          type: string
        config:
          type: string
        enabled:
          type: boolean
          default: true
      required:
        - name
servers:
- description: 8001 is the default port on which the Admin API listens.
  url: http://localhost:8001
- description: 8444 is the default port for HTTPS traffic to the Admin API.
  url: https://localhost:8444
