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.