Forum Discussion

traphix's avatar
traphix
Icon for Altostratus rankAltostratus
Apr 02, 2025

iControl REST API: models + specifications?

Hi. In these docs we can find the endpoints and options for the REST API.

https://clouddocs.f5.com/api/icontrol-rest/

 

We don't find the models/specifications that these endpoints return. 

Eg. we can query for the list of pools. The answer contains the property 'loadBalancingMode'.

https://clouddocs.f5.com/api/icontrol-rest/APIRef_tm_ltm_pool.html

But where can we find the documented, complete list of values that this property can contain?

 

From the GUI we can assume the values would be similar to Round Robin, Ratio (member), Least Connections (member), ... 

 

But where are all possible values of all properties of all the models defined and documented?

 

 

4 Replies

  • Hi traphix , unfortunately the iControl REST online documentation is a little shy on those details, but if you look at the tmsh man pages (tmsh help ltm pool at the BIG-IP command line) you'll get this list:

    load-balancing-mode [dynamic-ratio-member | dynamic-ratio-node |
                                  fastest-app-response | fastest-node |
                                  least-connections-members |
                                  least-connections-node |
                                  least-sessions |
                                  observed-member | observed-node |
                                  predictive-member | predictive-node |
                                  ratio-least-connections-member |
                                  ratio-least-connections-node |
                                  ratio-member | ratio-node | ratio-session |
                                  round-robin | weighted-least-connections-member |
                                  weighted-least-connections-node]

    It's also in the AS3 schema for the Pool service (AS3 is just a declarative wrapper for tmsh, as iControl REST is an imperative wrapper for tmsh)

  • Hi JRahm

    Many thanks for this hint. In this way we can look up all possible values of some other properties as well. Cool!

    However, we can't find the possible values of something like the node address: from testing the API we receive expected values like IPv4 addresses, but also '::0.0.0.0' and even 'any6'. Here, tmsh help doesn't seem to help. Where can we find a complete list of possible values?

     

    , is there also a specification of the models themselves, eg. as an openapi specification or within a postman collection? 

  • Also, we might have found some inconsistencies. In the tmsh help for ltm pool members we find the following definition for 'state': 'up', 'down'.

    However, from the API calls we get also values like 'user-down', 'user-up' and 'unchecked'. 

    So, how can we get a complete list? The iControl REST API does not seem to simply be a tmsh wrapper. 

    Thank you for clarifications. 

     

    • JRahm's avatar
      JRahm
      Icon for Admin rankAdmin

      ah...yes. That's true. It is a wrapper, but not a perfect one unfortunately, and the list you are looking for doesn't exist. We had a python project (https://github.com/F5Networks/f5-common-python/tree/development/f5/bigip) that is no longer actively maintained that attempted to smooth out these inconsistencies and you'll find the ones we managed in there. You'll also find some objects do things like this:

      enabled: true and disabled: true

      instead of:

      enabled: true|false

      So you'll need to pop attributes sometimes before resubmitting them for an update.