Example API Configuration

The following example shows a possible configuration of an HTTP Virtual Server using the aXAPI. The workflow consists of the following steps:

  • Configure Real Servers - configure a real server and its ports.
  • Configure Service Group - add real servers to a service group.
  • Configure Virtual Server - create a virtual server, and its virtual ports, binding the service group to the virtual port.
  • View Your Configuration - confirm the SLB configuration is correct.
  • Edit Your Configuration - use the UUID to make configuration changes.

Note

For this example, the ACOS device will have an IP address of 10.10.10.10. To configure a virtual server on your own ACOS device, you must change the IP address in the following example cURL calls to the IP address or hostname configured on your ACOS device.

Configure Real Servers

Use the Create Object operation to create a new real server. To do so, perform an HTTP request using the POST method to https://10.10.10.10/axapi/v3/slb/server/ and include any parameters for SLB real servers that you want in your configuration. This example is fairly simple, so the server will only be configured with a name and IP address.

To configure a real server, make the following HTTP request, defining the server’s name and host IP address:

curl -k POST https://10.10.10.10/axapi/v3/slb/server \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "server-list": [
        {
         "name":"server1",
          "host":"10.10.10.11"
        }
  ]
}'

The HTTP response to the above request will contain the following payload:

{
  "server": {
        "name":"server1",
        "host":"10.10.10.11",
        "action":"enable",
        "template-server":"default",
        "health-check-disable":0,
        "conn-limit":8000000,
        "no-logging":0,
        "weight":1,
        "slow-start":0,
        "spoofing-cache":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "uuid":"a9e3bba4-c9e4-11e4-b4dd-fa163eeb9631"
  }
}

Take note of the UUID if you want to use it for subsequent calls regarding server1. See Edit the Configuration for further details.

Add a Port to the Server

Next, create the ports on the server. To do so, make a POST request to the following /axapi/v3/slb/server/server1/port/. Note that you could also create the ports at the same time as the server, by including a port-list object in the payload of the POST request in the previous step.

To create a port on server1, use the following HTTP request, which defines the port number and protocol for the server port:

curl -k POST https://10.10.10.10/axapi/v3/slb/server/server1/port/ \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "port-list": [
        {
          "port-number":80,
          "protocol":"tcp"
        }
  ]
}'

The body of the response will look like this:

{
  "port": {
        "port-number":80,
        "protocol":"tcp",
        "range":0,
        "template-port":"default",
        "action":"enable",
        "no-ssl":0,
        "health-check-disable":0,
        "weight":1,
        "conn-limit":8000000,
        "no-logging":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "uuid":"c12d9618-c9e4-11e4-b4dd-fa163eeb9631"
  }
}

Take note of the UUID if you want to use it for subsequent calls regarding the port. See Edit the Configuration for further details.

Confirm the Real Server Configuration

To confirm your configuration, you can perform a GET request for the server configuration to https://10.10.10.10/axapi/v3/slb/server/server1. Here is an example:

curl -k GET https://10.10.10.10/axapi/v3/slb/server/server1 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

Here is an example of confirming the configuration by using the UUID endpoint (rather than using /slb/server/server1):

curl -k GET https://10.10.10.10/axapi/v3/uuid/a9e3bba4-c9e4-11e4-b4dd-fa163eeb9631 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

If everything has been configured correctly, this request will return the following response payload:

{
  "server": {
        "name":"server1",
        "host":"10.10.10.11",
        "action":"enable",
        "template-server":"default",
        "health-check-disable":0,
        "conn-limit":8000000,
        "no-logging":0,
        "weight":1,
        "slow-start":0,
        "spoofing-cache":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "uuid":"a9e3bba4-c9e4-11e4-b4dd-fa163eeb9631",
        "port-list": [
          {
                "port-number":80,
                "protocol":"tcp",
                "range":0,
                "template-port":"default",
                "action":"enable",
                "no-ssl":0,
                "health-check-disable":0,
                "weight":1,
                "conn-limit":8000000,
                "no-logging":0,
                "stats-data-action":"stats-data-enable",
                "extended-stats":0,
                "uuid":"c12d9618-c9e4-11e4-b4dd-fa163eeb9631",
                "a10-url":"/axapi/v3/slb/server/server1/port/80+tcp"
          }
        ]
  }
}

You can also confirm the configuration by viewing the list of all configured servers on the ACOS device. To do so, perform an HTTP GET request to https://10.10.10.10/axapi/v3/slb/server/:

curl -k GET https://10.10.10.10/axapi/v3/slb/server \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

If everything has been configured correctly, the following HTTP response body will be returned:

{
  "server-list": [
        {
          "name":"server1",
          "host":"10.10.10.11",
          "action":"enable",
          "template-server":"default",
          "health-check-disable":0,
          "conn-limit":8000000,
          "no-logging":0,
          "weight":1,
          "slow-start":0,
          "spoofing-cache":0,
          "stats-data-action":"stats-data-enable",
          "extended-stats":0,
          "uuid":"a9e3bba4-c9e4-11e4-b4dd-fa163eeb9631",
          "port-list": [
                {
                  "port-number":80,
                  "protocol":"tcp",
                  "range":0,
                  "template-port":"default",
                  "action":"enable",
                  "no-ssl":0,
                  "health-check-disable":0,
                  "weight":1,
                  "conn-limit":8000000,
                  "no-logging":0,
                  "stats-data-action":"stats-data-enable",
                  "extended-stats":0,
                  "uuid":"c12d9618-c9e4-11e4-b4dd-fa163eeb9631",
                  "a10-url":"/axapi/v3/slb/server/server1/port/80+tcp"
                }
          ],
          "a10-url":/axapi/v3/slb/server/server1"
        }
  ]
}

Create a Second Real Server

You can repeat this process to add additional servers and/or ports. For example, the following POST request will configure a new server that will be part of the pool of servers available to the virtual server:

curl -k POST https://10.10.10.10/axapi/v3/slb/server \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "server-list": [
        {
          "name":"server2",
          "host":"10.10.10.12",
          "port-list": [
                {
                  "port-number":80,
                  "protocol":"tcp"
                }
          ]
        }
  ]
}'

Note

This can also be fulfilled with a PUT request, but you must be certain to include the settings for server1 in the PUT request, otherwise server1 will be removed from the configuration.

Configure a Service Group

Next we will configure the service group. This is the pool of servers (specifically the two servers created above) that will be used for load balancing the traffic to the virtual server.

To create a service group, perform a POST request to https://10.10.10.10/axapi/v3/slb/service-group/:

curl -k POST https://10.10.10.10/axapi/v3/slb/service-group \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "service-group-list": [
        {
          "name":"sg1",
          "protocol":"tcp"
        }
  ]
}'

If the request succeeds, the following response will be received:

{
  "service-group": {
        "name":"sg1",
        "protocol":"tcp",
        "lb-method":"round-robin",
        "stateless-auto-switch":0,
        "reset-on-server-selection-fail":0,
        "priority-affinity":0,
        "backup-server-event-log":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "traffic-replication-mirror":0,
        "traffic-replication-mirror-da-repl":0,
        "traffic-replication-mirror-ip-repl":0,
        "traffic-replication-mirror-sa-da-repl":0,
        "traffic-replication-mirror-sa-repl":0,
        "health-check-disable":0,
        "sample-rsp-time":0,
        "uuid":"53a24e44-c9e5-11e4-b4dd-fa163eeb9631"
  }
}

Take note of the UUID if you want to use it for subsequent calls regarding the service-group.

Add Servers to the Service Group

You can now add the servers as members of the service group. Create a POST request to https://10.10.10.10/axapi/v3/slb/service-group/sg1/member/:

curl -k POST https://10.10.10.10/axapi/v3/slb/service-group/sg1/member \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "member-list": [
        {
          "name":"server1",
          "port":80
        },
        {
          "name":"server2",
          "port":80
        }
  ]
}'

The following payload will be returned in the response:

{
  "member-list": [
        {
          "name":"server1",
          "port":80,
          "member-state":"enable",
          "member-stats-data-disable":0,
          "member-priority":1,
          "uuid":"6afde274-c9e5-11e4-b4dd-fa163eeb9631"
        },
        {
          "name":"server2",
          "port":80,
          "member-state":"enable",
          "member-stats-data-disable":0,
          "member-priority":1,
          "uuid":"6afe0614-c9e5-11e4-b4dd-fa163eeb9631"
        }
  ]
}

Confirm the Service Group Configuration

To confirm the service group has been configured, you can perform a GET request to https://10.10.10.10/axapi/v3/slb/service-group/sg1/:

curl -k GET https://10.10.10.10/axapi/v3/slb/service-group/sg1/ \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

Here is an example of confirming the service group configuration by using the UUID endpoint (rather than using /slb/service-group/sg1/):

curl -k GET https://10.10.10.10/axapi/v3/uuid/53a24e44-c9e5-11e4-b4dd-fa163eeb9631 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

The response should look like this:

{
  "service-group": {
        "name":"sg1",
        "protocol":"tcp",
        "lb-method":"round-robin",
        "stateless-auto-switch":0,
        "reset-on-server-selection-fail":0,
        "priority-affinity":0,
        "backup-server-event-log":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "traffic-replication-mirror":0,
        "traffic-replication-mirror-da-repl":0,
        "traffic-replication-mirror-ip-repl":0,
        "traffic-replication-mirror-sa-da-repl":0,
        "traffic-replication-mirror-sa-repl":0,
        "health-check-disable":0,
        "sample-rsp-time":0,
        "uuid":"53a24e44-c9e5-11e4-b4dd-fa163eeb9631",
        "member-list": [
          {
                "name":"server1",
                "port":80,
                "member-state":"enable",
                "member-stats-data-disable":0,
                "member-priority":1,
                "uuid":"6afde274-c9e5-11e4-b4dd-fa163eeb9631",
                "a10-url":"/axapi/v3/slb/service-group/sg1/member/server1+80"
          },
          {
                "name":"server2",
                "port":80,
                "member-state":"enable",
                "member-stats-data-disable":0,
                "member-priority":1,
                "uuid":"6afe0614-c9e5-11e4-b4dd-fa163eeb9631",
                "a10-url":"/axapi/v3/slb/service-group/sg1/member/server2+80"
          }
        ]
  }
}

You can also check the list of all configured service groups using a GET request to https://10.10.10.10/axapi/v3/slb/service-group/:

curl -k GET https://10.10.10.10/axapi/v3/slb/service-group \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

If the service group has been configured correctly, the following response will be received:

{
  "service-group-list": [
        {
          "name":"sg1",
          "protocol":"tcp",
          "lb-method":"round-robin",
          "stateless-auto-switch":0,
          "reset-on-server-selection-fail":0,
          "priority-affinity":0,
          "backup-server-event-log":0,
          "stats-data-action":"stats-data-enable",
          "extended-stats":0,
          "traffic-replication-mirror":0,
          "traffic-replication-mirror-da-repl":0,
          "traffic-replication-mirror-ip-repl":0,
          "traffic-replication-mirror-sa-da-repl":0,
          "traffic-replication-mirror-sa-repl":0,
          "health-check-disable":0,
          "sample-rsp-time":0,
          "uuid":"53a24e44-c9e5-11e4-b4dd-fa163eeb9631",
          "member-list": [
                {
                  "name":"server1",
                  "port":80,
                  "member-state":"enable",
                  "member-stats-data-disable":0,
                  "member-priority":1,
                  "uuid":"6afde274-c9e5-11e4-b4dd-fa163eeb9631",
                  "a10-url":"/axapi/v3/slb/service-group/sg1/member/server1+80"
                },
                {
                  "name":"server2",
                  "port":80,
                  "member-state":"enable",
                  "member-stats-data-disable":0,
                  "member-priority":1,
                  "uuid":"6afe0614-c9e5-11e4-b4dd-fa163eeb9631",
                  "a10-url":"/axapi/v3/slb/service-group/sg1/member/server2+80"
                }
          ],
          "a10-url":"/axapi/v3/slb/service-group/sg1"
        }
  ]
}

Configure a Virtual Server

Configure the virtual server that will be receiving the traffic that will be load balanced by the back-end real servers. Use a POST request sent to https://10.10.10.10/axapi/v3/slb/virtual-server/:

curl -k POST https://10.10.10.10/axapi/v3/slb/virtual-server \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "virtual-server-list": [
        {
          "name":"vip1",
          "ip-address":"10.10.10.20"
        }
  ]
}'

The response will look like this:

{
  "virtual-server": {
        "name":"vip1",
        "ip-address":"10.10.10.20",
        "enable-disable-action":"enable",
        "redistribution-flagged":0,
        "arp-disable":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "uuid":"de3238c6-c9e5-11e4-b4dd-fa163eeb9631"
  }
}

Take note of the UUID if you want to use it for subsequent calls regarding the virtual-server.

Add a Virtual Port

You can then configure a virtual port on the virtual server. Traffic sent to the HTTP port will be redirected to the servers in the service group, using the load-balancing algorithm specified in the service group’s configuration. In this case, the default algorithm, round robin, is used.

You can either configure virtual ports while you are configuring the virtual server (using the port-list child element) or by sending a POST request to https://10.10.10.10/axapi/v3/slb/virtual-server/vip1/port/:

curl -k POST https://10.10.10.10/axapi/v3/slb/virtual-server/vip1/port \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "port-list": [
        {
          "port-number":80,
          "protocol":"http",
          "service-group":"sg1"
        }
  ]
}'

The following response will be received:

{
  "port": {
        "port-number":80,
        "protocol":"http",
        "range":0,
        "conn-limit":8000000,
        "reset":0,
        "no-logging":0,
        "use-alternate-port":0,
        "action":"enable",
        "def-selection-if-pref-failed":"def-selection-if-pref-failed",
        "skip-rev-hash":0,
        "message-switching":0,
        "force-routing-mode":0,
        "reset-on-server-selection-fail":0,
        "clientip-sticky-nat":0,
        "extended-stats":0,
        "snat-on-vip":0,
        "stats-data-action":"stats-data-enable",
        "syn-cookie":0,
        "no-auto-up-on-aflex":0,
        "no-dest-nat":0,
        "scaleout-bucket-count":32,
        "auto":0,
        "service-group":"sg1",
        "ipinip":0,
        "rtp-sip-call-id-match":0,
        "use-rcv-hop-for-resp":0,
        "redirect-to-https":0,
        "template-virtual-port":"default",
        "uuid":"f2152182-c9e5-11e4-b4dd-fa163eeb9631"
  }
}

Take note of the UUID if you want to use it for subsequent calls regarding the port. See Edit the Configuration for further details.

Confirm the Virtual Server Configuration

To confirm the configuration of the virtual server, perform a GET request to https://10.10.10.10/axapi/v3/slb/virtual-server/vip1/:

curl -k GET https://10.10.10.10/axapi/v3/slb/virtual-server/vip1 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

Here is an example of confirming the virtual server configuration by using the UUID endpoint (rather than using /slb/virtual-server/vip1/):

curl -k GET https://10.10.10.10/axapi/v3/uuid/de3238c6-c9e5-11e4-b4dd-fa163eeb9631 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

If the virtual server has been configured as described in the steps above, the response payload will look like this:

{
  "virtual-server": {
        "name":"vip1",
        "ip-address":"10.10.10.20",
        "enable-disable-action":"enable",
        "redistribution-flagged":0,
        "arp-disable":0,
        "stats-data-action":"stats-data-enable",
        "extended-stats":0,
        "uuid":"de3238c6-c9e5-11e4-b4dd-fa163eeb9631",
        "port-list": [
          {
                "port-number":80,
                "protocol":"http",
                "range":0,
                "conn-limit":8000000,
                "reset":0,
                "no-logging":0,
                "use-alternate-port":0,
                "action":"enable",
                "def-selection-if-pref-failed":"def-selection-if-pref-failed",
                "skip-rev-hash":0,
                "message-switching":0,
                "force-routing-mode":0,
                "reset-on-server-selection-fail":0,
                "clientip-sticky-nat":0,
                "extended-stats":0,
                "snat-on-vip":0,
                "stats-data-action":"stats-data-enable",
                "syn-cookie":0,
                "no-auto-up-on-aflex":0,
                "no-dest-nat":0,
                "scaleout-bucket-count":32,
                "auto":0,
                "service-group":"sg1",
                "ipinip":0,
                "rtp-sip-call-id-match":0,
                "use-rcv-hop-for-resp":0,
                "redirect-to-https":0,
                "template-virtual-port":"default",
                "uuid":"f2152182-c9e5-11e4-b4dd-fa163eeb9631",
                "a10-url":"/axapi/v3/slb/virtual-server/vip1/port/80+http"
          }
        ]
  }
}

You can also perform a GET request to see the list of all configured virtual servers. To do so, you would perform a GET request to the URL https://10.10.10.10/axapi/v3/slb/virtual-server/:

curl -k GET https://10.10.10.10/axapi/v3/slb/virtual-server \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

View Entire SLB Configuration

To confirm that everything is configured correctly, you can also perform a GET on the SLB intermediate resource. This will show all SLB configurations, including the virtual and real servers, and the service group. Make a GET request to https://10.10.10.10/axapi/v3/slb/:

curl -k GET https://10.10.10.10/axapi/v3/slb \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b"

Assuming everything has been configured as described in the above steps, and no other SLB items exist in the ACOS device’s configuration, the HTTP response would contain the following payload:

{
  "slb": {
        "resource-usage": {
          "client-ssl-template-count":32,
          "conn-reuse-template-count":32,
          "fast-tcp-template-count":32,
          "fast-udp-template-count":32,
          "http-template-count":32,
          "nat-pool-addr-count":10,
          "persist-cookie-template-count":32,
          "persist-srcip-template-count":32,
          "proxy-template-count":32,
          "real-port-count":64,
          "real-server-count":1024,
          "server-ssl-template-count":32,
          "service-group-count":32,
          "stream-template-count":32,
          "virtual-port-count":32,
          "virtual-server-count":16,
          "uuid":"95c48e3c-c9b7-11e4-88c6-fa163eeb9631",
          "a10-url":"/axapi/v3/slb/resource-usage"
        },
        "server-list": [
          {
                "name":"server1",
                "host":"10.10.10.11",
                "action":"enable",
                "template-server":"default",
                "health-check-disable":0,
                "conn-limit":8000000,
                "no-logging":0,
                "weight":1,
                "slow-start":0,
                "spoofing-cache":0,
                "stats-data-action":"stats-data-enable",
                "extended-stats":0,
                "uuid":"a9e3bba4-c9e4-11e4-b4dd-fa163eeb9631",
                "port-list": [
                  {
                        "port-number":80,
                        "protocol":"tcp",
                        "range":0,
                        "template-port":"default",
                        "action":"enable",
                        "no-ssl":0,
                        "health-check-disable":0,
                        "weight":1,
                        "conn-limit":8000000,
                        "no-logging":0,
                        "stats-data-action":"stats-data-enable",
                        "extended-stats":0,
                        "uuid":"c12d9618-c9e4-11e4-b4dd-fa163eeb9631",
                        "a10-url":"/axapi/v3/slb/server/server1/port/80+tcp"
                  }
                ],
                "a10-url":"/axapi/v3/slb/server/server1"
          },
          {
                "name":"server2",
                "host":"10.10.10.12",
                "action":"enable",
                "template-server":"default",
                "health-check-disable":0,
                "conn-limit":8000000,
                "no-logging":0,
                "weight":1,
                "slow-start":0,
                "spoofing-cache":0,
                "stats-data-action":"stats-data-enable",
                "extended-stats":0,
                "uuid":"2d826dca-c9e5-11e4-b4dd-fa163eeb9631",
                "port-list": [
                  {
                        "port-number":80,
                        "protocol":"tcp",
                        "range":0,
                        "template-port":"default",
                        "action":"enable",
                        "no-ssl":0,
                        "health-check-disable":0,
                        "weight":1,
                        "conn-limit":8000000,
                        "no-logging":0,
                        "stats-data-action":"stats-data-enable",
                        "extended-stats":0,
                        "uuid":"2d827f4a-c9e5-11e4-b4dd-fa163eeb9631",
                        "a10-url":"/axapi/v3/slb/server/server2/port/80+tcp"
                  }
                ],
                "a10-url":"/axapi/v3/slb/server/server2"
          }
        ],
        "service-group-list": [
          {
                "name":"sg1",
                "protocol":"tcp",
                "lb-method":"round-robin",
                "stateless-auto-switch":0,
                "reset-on-server-selection-fail":0,
                "priority-affinity":0,
                "backup-server-event-log":0,
                "stats-data-action":"stats-data-enable",
                "extended-stats":0,
                "traffic-replication-mirror":0,
                "traffic-replication-mirror-da-repl":0,
                "traffic-replication-mirror-ip-repl":0,
                "traffic-replication-mirror-sa-da-repl":0,
                "traffic-replication-mirror-sa-repl":0,
                "health-check-disable":0,
                "sample-rsp-time":0,
                "uuid":"53a24e44-c9e5-11e4-b4dd-fa163eeb9631",
                "member-list": [
                  {
                        "name":"server1",
                        "port":80,
                        "member-state":"enable",
                        "member-stats-data-disable":0,
                        "member-priority":1,
                        "uuid":"6afde274-c9e5-11e4-b4dd-fa163eeb9631",
                        "a10-url":"/axapi/v3/slb/service-group/sg1/member/server1+80"
                  },
                  {
                        "name":"server2",
                        "port":80,
                        "member-state":"enable",
                        "member-stats-data-disable":0,
                        "member-priority":1,
                        "uuid":"6afe0614-c9e5-11e4-b4dd-fa163eeb9631",
                        "a10-url":"/axapi/v3/slb/service-group/sg1/member/server2+80"
                  }
                ],
                "a10-url":"/axapi/v3/slb/service-group/sg1"
          }
        ],
        "virtual-server-list": [
          {
                "name":"vip1",
                "ip-address":"10.10.10.20",
                "enable-disable-action":"enable",
                "redistribution-flagged":0,
                "arp-disable":0,
                "stats-data-action":"stats-data-enable",
                "extended-stats":0,
                "uuid":"de3238c6-c9e5-11e4-b4dd-fa163eeb9631",
                "port-list": [
                  {
                        "port-number":80,
                        "protocol":"http",
                        "range":0,
                        "conn-limit":8000000,
                        "reset":0,
                        "no-logging":0,
                        "use-alternate-port":0,
                        "action":"enable",
                        "def-selection-if-pref-failed":"def-selection-if-pref-failed",
                        "skip-rev-hash":0,
                        "message-switching":0,
                        "force-routing-mode":0,
                        "reset-on-server-selection-fail":0,
                        "clientip-sticky-nat":0,
                        "extended-stats":0,
                        "snat-on-vip":0,
                        "stats-data-action":"stats-data-enable",
                        "syn-cookie":0,
                        "no-auto-up-on-aflex":0,
                        "no-dest-nat":0,
                        "scaleout-bucket-count":32,
                        "auto":0,
                        "service-group":"sg1",
                        "ipinip":0,
                        "rtp-sip-call-id-match":0,
                        "use-rcv-hop-for-resp":0,
                        "redirect-to-https":0,
                        "template-virtual-port":"default",
                        "uuid":"f2152182-c9e5-11e4-b4dd-fa163eeb9631",
                        "a10-url":"/axapi/v3/slb/virtual-server/vip1/port/80+http"
                  }
                ],
                "a10-url":"/axapi/v3/slb/virtual-server/vip1"
          }
        ],
        "a10-url":"/axapi/v3/slb"
  }
}

Edit the Configuration

In addition to accessing and editing Resources by URI, it is also possible to do so by UUID. The following examples show a few ways to use the UUID for updating or deleting resources.

Note

Object keys are optional when using the UUID to edit resources. Also, object keys cannot be changed by UUID (for example, you will get an error if you try to change server1 to server3).

To disable server1 by using the UUID endpoint (rather than using /slb/server/server1/):

curl -k POST https://10.10.10.10/axapi/v3/uuid/a9e3bba4-c9e4-11e4-b4dd-fa163eeb9631 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "server": {
        "action": "disable"
  }
}'

To delete the port on server1 by using the UUID endpoint (rather than using /slb/server/server1/port/):

curl -k -i -X DELETE https://10.10.10.10/axapi/v3/uuid/c12d9618-c9e4-11e4-b4dd-fa163eeb9631 \
-H "Content-Type:application/json" \
-H "Authorization: A10 dfb4690024c8bcdeded6270534a984"

To revise the number of concurrent connections on the vip port by using the UUID endpoint (rather than using /slb/virtual-server/vip1/port/):

curl -k PUT https://10.10.10.10/axapi/v3/uuid/f2152182-c9e5-11e4-b4dd-fa163eeb9631 \
-H "Content-Type:application/json" \
-H "Authorization: A10 c223169c3ab18f9e3826b9df215c2b" \
-d '{
  "port": {
        "conn-limit": 4000000
  }
}'