F5 Distributed Cloud Services Config API

The Config API from F5 Distributed Cloud Services — 10 operation(s) for config.

OpenAPI Specification

f5-distributed-cloud-services-config-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: F5 Distributed Cloud Services Config API
  description: 'Public REST API for F5 Distributed Cloud Services (F5 XC) - SaaS

    platform for multi-cloud application security, networking, and edge

    compute. Most configuration resources live under

    /api/config/namespaces/{namespace}/{resource} and observability under

    /api/data/. Authentication uses an API token or service credentials

    minted in the F5 Distributed Cloud Console, sent in the

    Authorization header as "APIToken {token}".

    '
  version: 1.0.0
  contact:
    name: F5 Distributed Cloud Docs
    url: https://docs.cloud.f5.com/docs-v2/api
servers:
- url: https://{tenant}.console.ves.volterra.io
  description: F5 Distributed Cloud Console (tenant)
  variables:
    tenant:
      default: tenant
      description: Tenant subdomain
security:
- APIToken: []
tags:
- name: Config
paths:
  /api/config/namespaces:
    get:
      summary: List namespaces
      operationId: listNamespaces
      responses:
        '200':
          description: Namespace collection
      tags:
      - Config
    post:
      summary: Create a namespace
      operationId: createNamespace
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Namespace'
      responses:
        '200':
          description: Namespace created
      tags:
      - Config
  /api/config/namespaces/{namespace}:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: Get a namespace
      operationId: getNamespace
      responses:
        '200':
          description: Namespace
      tags:
      - Config
    delete:
      summary: Delete a namespace
      operationId: deleteNamespace
      responses:
        '200':
          description: Deleted
      tags:
      - Config
  /api/config/namespaces/{namespace}/http_loadbalancers:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: List HTTP load balancers
      operationId: listHttpLoadBalancers
      responses:
        '200':
          description: HTTP LB collection
      tags:
      - Config
    post:
      summary: Create an HTTP load balancer
      operationId: createHttpLoadBalancer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HttpLoadBalancer'
      responses:
        '200':
          description: Created
      tags:
      - Config
  /api/config/namespaces/{namespace}/http_loadbalancers/{name}:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get an HTTP load balancer
      operationId: getHttpLoadBalancer
      responses:
        '200':
          description: Object
      tags:
      - Config
    put:
      summary: Replace an HTTP load balancer
      operationId: replaceHttpLoadBalancer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HttpLoadBalancer'
      responses:
        '200':
          description: Replaced
      tags:
      - Config
    delete:
      summary: Delete an HTTP load balancer
      operationId: deleteHttpLoadBalancer
      responses:
        '200':
          description: Deleted
      tags:
      - Config
  /api/config/namespaces/{namespace}/tcp_loadbalancers:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: List TCP load balancers
      operationId: listTcpLoadBalancers
      responses:
        '200':
          description: TCP LB collection
      tags:
      - Config
    post:
      summary: Create a TCP load balancer
      operationId: createTcpLoadBalancer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Created
      tags:
      - Config
  /api/config/namespaces/{namespace}/origin_pools:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: List origin pools
      operationId: listOriginPools
      responses:
        '200':
          description: Origin pool collection
      tags:
      - Config
    post:
      summary: Create an origin pool
      operationId: createOriginPool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Created
      tags:
      - Config
  /api/config/namespaces/{namespace}/origin_pools/{name}:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get an origin pool
      operationId: getOriginPool
      responses:
        '200':
          description: Object
      tags:
      - Config
    delete:
      summary: Delete an origin pool
      operationId: deleteOriginPool
      responses:
        '200':
          description: Deleted
      tags:
      - Config
  /api/config/namespaces/{namespace}/app_firewalls:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: List WAF/WAAP application firewalls
      operationId: listAppFirewalls
      responses:
        '200':
          description: WAF collection
      tags:
      - Config
    post:
      summary: Create an application firewall policy
      operationId: createAppFirewall
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Created
      tags:
      - Config
  /api/config/namespaces/{namespace}/certificates:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: List TLS certificates
      operationId: listCertificates
      responses:
        '200':
          description: Certificate collection
      tags:
      - Config
    post:
      summary: Upload a TLS certificate
      operationId: createCertificate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Created
      tags:
      - Config
  /api/config/namespaces/{namespace}/dns_domains:
    parameters:
    - $ref: '#/components/parameters/Namespace'
    get:
      summary: List DNS domains
      operationId: listDnsDomains
      responses:
        '200':
          description: DNS domain collection
      tags:
      - Config
components:
  parameters:
    Namespace:
      name: namespace
      in: path
      required: true
      schema:
        type: string
      description: F5 XC namespace
    ObjectName:
      name: name
      in: path
      required: true
      schema:
        type: string
      description: Resource name
  schemas:
    HttpLoadBalancer:
      type: object
      properties:
        metadata:
          type: object
          properties:
            name:
              type: string
            namespace:
              type: string
        spec:
          type: object
          properties:
            domains:
              type: array
              items:
                type: string
            http:
              type: object
            https:
              type: object
            default_route_pools:
              type: array
              items:
                type: object
                properties:
                  pool:
                    type: object
                    properties:
                      name:
                        type: string
                      namespace:
                        type: string
    Namespace:
      type: object
      properties:
        metadata:
          type: object
          properties:
            name:
              type: string
            description:
              type: string
            labels:
              type: object
              additionalProperties:
                type: string
        spec:
          type: object
  securitySchemes:
    APIToken:
      type: apiKey
      in: header
      name: Authorization
      description: 'Send "Authorization: APIToken {token}" using a token issued from

        the F5 Distributed Cloud Console (Personal Tokens or Service

        Credentials).

        '