{ "id":"/axapi/v3/slb/service-group/{name}", "type":"object", "node-type":"list", "title":"service-group", "partition-visibility":"shared", "description":"Service Group", "properties":{ "name":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"SLB Service Name", "optional":false }, "protocol":{ "type":"string", "format":"enum", "partition-visibility":"shared", "modify-not-allowed":1, "description":"'tcp': TCP LB service; 'udp': UDP LB service; ", "enum":[ "tcp", "udp" ], "optional":true }, "template-port":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/port", "description":"Port template (Port template name)", "optional":true }, "template-policy":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/policy", "not":"shared-partition-policy-template", "description":"Policy template (Policy template name)", "optional":true }, "shared-partition-policy-template":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"template-policy", "description":"Reference a policy template from shared partition", "optional":true }, "template-policy-shared":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/policy", "description":"Policy template", "optional":true }, "lb-method":{ "type":"string", "format":"enum", "default":"round-robin", "partition-visibility":"shared", "not-list":[ "lrprr-method", "lc-method", "stateless-lb-method", "llb-method", "lclb-method" ], "description":"'dst-ip-hash': Load-balancing based on only Dst IP and Port hash; 'dst-ip-only-hash': Load-balancing based on only Dst IP hash; 'fastest-response': Fastest response time on service port level; 'least-request': Least request on service port level; 'src-ip-hash': Load-balancing based on only Src IP and Port hash; 'src-ip-only-hash': Load-balancing based on only Src IP hash; 'weighted-rr': Weighted round robin on server level; 'service-weighted-rr': Weighted round robin on service port level; 'round-robin': Round robin on server level; 'round-robin-strict': Strict mode round robin on server level; 'odd-even-hash': odd/even hash based of client src-ip; ", "enum":[ "dst-ip-hash", "dst-ip-only-hash", "fastest-response", "least-request", "src-ip-hash", "src-ip-only-hash", "weighted-rr", "service-weighted-rr", "round-robin", "round-robin-strict", "odd-even-hash" ], "optional":true }, "lrprr-method":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not-list":[ "lb-method", "lc-method", "stateless-lb-method", "llb-method", "lclb-method" ], "description":"'service-least-request-pseudo-round-robin': Least request on service port level and select the oldest node for sub-select; ", "enum":[ "service-least-request-pseudo-round-robin" ], "optional":true }, "lc-method":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not-list":[ "lb-method", "lrprr-method", "stateless-lb-method", "llb-method", "lclb-method" ], "description":"'least-connection': Least connection on server level; 'service-least-connection': Least connection on service port level; 'weighted-least-connection': Weighted least connection on server level; 'service-weighted-least-connection': Weighted least connection on service port level; ", "enum":[ "least-connection", "service-least-connection", "weighted-least-connection", "service-weighted-least-connection" ], "optional":true }, "stateless-lb-method":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not-list":[ "lb-method", "lrprr-method", "lc-method", "llb-method", "lclb-method" ], "description":"'stateless-dst-ip-hash': Stateless load-balancing based on Dst IP and Dst port hash; 'stateless-per-pkt-round-robin': Stateless load-balancing using per-packet round-robin; 'stateless-src-dst-ip-hash': Stateless load-balancing based on IP and port hash for both Src and Dst; 'stateless-src-dst-ip-only-hash': Stateless load-balancing based on only IP hash for both Src and Dst; 'stateless-src-ip-hash': Stateless load-balancing based on Src IP and Src port hash; 'stateless-src-ip-only-hash': Stateless load-balancing based on only Src IP hash; 'stateless-per-pkt-weighted-rr': Stateless load-balancing using per-packet weighted round robin on server level; 'stateless-per-pkt-service-weighted-rr': Stateless load-balancing using per-packet weighted round robin on service port level; ", "enum":[ "stateless-dst-ip-hash", "stateless-per-pkt-round-robin", "stateless-src-dst-ip-hash", "stateless-src-dst-ip-only-hash", "stateless-src-ip-hash", "stateless-src-ip-only-hash", "stateless-per-pkt-weighted-rr", "stateless-per-pkt-service-weighted-rr" ], "optional":true }, "llb-method":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not-list":[ "lb-method", "lrprr-method", "lc-method", "stateless-lb-method", "lclb-method" ], "description":"'next-hop-link': Server selection w/ link probe template on service port level; ", "enum":[ "next-hop-link" ], "optional":true }, "link-probe-template":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/link-probe", "description":"Link Probe template (Link Probe template name)", "optional":true }, "lclb-method":{ "type":"string", "format":"enum", "partition-visibility":"shared", "not-list":[ "lb-method", "lrprr-method", "lc-method", "stateless-lb-method", "llb-method" ], "description":"'link-cost-load-balance': Link cost load balance; ", "enum":[ "link-cost-load-balance" ], "optional":true }, "pseudo-round-robin":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"PRR, select the oldest node for sub-select", "optional":true }, "stateless-auto-switch":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable auto stateless method", "optional":true }, "stateless-lb-method2":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'stateless-dst-ip-hash': Stateless load-balancing based on Dst IP and Dst port hash; 'stateless-per-pkt-round-robin': Stateless load-balancing using per-packet round-robin; 'stateless-src-dst-ip-hash': Stateless load-balancing based on IP and port hash for both Src and Dst; 'stateless-src-dst-ip-only-hash': Stateless load-balancing based on only IP hash for both Src and Dst; 'stateless-src-ip-hash': Stateless load-balancing based on Src IP and Src port hash; 'stateless-src-ip-only-hash': Stateless load-balancing based on only Src IP hash; 'stateless-per-pkt-weighted-rr': Stateless load-balancing using per-packet weighted round robin on server level; 'stateless-per-pkt-service-weighted-rr': Stateless load-balancing using per-packet weighted round robin on service port level; ", "enum":[ "stateless-dst-ip-hash", "stateless-per-pkt-round-robin", "stateless-src-dst-ip-hash", "stateless-src-dst-ip-only-hash", "stateless-src-ip-hash", "stateless-src-ip-only-hash", "stateless-per-pkt-weighted-rr", "stateless-per-pkt-service-weighted-rr" ], "optional":true }, "conn-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":1000000, "partition-visibility":"shared", "not":"l4-session-usage", "description":"Dynamically enable stateless method by conn-rate (Rate to trigger stateless method(conn/sec))", "optional":true }, "conn-rate-duration":{ "type":"number", "format":"number", "minimum":1, "maximum":600, "partition-visibility":"shared", "description":"Period that trigger condition consistently happens(seconds)", "optional":true }, "conn-revert-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":1000000, "partition-visibility":"shared", "description":"Rate to revert to statelful method (conn/sec)", "optional":true }, "conn-rate-revert-duration":{ "type":"number", "format":"number", "minimum":1, "maximum":600, "partition-visibility":"shared", "description":"Period that revert condition consistently happens(seconds)", "optional":true }, "conn-rate-grace-period":{ "type":"number", "format":"number", "minimum":1, "maximum":600, "partition-visibility":"shared", "description":"Define the grace period during transition (Define the grace period during transition(seconds))", "optional":true }, "conn-rate-log":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Send log if transition happens", "optional":true }, "l4-session-usage":{ "type":"number", "format":"number", "minimum":1, "maximum":100, "partition-visibility":"shared", "not":"conn-rate", "description":"Dynamically enable stateless method by session usage (Usage to trigger stateless method)", "optional":true }, "l4-session-usage-duration":{ "type":"number", "format":"number", "minimum":1, "maximum":600, "partition-visibility":"shared", "description":"Period that trigger condition consistently happens(seconds)", "optional":true }, "l4-session-usage-revert-rate":{ "type":"number", "format":"number", "minimum":1, "maximum":100, "partition-visibility":"shared", "description":"Usage to revert to statelful method", "optional":true }, "l4-session-revert-duration":{ "type":"number", "format":"number", "minimum":1, "maximum":600, "partition-visibility":"shared", "description":"Period that revert condition consistently happens(seconds)", "optional":true }, "l4-session-usage-grace-period":{ "type":"number", "format":"number", "minimum":1, "maximum":600, "partition-visibility":"shared", "description":"Define the grace period during transition (Define the grace period during transition(seconds))", "optional":true }, "l4-session-usage-log":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Send log if transition happens", "optional":true }, "min-active-member":{ "type":"number", "format":"number", "minimum":1, "maximum":1024, "partition-visibility":"shared", "description":"Minimum Active Member Per Priority (Minimum Active Member before Action)", "optional":true }, "min-active-member-action":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'dynamic-priority': dynamic change member priority to met the min-active-member requirement; 'skip-pri-set': Skip Current Priority Set If Min not met; ", "enum":[ "dynamic-priority", "skip-pri-set" ], "optional":true }, "reset-on-server-selection-fail":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Send reset to client if server selection fails", "optional":true }, "priority-affinity":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Priority affinity. Persist to the same priority if possible.", "optional":true }, "reset-priority-affinity":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Reset", "optional":true }, "backup-server-event-log":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Send log info on back up server events", "optional":true }, "strict-select":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"strict selection", "optional":true }, "stats-data-action":{ "type":"string", "format":"enum", "default":"stats-data-enable", "partition-visibility":"shared", "description":"'stats-data-enable': Enable statistical data collection for service group; 'stats-data-disable': Disable statistical data collection for service group; ", "enum":[ "stats-data-enable", "stats-data-disable" ], "optional":true }, "extended-stats":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable extended statistics on service group", "optional":true }, "traffic-replication-mirror":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "traffic-replication-mirror-da-repl", "traffic-replication-mirror-ip-repl", "traffic-replication-mirror-sa-da-repl", "traffic-replication-mirror-sa-repl" ], "description":"Mirror Bi-directional Packet", "optional":true }, "traffic-replication-mirror-da-repl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "traffic-replication-mirror", "traffic-replication-mirror-ip-repl", "traffic-replication-mirror-sa-da-repl", "traffic-replication-mirror-sa-repl" ], "description":"Replace Destination MAC", "optional":true }, "traffic-replication-mirror-ip-repl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "traffic-replication-mirror", "traffic-replication-mirror-da-repl", "traffic-replication-mirror-sa-da-repl", "traffic-replication-mirror-sa-repl" ], "description":"Replaces IP with server-IP", "optional":true }, "traffic-replication-mirror-sa-da-repl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "traffic-replication-mirror", "traffic-replication-mirror-da-repl", "traffic-replication-mirror-ip-repl", "traffic-replication-mirror-sa-repl" ], "description":"Replace Source MAC and Destination MAC", "optional":true }, "traffic-replication-mirror-sa-repl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "traffic-replication-mirror", "traffic-replication-mirror-da-repl", "traffic-replication-mirror-ip-repl", "traffic-replication-mirror-sa-da-repl" ], "description":"Replace Source MAC", "optional":true }, "health-check":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/health/monitor", "not-list":[ "shared-partition-svcgrp-health-check", "health-check-disable" ], "description":"Health Check (Monitor Name)", "optional":true }, "shared-partition-svcgrp-health-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "health-check", "health-check-disable" ], "description":"Reference a health-check from shared partition", "optional":true }, "svcgrp-health-check-shared":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/health/monitor", "not":"health-check-disable", "description":"Health Check (Monitor Name)", "optional":true }, "health-check-disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not-list":[ "health-check", "shared-partition-svcgrp-health-check", "svcgrp-health-check-shared" ], "description":"Disable health check", "optional":true }, "priorities":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "priority":{ "type":"number", "format":"number", "minimum":1, "maximum":16, "partition-visibility":"shared", "description":"Priority option. Define different action for each priority node. (Priority in the Group)" }, "priority-action":{ "type":"string", "format":"enum", "default":"proceed", "partition-visibility":"shared", "description":"'drop': Drop request when all priority nodes fail; 'drop-if-exceed-limit': Drop request when connection over limit; 'proceed': Proceed to next priority when all priority nodes fail(default); 'reset': Send client reset when all priority nodes fail; 'reset-if-exceed-limit': Send client reset when connection over limit; ", "enum":[ "drop", "drop-if-exceed-limit", "proceed", "reset", "reset-if-exceed-limit" ] } } } ] }, "sample-rsp-time":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"sample server response time", "optional":true }, "rpt-ext-server":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Report top 10 fastest/slowest servers", "optional":true }, "report-delay":{ "type":"number", "format":"number", "minimum":1, "maximum":7200, "partition-visibility":"shared", "description":"Reporting frequency (in minutes)", "optional":true }, "top-slowest":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Report top 10 slowest servers", "optional":true }, "top-fastest":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Report top 10 fastest servers", "optional":true }, "persist-scoring":{ "type":"string", "format":"enum", "default":"global", "partition-visibility":"shared", "description":"'global': Use Global Configuration; 'enable': Enable persist-scoring; 'disable': Disable persist-scoring; ", "enum":[ "global", "enable", "disable" ], "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true }, "sampling-enable":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "counters1":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'all': all; 'server_selection_fail_drop': Drops due to Service selection failure; 'server_selection_fail_reset': Resets sent out for Service selection failure; 'service_peak_conn': Peak connection count for the Service Group; 'service_healthy_host': Service Group healthy host count; 'service_unhealthy_host': Service Group unhealthy host count; 'service_req_count': Service Group request count; 'service_resp_count': Service Group response count; 'service_resp_2xx': Service Group response 2xx count; 'service_resp_3xx': Service Group response 3xx count; 'service_resp_4xx': Service Group response 4xx count; 'service_resp_5xx': Service Group response 5xx count; 'service_curr_conn_overflow': Current connection counter overflow count; ", "enum":[ "all", "server_selection_fail_drop", "server_selection_fail_reset", "service_peak_conn", "service_healthy_host", "service_unhealthy_host", "service_req_count", "service_resp_count", "service_resp_2xx", "service_resp_3xx", "service_resp_4xx", "service_resp_5xx", "service_curr_conn_overflow" ] } } } ] }, "reset":{ "type":"object", "$ref":"/axapi/v3/slb/service-group/{name}/reset", "properties":{ "auto-switch":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Reset auto stateless state" } } }, "member-list":{ "type":"array", "minItems":1, "items":{ "type":"member" }, "uniqueItems":true, "$ref":"/axapi/v3/slb/service-group/{name}/member/{name}+{port}", "array":[ { "properties":{ "name":{ "type":"string", "format":"comp-string", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/server", "description":"Member name", "optional":false }, "port":{ "type":"number", "format":"number", "minimum":0, "maximum":65534, "default":65534, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/server/port", "description":"Port number", "optional":false }, "fqdn-name":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "partition-visibility":"shared", "description":"Server hostname - Not applicable if real server is already defined", "optional":true }, "resolve-as":{ "type":"string", "format":"enum", "default":"resolve-to-ipv4", "partition-visibility":"shared", "description":"'resolve-to-ipv4': Use A Query only to resolve FQDN; 'resolve-to-ipv6': Use AAAA Query only to resolve FQDN; 'resolve-to-ipv4-and-ipv6': Use A as well as AAAA Query to resolve FQDN; ", "enum":[ "resolve-to-ipv4", "resolve-to-ipv6", "resolve-to-ipv4-and-ipv6" ], "optional":true }, "host":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"IP Address - Not applicable if real server is already defined", "optional":true }, "server-ipv6-addr":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"IPV6 Address - Not applicable if real server is already defined", "optional":true }, "member-state":{ "type":"string", "format":"enum", "default":"enable", "partition-visibility":"shared", "description":"'enable': Enable member service port; 'disable': Disable member service port; 'disable-with-health-check': disable member service port, but health check work; ", "enum":[ "enable", "disable", "disable-with-health-check" ], "optional":true }, "member-stats-data-disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Disable statistical data collection", "optional":true }, "member-template":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/port", "description":"Real server port template (Real server port template name)", "optional":true }, "member-priority":{ "type":"number", "format":"number", "minimum":1, "maximum":16, "default":1, "partition-visibility":"shared", "description":"Priority of Port in the Group (Priority of Port in the Group, default is 1)", "optional":true }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object", "optional":true }, "user-tag":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Customized tag", "optional":true }, "sampling-enable":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "counters1":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'all': all; 'total_fwd_bytes': Bytes processed in forward direction; 'total_fwd_pkts': Packets processed in forward direction; 'total_rev_bytes': Bytes processed in reverse direction; 'total_rev_pkts': Packets processed in reverse direction; 'total_conn': Total established connections; 'total_rev_pkts_inspected': Total reverse packets inspected; 'total_rev_pkts_inspected_status_code_2xx': Total reverse packets inspected status code 2xx; 'total_rev_pkts_inspected_status_code_non_5xx': Total reverse packets inspected status code non 5xx; 'curr_req': Current requests; 'total_req': Total requests; 'total_req_succ': Total requests successful; 'peak_conn': Peak connections; 'response_time': Response time; 'fastest_rsp_time': Fastest response time; 'slowest_rsp_time': Slowest response time; 'curr_ssl_conn': Current SSL connections; 'total_ssl_conn': Total SSL connections; 'curr_conn_overflow': Current connection counter overflow count; 'state_flaps': State flaps count; ", "enum":[ "all", "total_fwd_bytes", "total_fwd_pkts", "total_rev_bytes", "total_rev_pkts", "total_conn", "total_rev_pkts_inspected", "total_rev_pkts_inspected_status_code_2xx", "total_rev_pkts_inspected_status_code_non_5xx", "curr_req", "total_req", "total_req_succ", "peak_conn", "response_time", "fastest_rsp_time", "slowest_rsp_time", "curr_ssl_conn", "total_ssl_conn", "curr_conn_overflow", "state_flaps" ] } } } ] } }, "required":[ "name", "port" ] } ] } }, "object-keys":[ "name" ], "required":[ "name" ] }