F5

F5 Mgmt API

The Mgmt API from F5 — 10 operation(s) for mgmt.

OpenAPI Specification

f5-mgmt-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: F5 BIG-IP iControl REST Mgmt API
  description: 'iControl REST is the JSON/HTTP management interface for F5 BIG-IP

    devices. It exposes the BIG-IP configuration tree under the

    /mgmt/tm/ namespace so any TMSH-addressable object (LTM, GTM, net,

    security, sys, etc.) can be created, retrieved, updated, and deleted

    over HTTPS. Authentication uses HTTP Basic over TLS or a token

    obtained from /mgmt/shared/authn/login.

    '
  version: 1.0.0
  contact:
    name: F5 CloudDocs
    url: https://clouddocs.f5.com/api/icontrol-rest/
servers:
- url: https://{bigip}
  description: BIG-IP management address
  variables:
    bigip:
      default: bigip.example.com
      description: Hostname or management IP of the BIG-IP device
security:
- Basic: []
- Token: []
tags:
- name: Mgmt
paths:
  /mgmt/shared/authn/login:
    post:
      summary: Obtain an authentication token
      operationId: login
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - username
              - password
              - loginProviderName
              properties:
                username:
                  type: string
                password:
                  type: string
                loginProviderName:
                  type: string
                  default: tmos
      responses:
        '200':
          description: Token issued
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: object
                    properties:
                      token:
                        type: string
                      timeout:
                        type: integer
      tags:
      - Mgmt
  /mgmt/tm/ltm/virtual:
    get:
      summary: List virtual servers
      operationId: listVirtuals
      responses:
        '200':
          description: Virtual server collection
      tags:
      - Mgmt
    post:
      summary: Create a virtual server
      operationId: createVirtual
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Virtual'
      responses:
        '200':
          description: Virtual created
      tags:
      - Mgmt
  /mgmt/tm/ltm/virtual/{name}:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get a virtual server
      operationId: getVirtual
      responses:
        '200':
          description: Virtual
      tags:
      - Mgmt
    put:
      summary: Replace a virtual server
      operationId: replaceVirtual
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Virtual'
      responses:
        '200':
          description: Replaced
      tags:
      - Mgmt
    patch:
      summary: Partially update a virtual server
      operationId: patchVirtual
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Updated
      tags:
      - Mgmt
    delete:
      summary: Delete a virtual server
      operationId: deleteVirtual
      responses:
        '200':
          description: Deleted
      tags:
      - Mgmt
  /mgmt/tm/ltm/pool:
    get:
      summary: List pools
      operationId: listPools
      responses:
        '200':
          description: Pool collection
      tags:
      - Mgmt
    post:
      summary: Create a pool
      operationId: createPool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pool'
      responses:
        '200':
          description: Pool created
      tags:
      - Mgmt
  /mgmt/tm/ltm/pool/{name}:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get a pool
      operationId: getPool
      responses:
        '200':
          description: Pool
      tags:
      - Mgmt
    put:
      summary: Replace a pool
      operationId: replacePool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pool'
      responses:
        '200':
          description: Replaced
      tags:
      - Mgmt
    patch:
      summary: Partially update a pool
      operationId: patchPool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Updated
      tags:
      - Mgmt
    delete:
      summary: Delete a pool
      operationId: deletePool
      responses:
        '200':
          description: Deleted
      tags:
      - Mgmt
  /mgmt/tm/ltm/pool/{name}/members:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: List members of a pool
      operationId: listPoolMembers
      responses:
        '200':
          description: Member collection
      tags:
      - Mgmt
    post:
      summary: Add a member to a pool
      operationId: addPoolMember
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Member added
      tags:
      - Mgmt
  /mgmt/tm/ltm/node:
    get:
      summary: List nodes
      operationId: listNodes
      responses:
        '200':
          description: Node collection
      tags:
      - Mgmt
    post:
      summary: Create a node
      operationId: createNode
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Node created
      tags:
      - Mgmt
  /mgmt/tm/ltm/node/{name}:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get a node
      operationId: getNode
      responses:
        '200':
          description: Node
      tags:
      - Mgmt
    delete:
      summary: Delete a node
      operationId: deleteNode
      responses:
        '200':
          description: Deleted
      tags:
      - Mgmt
  /mgmt/tm/ltm/profile/http:
    get:
      summary: List HTTP profiles
      operationId: listHttpProfiles
      responses:
        '200':
          description: Profile collection
      tags:
      - Mgmt
  /mgmt/tm/sys/version:
    get:
      summary: Get system software version
      operationId: getSystemVersion
      responses:
        '200':
          description: Version info
      tags:
      - Mgmt
components:
  parameters:
    ObjectName:
      name: name
      in: path
      required: true
      schema:
        type: string
      description: 'Object name. Use the tilde-partition-tilde-name notation when

        addressing objects in non-Common partitions, e.g. ~Common~http.

        '
  schemas:
    Virtual:
      type: object
      properties:
        name:
          type: string
        partition:
          type: string
          default: Common
        destination:
          type: string
          description: address:port, e.g. 10.0.0.1:80
        ipProtocol:
          type: string
          default: tcp
        pool:
          type: string
        profiles:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              context:
                type: string
    Pool:
      type: object
      properties:
        name:
          type: string
        partition:
          type: string
          default: Common
        loadBalancingMode:
          type: string
          default: round-robin
        monitor:
          type: string
        members:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              address:
                type: string
  securitySchemes:
    Basic:
      type: http
      scheme: basic
      description: HTTP Basic auth using a BIG-IP administrative user.
    Token:
      type: apiKey
      in: header
      name: X-F5-Auth-Token
      description: Token obtained from /mgmt/shared/authn/login.