F5 Networks Pool Members API

Manage individual members within a pool, including their health status, session state, and load balancing weight.

OpenAPI Specification

f5-networks-pool-members-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: F5 BIG-IP iControl REST Nodes Pool Members API
  description: The iControl REST API provides programmatic access to manage and configure F5 BIG-IP devices. It enables automation of Local Traffic Manager (LTM) resources including virtual servers, pools, nodes, pool members, and profiles for application delivery, load balancing, and network management.
  version: 15.1.0
  contact:
    name: F5 Support
    email: support@f5.com
    url: https://www.f5.com/company/contact/regional-offices
  license:
    name: Proprietary
    url: https://www.f5.com/company/policies/terms-of-use
  x-logo:
    url: https://www.f5.com/content/dam/f5-com/global-assets/images/f5-logo.svg
servers:
- url: https://{bigip_host}/mgmt/tm
  description: BIG-IP Management Interface
  variables:
    bigip_host:
      default: 192.168.1.245
      description: Hostname or IP address of the BIG-IP device
security:
- basicAuth: []
- tokenAuth: []
tags:
- name: Pool Members
  description: Manage individual members within a pool, including their health status, session state, and load balancing weight.
  externalDocs:
    url: https://clouddocs.f5.com/api/icontrol-rest/APIRef_tm_ltm_pool_members.html
paths:
  /ltm/pool/{poolName}/members:
    parameters:
    - $ref: '#/components/parameters/PoolNameParam'
    get:
      operationId: listPoolMembers
      summary: List Pool Members
      description: Returns a collection of all members within the specified pool.
      tags:
      - Pool Members
      parameters:
      - $ref: '#/components/parameters/SelectParam'
      - $ref: '#/components/parameters/FilterParam'
      responses:
        '200':
          description: Successful retrieval of pool member collection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  kind:
                    type: string
                    example: tm:ltm:pool:members:memberscollectionstate
                  selfLink:
                    type: string
                    format: uri
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/PoolMember'
              examples:
                Listpoolmembers200Example:
                  summary: Default listPoolMembers 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    selfLink: https://www.example.com
                    items:
                    - kind: example_value
                      name: Example Title
                      fullPath: example_value
                      generation: 10
                      selfLink: https://www.example.com
                      address: example_value
                      connectionLimit: 10
                      description: A sample description.
                      dynamicRatio: 10
                      ephemeral: 'true'
                      inheritProfile: enabled
                      logging: enabled
                      monitor: example_value
                      partition: example_value
                      priorityGroup: 10
                      rateLimit: example_value
                      ratio: 10
                      session: user-enabled
                      state: user-up
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: addPoolMember
      summary: Add a Pool Member
      description: Adds a new member to the specified pool. The member name must be in the format address:port (e.g., 10.0.0.1:80).
      tags:
      - Pool Members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PoolMemberCreate'
            examples:
              AddpoolmemberRequestExample:
                summary: Default addPoolMember request
                x-microcks-default: true
                value:
                  name: Example Title
                  address: example_value
                  description: A sample description.
                  connectionLimit: 10
                  monitor: example_value
                  priorityGroup: 10
                  rateLimit: example_value
                  ratio: 10
                  session: user-enabled
                  state: user-up
      responses:
        '200':
          description: Pool member added successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolMember'
              examples:
                Addpoolmember200Example:
                  summary: Default addPoolMember 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    address: example_value
                    connectionLimit: 10
                    description: A sample description.
                    dynamicRatio: 10
                    ephemeral: 'true'
                    inheritProfile: enabled
                    logging: enabled
                    monitor: example_value
                    partition: example_value
                    priorityGroup: 10
                    rateLimit: example_value
                    ratio: 10
                    session: user-enabled
                    state: user-up
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /ltm/pool/{poolName}/members/{memberName}:
    parameters:
    - $ref: '#/components/parameters/PoolNameParam'
    - $ref: '#/components/parameters/MemberNameParam'
    get:
      operationId: getPoolMember
      summary: Get a Pool Member
      description: Returns a single pool member identified by name.
      tags:
      - Pool Members
      responses:
        '200':
          description: Successful retrieval of pool member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolMember'
              examples:
                Getpoolmember200Example:
                  summary: Default getPoolMember 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    address: example_value
                    connectionLimit: 10
                    description: A sample description.
                    dynamicRatio: 10
                    ephemeral: 'true'
                    inheritProfile: enabled
                    logging: enabled
                    monitor: example_value
                    partition: example_value
                    priorityGroup: 10
                    rateLimit: example_value
                    ratio: 10
                    session: user-enabled
                    state: user-up
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updatePoolMember
      summary: Update a Pool Member
      description: Replaces the entire pool member resource configuration.
      tags:
      - Pool Members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PoolMemberUpdate'
            examples:
              UpdatepoolmemberRequestExample:
                summary: Default updatePoolMember request
                x-microcks-default: true
                value:
                  description: A sample description.
                  connectionLimit: 10
                  monitor: example_value
                  priorityGroup: 10
                  rateLimit: example_value
                  ratio: 10
                  session: user-enabled
                  state: user-up
      responses:
        '200':
          description: Pool member updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolMember'
              examples:
                Updatepoolmember200Example:
                  summary: Default updatePoolMember 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    address: example_value
                    connectionLimit: 10
                    description: A sample description.
                    dynamicRatio: 10
                    ephemeral: 'true'
                    inheritProfile: enabled
                    logging: enabled
                    monitor: example_value
                    partition: example_value
                    priorityGroup: 10
                    rateLimit: example_value
                    ratio: 10
                    session: user-enabled
                    state: user-up
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: patchPoolMember
      summary: Patch a Pool Member
      description: Partially updates a pool member resource configuration.
      tags:
      - Pool Members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PoolMemberUpdate'
            examples:
              PatchpoolmemberRequestExample:
                summary: Default patchPoolMember request
                x-microcks-default: true
                value:
                  description: A sample description.
                  connectionLimit: 10
                  monitor: example_value
                  priorityGroup: 10
                  rateLimit: example_value
                  ratio: 10
                  session: user-enabled
                  state: user-up
      responses:
        '200':
          description: Pool member patched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PoolMember'
              examples:
                Patchpoolmember200Example:
                  summary: Default patchPoolMember 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    address: example_value
                    connectionLimit: 10
                    description: A sample description.
                    dynamicRatio: 10
                    ephemeral: 'true'
                    inheritProfile: enabled
                    logging: enabled
                    monitor: example_value
                    partition: example_value
                    priorityGroup: 10
                    rateLimit: example_value
                    ratio: 10
                    session: user-enabled
                    state: user-up
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deletePoolMember
      summary: Delete a Pool Member
      description: Removes a member from the specified pool.
      tags:
      - Pool Members
      responses:
        '200':
          description: Pool member deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  responses:
    InternalServerError:
      description: An unexpected error occurred on the BIG-IP system while processing the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: The request could not be processed due to invalid syntax or missing required parameters.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication failed. Provide valid credentials via Basic Auth or X-F5-Auth-Token header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Conflict:
      description: The resource already exists or conflicts with an existing configuration.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested resource was not found on the BIG-IP system.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    FilterParam:
      name: $filter
      in: query
      required: false
      description: OData filter expression to restrict returned resources.
      schema:
        type: string
      example: partition eq Common
    MemberNameParam:
      name: memberName
      in: path
      required: true
      description: Name of the pool member in the format address:port (e.g., 10.0.0.1:80).
      schema:
        type: string
      example: 10.0.0.1:80
    SelectParam:
      name: $select
      in: query
      required: false
      description: Comma-separated list of property names to include in the response.
      schema:
        type: string
      example: name,destination,pool
    PoolNameParam:
      name: poolName
      in: path
      required: true
      description: Name of the pool resource. Use ~Common~ prefix for partition-qualified names.
      schema:
        type: string
      example: my_pool
  schemas:
    ErrorResponse:
      type: object
      description: Standard error response from the iControl REST API.
      properties:
        code:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message describing what went wrong.
          example: The requested Pool (/Common/my_pool) was not found.
        errorStack:
          type: array
          description: Stack trace for debugging (when available).
          items:
            type: string
          example: []
        apiError:
          type: integer
          description: API-specific error code.
          example: 10
    PoolMemberCreate:
      type: object
      description: Request body for adding a new pool member.
      required:
      - name
      properties:
        name:
          type: string
          description: Member name in address:port format. If a node with the address does not exist, one will be created.
          example: 10.0.0.1:80
        address:
          type: string
          description: IP address if it differs from the name.
          example: example_value
        description:
          type: string
          example: A sample description.
        connectionLimit:
          type: integer
          minimum: 0
          example: 10
        monitor:
          type: string
          example: example_value
        priorityGroup:
          type: integer
          minimum: 0
          example: 10
        rateLimit:
          type: string
          example: example_value
        ratio:
          type: integer
          minimum: 1
          example: 10
        session:
          type: string
          enum:
          - user-enabled
          - user-disabled
          example: user-enabled
        state:
          type: string
          enum:
          - user-up
          - user-down
          example: user-up
    PoolMember:
      type: object
      description: A pool member resource representing an individual backend server within a pool, identified by address and port.
      properties:
        kind:
          type: string
          description: Resource type identifier.
          example: tm:ltm:pool:members:membersstate
          readOnly: true
        name:
          type: string
          description: Member name in address:port format.
          example: 10.0.0.1:80
        fullPath:
          type: string
          description: Full path including partition.
          example: /Common/10.0.0.1:80
          readOnly: true
        generation:
          type: integer
          readOnly: true
          example: 10
        selfLink:
          type: string
          format: uri
          readOnly: true
          example: https://www.example.com
        address:
          type: string
          description: IP address of the pool member.
          example: 10.0.0.1
        connectionLimit:
          type: integer
          description: Maximum concurrent connections. 0 means unlimited.
          minimum: 0
          default: 0
          example: 10
        description:
          type: string
          description: User-defined description.
          example: A sample description.
        dynamicRatio:
          type: integer
          description: Dynamic ratio for load balancing.
          default: 1
          example: 10
        ephemeral:
          type: string
          description: Whether this is a transient auto-discovered member.
          readOnly: true
          enum:
          - 'true'
          - 'false'
          default: 'false'
          example: 'true'
        inheritProfile:
          type: string
          description: Whether the member inherits the encapsulation profile from its parent pool.
          enum:
          - enabled
          - disabled
          default: enabled
          example: enabled
        logging:
          type: string
          description: Whether monitor actions are logged.
          enum:
          - enabled
          - disabled
          default: disabled
          example: enabled
        monitor:
          type: string
          description: Health monitor override for this member.
          default: default
          example: example_value
        partition:
          type: string
          description: Administrative partition.
          default: Common
          example: example_value
        priorityGroup:
          type: integer
          description: Priority group number. Higher values receive traffic first when priority-group activation is configured.
          minimum: 0
          default: 0
          example: 10
        rateLimit:
          type: string
          description: Maximum connections per second. disabled means no limit.
          default: disabled
          example: example_value
        ratio:
          type: integer
          description: Ratio weight for load balancing.
          minimum: 1
          default: 1
          example: 10
        session:
          type: string
          description: Session availability state.
          enum:
          - user-enabled
          - user-disabled
          - monitor-enabled
          default: user-enabled
          example: user-enabled
        state:
          type: string
          description: Operational state of the member.
          enum:
          - user-up
          - user-down
          - up
          - down
          - unchecked
          example: up
    PoolMemberUpdate:
      type: object
      description: Request body for updating a pool member.
      properties:
        description:
          type: string
          example: A sample description.
        connectionLimit:
          type: integer
          minimum: 0
          example: 10
        monitor:
          type: string
          example: example_value
        priorityGroup:
          type: integer
          minimum: 0
          example: 10
        rateLimit:
          type: string
          example: example_value
        ratio:
          type: integer
          minimum: 1
          example: 10
        session:
          type: string
          enum:
          - user-enabled
          - user-disabled
          example: user-enabled
        state:
          type: string
          enum:
          - user-up
          - user-down
          example: user-up
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication using BIG-IP admin credentials. The username and password are sent base64-encoded in the Authorization header.
    tokenAuth:
      type: apiKey
      in: header
      name: X-F5-Auth-Token
      description: Token-based authentication. Obtain a token by POSTing credentials to /mgmt/shared/authn/login, then pass the token value in the X-F5-Auth-Token header for subsequent requests.
externalDocs:
  description: F5 iControl REST API Documentation
  url: https://clouddocs.f5.com/api/icontrol-rest/