Ambassador TLSContexts API

Manage TLSContext resources that configure TLS settings for Ambassador, including certificates, protocols, and cipher suites.

OpenAPI Specification

ambassador-tlscontexts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Ambassador Edge Stack Diagnostics TLSContexts API
  description: API for managing Ambassador Edge Stack resources in Kubernetes environments. Ambassador Edge Stack is a Kubernetes-native API gateway built on Envoy Proxy that provides routing, load balancing, authentication, rate limiting, and observability for microservices. This specification covers the management of core custom resource definitions (CRDs) including Mapping, Host, TLSContext, RateLimitService, and related configuration resources exposed through the Edge Stack management API.
  version: 3.x
  contact:
    name: Ambassador Labs
    url: https://www.getambassador.io
    email: support@datawire.io
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{ambassador-host}:8877
  description: Ambassador Edge Stack Admin API
  variables:
    ambassador-host:
      default: localhost
      description: Hostname or IP of the Ambassador Edge Stack admin interface
- url: https://{ambassador-host}/edge_stack/api
  description: Ambassador Edge Stack Management API
  variables:
    ambassador-host:
      default: localhost
      description: Hostname or IP of the Ambassador Edge Stack service
security:
- bearerAuth: []
tags:
- name: TLSContexts
  description: Manage TLSContext resources that configure TLS settings for Ambassador, including certificates, protocols, and cipher suites.
  externalDocs:
    url: https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/
paths:
  /apis/getambassador.io/v3alpha1/namespaces/{namespace}/tlscontexts:
    get:
      operationId: listTLSContexts
      summary: Ambassador List All Tls Contexts in a Namespace
      description: Returns a list of all TLSContext resources in the specified namespace. TLSContexts configure TLS settings such as certificates, protocols, and cipher suites.
      tags:
      - TLSContexts
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/LabelSelector'
      responses:
        '200':
          description: TLSContext list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TLSContextList'
              examples:
                Listtlscontexts200Example:
                  summary: Default listTLSContexts 200 response
                  x-microcks-default: true
                  value:
                    apiVersion: example_value
                    kind: example_value
                    metadata:
                      continue: example_value
                      resourceVersion: example_value
                    items:
                    - apiVersion: example_value
                      kind: example_value
        '401':
          description: Authentication required
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createTLSContext
      summary: Ambassador Create a New Tls Context
      description: Creates a new TLSContext resource specifying TLS certificates, protocol versions, and cipher suite configuration.
      tags:
      - TLSContexts
      parameters:
      - $ref: '#/components/parameters/Namespace'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TLSContext'
            examples:
              CreatetlscontextRequestExample:
                summary: Default createTLSContext request
                x-microcks-default: true
                value:
                  apiVersion: example_value
                  kind: example_value
                  metadata:
                    name: Example Title
                    namespace: example_value
                    labels: example_value
                    annotations: example_value
                    creationTimestamp: '2026-01-15T10:30:00Z'
                    generation: 10
                    resourceVersion: example_value
                    uid: '500123'
                  spec:
                    hosts:
                    - {}
                    secret: example_value
                    cert_chain_file: example_value
                    private_key_file: example_value
                    ca_secret: example_value
                    cert_required: true
                    min_tls_version: v1.0
                    max_tls_version: v1.0
                    cipher_suites:
                    - {}
                    ecdh_curves:
                    - {}
                    alpn_protocols: example_value
                    redirect_cleartext_from: 10
                    sni: example_value
                    ambassador_id:
                    - {}
      responses:
        '201':
          description: TLSContext created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TLSContext'
              examples:
                Createtlscontext201Example:
                  summary: Default createTLSContext 201 response
                  x-microcks-default: true
                  value:
                    apiVersion: example_value
                    kind: example_value
                    metadata:
                      name: Example Title
                      namespace: example_value
                      labels: example_value
                      annotations: example_value
                      creationTimestamp: '2026-01-15T10:30:00Z'
                      generation: 10
                      resourceVersion: example_value
                      uid: '500123'
                    spec:
                      hosts:
                      - {}
                      secret: example_value
                      cert_chain_file: example_value
                      private_key_file: example_value
                      ca_secret: example_value
                      cert_required: true
                      min_tls_version: v1.0
                      max_tls_version: v1.0
                      cipher_suites:
                      - {}
                      ecdh_curves:
                      - {}
                      alpn_protocols: example_value
                      redirect_cleartext_from: 10
                      sni: example_value
                      ambassador_id:
                      - {}
        '400':
          description: Invalid TLSContext specification
        '401':
          description: Authentication required
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /apis/getambassador.io/v3alpha1/namespaces/{namespace}/tlscontexts/{name}:
    get:
      operationId: getTLSContext
      summary: Ambassador Get a Specific Tls Context
      description: Retrieves the specification of a specific TLSContext resource.
      tags:
      - TLSContexts
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/ResourceName'
      responses:
        '200':
          description: TLSContext retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TLSContext'
              examples:
                Gettlscontext200Example:
                  summary: Default getTLSContext 200 response
                  x-microcks-default: true
                  value:
                    apiVersion: example_value
                    kind: example_value
                    metadata:
                      name: Example Title
                      namespace: example_value
                      labels: example_value
                      annotations: example_value
                      creationTimestamp: '2026-01-15T10:30:00Z'
                      generation: 10
                      resourceVersion: example_value
                      uid: '500123'
                    spec:
                      hosts:
                      - {}
                      secret: example_value
                      cert_chain_file: example_value
                      private_key_file: example_value
                      ca_secret: example_value
                      cert_required: true
                      min_tls_version: v1.0
                      max_tls_version: v1.0
                      cipher_suites:
                      - {}
                      ecdh_curves:
                      - {}
                      alpn_protocols: example_value
                      redirect_cleartext_from: 10
                      sni: example_value
                      ambassador_id:
                      - {}
        '401':
          description: Authentication required
        '404':
          description: TLSContext not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateTLSContext
      summary: Ambassador Update a Tls Context
      description: Replaces an existing TLSContext resource with the provided specification.
      tags:
      - TLSContexts
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/ResourceName'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TLSContext'
            examples:
              UpdatetlscontextRequestExample:
                summary: Default updateTLSContext request
                x-microcks-default: true
                value:
                  apiVersion: example_value
                  kind: example_value
                  metadata:
                    name: Example Title
                    namespace: example_value
                    labels: example_value
                    annotations: example_value
                    creationTimestamp: '2026-01-15T10:30:00Z'
                    generation: 10
                    resourceVersion: example_value
                    uid: '500123'
                  spec:
                    hosts:
                    - {}
                    secret: example_value
                    cert_chain_file: example_value
                    private_key_file: example_value
                    ca_secret: example_value
                    cert_required: true
                    min_tls_version: v1.0
                    max_tls_version: v1.0
                    cipher_suites:
                    - {}
                    ecdh_curves:
                    - {}
                    alpn_protocols: example_value
                    redirect_cleartext_from: 10
                    sni: example_value
                    ambassador_id:
                    - {}
      responses:
        '200':
          description: TLSContext updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TLSContext'
              examples:
                Updatetlscontext200Example:
                  summary: Default updateTLSContext 200 response
                  x-microcks-default: true
                  value:
                    apiVersion: example_value
                    kind: example_value
                    metadata:
                      name: Example Title
                      namespace: example_value
                      labels: example_value
                      annotations: example_value
                      creationTimestamp: '2026-01-15T10:30:00Z'
                      generation: 10
                      resourceVersion: example_value
                      uid: '500123'
                    spec:
                      hosts:
                      - {}
                      secret: example_value
                      cert_chain_file: example_value
                      private_key_file: example_value
                      ca_secret: example_value
                      cert_required: true
                      min_tls_version: v1.0
                      max_tls_version: v1.0
                      cipher_suites:
                      - {}
                      ecdh_curves:
                      - {}
                      alpn_protocols: example_value
                      redirect_cleartext_from: 10
                      sni: example_value
                      ambassador_id:
                      - {}
        '400':
          description: Invalid TLSContext specification
        '401':
          description: Authentication required
        '404':
          description: TLSContext not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteTLSContext
      summary: Ambassador Delete a Tls Context
      description: Deletes a specific TLSContext resource.
      tags:
      - TLSContexts
      parameters:
      - $ref: '#/components/parameters/Namespace'
      - $ref: '#/components/parameters/ResourceName'
      responses:
        '200':
          description: TLSContext deleted successfully
        '401':
          description: Authentication required
        '404':
          description: TLSContext not found
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    TLSContextList:
      type: object
      description: List of TLSContext resources
      properties:
        apiVersion:
          type: string
          const: getambassador.io/v3alpha1
          example: example_value
        kind:
          type: string
          const: TLSContextList
          example: example_value
        metadata:
          type: object
          properties:
            continue:
              type: string
            resourceVersion:
              type: string
          example: example_value
        items:
          type: array
          items:
            $ref: '#/components/schemas/TLSContext'
          example: []
    ObjectMeta:
      type: object
      description: Standard Kubernetes object metadata
      properties:
        name:
          type: string
          description: Name of the resource, unique within a namespace
          example: Example Title
        namespace:
          type: string
          description: Kubernetes namespace the resource belongs to
          example: example_value
        labels:
          type: object
          description: Key-value pairs for organizing and selecting resources
          additionalProperties:
            type: string
          example: example_value
        annotations:
          type: object
          description: Key-value pairs for storing arbitrary non-identifying metadata
          additionalProperties:
            type: string
          example: example_value
        creationTimestamp:
          type: string
          format: date-time
          description: Timestamp when the resource was created
          example: '2026-01-15T10:30:00Z'
        generation:
          type: integer
          description: Sequence number representing a specific generation of the resource
          example: 10
        resourceVersion:
          type: string
          description: Opaque value for optimistic concurrency control
          example: example_value
        uid:
          type: string
          description: Unique identifier for the resource
          example: '500123'
      required:
      - name
      - namespace
    TLSContext:
      type: object
      description: An Ambassador TLSContext resource that configures TLS settings for inbound or outbound connections, including certificates, protocols, and cipher suites.
      required:
      - apiVersion
      - kind
      - metadata
      - spec
      properties:
        apiVersion:
          type: string
          const: getambassador.io/v3alpha1
          example: example_value
        kind:
          type: string
          const: TLSContext
          example: example_value
        metadata:
          $ref: '#/components/schemas/ObjectMeta'
        spec:
          $ref: '#/components/schemas/TLSContextSpec'
    TLSContextSpec:
      type: object
      description: Specification for a TLSContext resource
      properties:
        hosts:
          type: array
          description: Hostnames this TLSContext applies to
          items:
            type: string
          example: []
        secret:
          type: string
          description: Name of the Kubernetes Secret containing TLS certificates
          example: example_value
        cert_chain_file:
          type: string
          description: Path to the certificate chain PEM file (alternative to secret)
          example: example_value
        private_key_file:
          type: string
          description: Path to the private key PEM file (alternative to secret)
          example: example_value
        ca_secret:
          type: string
          description: Name of the Kubernetes Secret containing CA certificates for client verification
          example: example_value
        cert_required:
          type: boolean
          description: Whether client TLS certificates are required (mTLS)
          default: false
          example: true
        min_tls_version:
          type: string
          description: Minimum TLS version to accept
          enum:
          - v1.0
          - v1.1
          - v1.2
          - v1.3
          default: v1.2
          example: v1.0
        max_tls_version:
          type: string
          description: Maximum TLS version to accept
          enum:
          - v1.0
          - v1.1
          - v1.2
          - v1.3
          default: v1.3
          example: v1.0
        cipher_suites:
          type: array
          description: Allowed TLS cipher suites
          items:
            type: string
          example: []
        ecdh_curves:
          type: array
          description: Allowed ECDH curves
          items:
            type: string
          example: []
        alpn_protocols:
          type: string
          description: ALPN protocols to advertise
          example: example_value
        redirect_cleartext_from:
          type: integer
          description: Port number from which to redirect cleartext traffic to TLS
          example: 10
        sni:
          type: string
          description: SNI hostname to present for outbound TLS connections
          example: example_value
        ambassador_id:
          type: array
          description: Ambassador IDs that should use this TLSContext
          items:
            type: string
          example: '500123'
  parameters:
    Namespace:
      name: namespace
      in: path
      required: true
      description: Kubernetes namespace
      schema:
        type: string
      example: default
    ResourceName:
      name: name
      in: path
      required: true
      description: Name of the resource
      schema:
        type: string
    LabelSelector:
      name: labelSelector
      in: query
      required: false
      description: Kubernetes label selector to filter resources
      schema:
        type: string
      example: app=my-service
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication. Tokens are managed through the Ambassador Edge Stack management interface or Kubernetes service account tokens.
externalDocs:
  description: Ambassador Edge Stack Documentation
  url: https://www.getambassador.io/docs/edge-stack/latest/