Consul Connect CA API

Certificate authority management

OpenAPI Specification

consul-connect-ca-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: HashiCorp Consul Connect CA API
  description: HTTP API for the Consul Connect service mesh subsystem of HashiCorp Consul. Connect APIs cover intentions (service-to-service traffic authorization) and certificate authority (CA) management for the built-in mesh CA. ACL tokens are typically passed via the X-Consul-Token header.
  version: 1.0.0
  contact:
    name: HashiCorp Consul
    url: https://developer.hashicorp.com/consul
servers:
- url: http://localhost:8500/v1
  description: Local Consul agent
- url: https://consul.example.com/v1
  description: Production Consul cluster
security:
- ConsulToken: []
tags:
- name: CA
  description: Certificate authority management
paths:
  /connect/ca/roots:
    get:
      operationId: listCaRoots
      summary: List CA root certificates
      tags:
      - CA
      parameters:
      - name: pem
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: Active root ID and root certificates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaRoots'
  /connect/ca/configuration:
    get:
      operationId: getCaConfiguration
      summary: Get CA configuration
      tags:
      - CA
      responses:
        '200':
          description: Current CA configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaConfiguration'
    put:
      operationId: updateCaConfiguration
      summary: Update CA configuration
      tags:
      - CA
      parameters:
      - name: ForceWithoutCrossSigning
        in: query
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaConfiguration'
      responses:
        '200':
          description: Configuration updated
components:
  schemas:
    CaConfiguration:
      type: object
      properties:
        Provider:
          type: string
          example: consul
        Config:
          type: object
          additionalProperties: true
        State:
          type: object
          additionalProperties: true
        ForceWithoutCrossSigning:
          type: boolean
        ModifyIndex:
          type: integer
    CaRoots:
      type: object
      properties:
        ActiveRootID:
          type: string
        TrustDomain:
          type: string
        Roots:
          type: array
          items:
            $ref: '#/components/schemas/CaRoot'
    CaRoot:
      type: object
      properties:
        ID:
          type: string
        Name:
          type: string
        SerialNumber:
          type: integer
        SigningKeyID:
          type: string
        ExternalTrustDomain:
          type: string
        NotBefore:
          type: string
          format: date-time
        NotAfter:
          type: string
          format: date-time
        RootCert:
          type: string
        IntermediateCerts:
          type: array
          items:
            type: string
        Active:
          type: boolean
        PrivateKeyType:
          type: string
        PrivateKeyBits:
          type: integer
  securitySchemes:
    ConsulToken:
      type: apiKey
      in: header
      name: X-Consul-Token