{ "id":"/axapi/v3/gslb/policy/{name}", "type":"object", "node-type":"list", "title":"policy", "partition-visibility":"shared", "description":"Policy for GSLB zone, service or geo-location", "properties":{ "name":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "default":"default", "partition-visibility":"shared", "description":"Specify policy name", "optional":false }, "health-check":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Select Service-IP by health status", "optional":true }, "health-check-preference-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Check health preference", "optional":true }, "health-preference-top":{ "type":"number", "format":"number", "minimum":1, "maximum":128, "partition-visibility":"shared", "description":"Only keep top n", "optional":true }, "amount-first":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Select record based on the amount of available service-ip", "optional":true }, "weighted-ip-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Select Service-IP by weighted preference", "optional":true }, "weighted-ip-total-hits":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Weighted by total hits", "optional":true }, "weighted-site-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Select Service-IP by weighted site preference", "optional":true }, "weighted-site-total-hits":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Weighted by total hits", "optional":true }, "weighted-alias":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Select alias name by weighted preference", "optional":true }, "active-servers-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Select Service-IP with the highest number of active servers", "optional":true }, "active-servers-fail-break":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Break when no active server", "optional":true }, "bw-cost-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable bw cost", "optional":true }, "bw-cost-fail-break":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Break when exceed limit", "optional":true }, "geographic":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Select Service-IP by geographic", "optional":true }, "num-session-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable Select Service-IP for device having maximum number of available sessions", "optional":true }, "num-session-tolerance":{ "type":"number", "format":"number", "minimum":0, "maximum":100, "default":10, "partition-visibility":"shared", "description":"The difference between the available sessions, default is 10 (Tolerance)", "optional":true }, "admin-preference":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Select Service-IP for the device having maximum admin preference", "optional":true }, "alias-admin-preference":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Select alias name having maximum admin preference", "optional":true }, "least-response":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Least response selection", "optional":true }, "admin-ip-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable admin ip", "optional":true }, "admin-ip-top-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"ordered-ip-top-only", "description":"Return highest priority server only", "optional":true }, "ordered-ip-top-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"admin-ip-top-only", "description":"Return highest priority server only", "optional":true }, "round-robin":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Round robin selection, enabled by default", "optional":true }, "metric-force-check":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Always check Service-IP for all enabled metrics", "optional":true }, "metric-fail-break":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Break if no valid Service-IP", "optional":true }, "ip-list":{ "type":"string", "format":"string", "minLength":1, "maxLength":63, "partition-visibility":"shared", "$ref":"/axapi/v3/gslb/ip-list", "description":"Specify IP List (IP List Name)", "optional":true }, "metric-order":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Specify order of metric", "optional":true }, "metric-type":{ "type":"string", "format":"enum-list", "partition-visibility":"shared", "enum":[ "health-check", "weighted-ip", "weighted-site", "capacity", "active-servers", "active-rdt", "geographic", "connection-load", "num-session", "admin-preference", "bw-cost", "least-response", "admin-ip" ], "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 }, "capacity":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/capacity", "properties":{ "capacity-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable capacity" }, "threshold":{ "type":"number", "format":"number", "minimum":0, "maximum":100, "default":90, "partition-visibility":"shared", "description":"Specify capacity threshold, default is 90" }, "capacity-fail-break":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Break when exceed threshold" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "connection-load":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/connection-load", "properties":{ "connection-load-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable connection-load" }, "connection-load-fail-break":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Break when exceed limit" }, "connection-load-samples":{ "type":"number", "format":"number", "minimum":1, "maximum":8, "default":5, "partition-visibility":"shared", "description":"Specify samples for connection-load (Number of samples used to calculate the connection load, default is 5)" }, "connection-load-interval":{ "type":"number", "format":"number", "minimum":1, "maximum":60, "default":5, "partition-visibility":"shared", "description":"Interval between two samples, Unit: second (Interval value,default is 5)" }, "limit":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Limit of maxinum connection load, default is unlimited" }, "connection-load-limit":{ "type":"number", "format":"number", "minimum":1, "maximum":999999999, "partition-visibility":"shared", "description":"The value of the connection-load limit, default is unlimited" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "dns":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/dns", "properties":{ "action":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Apply DNS action for service" }, "active-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Only keep active servers" }, "active-only-fail-safe":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Continue if no candidate" }, "dns-addition-mx":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Append MX Records in Addition Section" }, "dns-auto-map":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Automatically build DNS Infrastructure" }, "backup-alias":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Return alias name when fail" }, "backup-server":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Return fallback server when fail" }, "external-ip":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Return DNS response with external IP address" }, "external-soa":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Return DNS response with external SOA Record" }, "cname-detect":{ "type":"number", "format":"flag", "default":1, "partition-visibility":"shared", "description":"Apply GSLB for DNS Server response when service is Canonical Name (CNAME)" }, "ip-replace":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Replace DNS Server Response with GSLB Service-IPs" }, "geoloc-alias":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Return alias name by geo-location" }, "geoloc-action":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Apply DNS action by geo-location" }, "geoloc-policy":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Apply different policy by geo-location" }, "selected-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Only keep selected servers" }, "selected-only-value":{ "type":"number", "format":"number", "minimum":1, "maximum":128, "partition-visibility":"shared", "description":"Answer Number" }, "cache":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Cache DNS Server response" }, "aging-time":{ "type":"number", "format":"number", "minimum":0, "maximum":1000000000, "default":0, "partition-visibility":"shared", "description":"Specify aging-time, default is TTL in DNS record, unit: second (Aging time, default 0 means using TTL in DNS record as aging time)" }, "delegation":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Zone Delegation" }, "hint":{ "type":"string", "format":"enum", "default":"addition", "partition-visibility":"shared", "description":"'none': None; 'answer': Append Hint Records in DNS Answer Section; 'addition': Append Hint Records in DNS Addition Section; ", "enum":[ "none", "answer", "addition" ] }, "logging":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'none': None; 'query': DNS Query; 'response': DNS Response; 'both': Both DNS Query and Response; ", "enum":[ "none", "query", "response", "both" ] }, "template":{ "type":"string", "format":"string-rlx", "minLength":1, "maxLength":127, "partition-visibility":"shared", "$ref":"/axapi/v3/slb/template/logging", "description":"Logging template (Logging Template Name)" }, "ttl":{ "type":"number", "format":"number", "minimum":0, "maximum":1000000000, "default":10, "partition-visibility":"shared", "not":"use-server-ttl", "description":"Specify the TTL value contained in DNS record (TTL value, unit: second, default is 10)" }, "use-server-ttl":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"ttl", "description":"Use DNS Server Response TTL value in GSLB Proxy mode" }, "server":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Run GSLB as DNS server mode" }, "server-srv":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide SRV Records" }, "server-mx":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide MX Records" }, "server-naptr":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide NAPTR Records" }, "server-addition-mx":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Append MX Records in Addition Section" }, "server-ns":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide NS Records" }, "server-auto-ns":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide A-Records for NS-Records automatically" }, "server-ptr":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide PTR Records" }, "server-auto-ptr":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide PTR Records automatically" }, "server-txt":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide TXT Records" }, "server-custom":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide Custom Records" }, "server-any":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"server-any-with-metric", "description":"Provide All Records" }, "server-any-with-metric":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"server-any", "description":"Provide All Records with GSLB Metrics applied to A/AAAA Records" }, "server-authoritative":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"As authoritative server" }, "server-sec":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide DNSSEC support" }, "server-ns-list":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Append All NS Records in Authoritative Section" }, "server-full-list":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Append All A Records in Authoritative Section" }, "server-mode-only":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"zone-owner-mode", "description":"Only run GSLB as DNS server mode" }, "zone-owner-mode":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"server-mode-only", "description":"Only run GSLB as DNS server mode with zone ownership" }, "server-cname":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide CNAME Records" }, "server-caa":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Provide CAA Records" }, "ipv6":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "dns-ipv6-option":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'mix': Return both AAAA Record and A Record; 'smart': Return AAAA Record by DNS Query Type; 'mapping': Map A Record to AAAA Record; ", "enum":[ "mix", "smart", "mapping" ] }, "dns-ipv6-mapping-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'addition': Append Mapped Record in DNS Addition Section; 'answer': Append Mapped Record in DNS Answer Section; 'exclusive': Only return AAAA Record; 'replace': Replace Record with Mapped Record; ", "enum":[ "addition", "answer", "exclusive", "replace" ] } } } ] }, "block-action":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Specify Action" }, "action-type":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'drop': Drop query; 'reject': Send refuse response; 'ignore': Send empty response; ", "enum":[ "drop", "reject", "ignore" ] }, "proxy-block-port-range-list":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "proxy-block-range-from":{ "type":"number", "format":"number", "partition-visibility":"shared", "description":"Specify Type Range (From)" }, "proxy-block-range-to":{ "type":"number", "format":"number", "partition-visibility":"shared", "description":"To" } } } ] }, "block-value":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "block-value":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "partition-visibility":"shared", "description":"Specify Type Number" } } } ] }, "block-type":{ "type":"string", "format":"enum-list", "partition-visibility":"shared", "enum":[ "a", "aaaa", "ns", "mx", "srv", "cname", "ptr", "soa", "txt" ] }, "sticky":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Make DNS Record sticky for certain time" }, "sticky-mask":{ "type":"string", "format":"ipv4-netmask-brief", "default":"/32", "partition-visibility":"shared", "description":"Specify IP mask, default is /32" }, "sticky-ipv6-mask":{ "type":"number", "format":"number", "minimum":1, "maximum":128, "default":128, "partition-visibility":"shared", "description":"Specify IPv6 mask length, default is 128" }, "sticky-aging-time":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "default":5, "partition-visibility":"shared", "description":"Specify aging-time, unit: min, default is 5 (Aging time)" }, "dynamic-preference":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Make dynamically change the preference" }, "dynamic-weight":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"dynamically change the weight" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "geo-location-list":{ "type":"array", "minItems":1, "items":{ "type":"geo-location" }, "uniqueItems":true, "$ref":"/axapi/v3/gslb/policy/{name}/geo-location/{name}", "array":[ { "properties":{ "name":{ "type":"string", "format":"string", "minLength":1, "maxLength":127, "partition-visibility":"shared", "description":"Specify geo-location name, section range is (1-15)", "optional":false }, "ip-multiple-fields":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "ip-sub":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"Specify IP information" }, "ip-mask-sub":{ "type":"string", "format":"ipv4-netmask-brief", "partition-visibility":"shared", "description":"Specify IP/mask format (Specify IP address mask)" }, "ip-addr2-sub":{ "type":"string", "format":"ipv4-address", "partition-visibility":"shared", "description":"Specify IP address range" } } } ] }, "ipv6-multiple-fields":{ "type":"array", "minItems":1, "items":{ "type":"object" }, "uniqueItems":true, "array":[ { "properties":{ "ipv6-sub":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"Specify IPv6 information" }, "ipv6-mask-sub":{ "type":"number", "format":"number", "minimum":0, "maximum":128, "partition-visibility":"shared", "description":"Specify IPv6/mask format (Specify IP address mask)" }, "ipv6-addr2-sub":{ "type":"string", "format":"ipv6-address", "partition-visibility":"shared", "description":"Specify IPv6 address range" } } } ] }, "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 } }, "required":[ "name" ] } ] }, "geo-location-match":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/geo-location-match", "properties":{ "overlap":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable overlap mode to do longest match" }, "geo-type-overlap":{ "type":"string", "format":"enum", "partition-visibility":"shared", "description":"'global': Global Geo-location; 'policy': Policy Geo-location; ", "enum":[ "global", "policy" ] }, "match-first":{ "type":"string", "format":"enum", "default":"global", "partition-visibility":"shared", "description":"'global': Global Geo-location; 'policy': Policy Geo-location; ", "enum":[ "global", "policy" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "active-rdt":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/active-rdt", "properties":{ "enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable the active rdt" }, "single-shot":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Single Shot RDT" }, "timeout":{ "type":"number", "format":"number", "minimum":1, "maximum":255, "default":3, "partition-visibility":"shared", "description":"Specify timeout if round-delay-time samples are not ready (Specify timeout, unit:sec,default is 3)" }, "skip":{ "type":"number", "format":"number", "minimum":1, "maximum":31, "default":3, "partition-visibility":"shared", "description":"Skip query if round-delay-time samples are not ready (Specify maximum skip count,default is 3)" }, "keep-tracking":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Keep tracking client even round-delay-time samples are ready" }, "ignore-id":{ "type":"number", "format":"number", "minimum":0, "maximum":31, "partition-visibility":"shared", "description":"Ignore IP Address specified in IP List by ID" }, "samples":{ "type":"number", "format":"number", "minimum":1, "maximum":8, "default":5, "partition-visibility":"shared", "description":"Specify samples number for round-delay-time (Number of samples,default is 5)" }, "tolerance":{ "type":"number", "format":"number", "minimum":0, "maximum":100, "default":10, "partition-visibility":"shared", "description":"The difference percentage between the round-delay-time, default is 10 (Tolerance)" }, "difference":{ "type":"number", "format":"number", "minimum":0, "maximum":16383, "default":0, "partition-visibility":"shared", "description":"The difference between the round-delay-time, default is 0" }, "limit":{ "type":"number", "format":"number", "minimum":1, "maximum":16383, "default":16383, "partition-visibility":"shared", "description":"Limit of allowed RDT, default is 16383 (Limit, unit: millisecond)" }, "fail-break":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Break when no valid RDT" }, "controller":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Active round-delay-time by controller" }, "proto-rdt-enable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Enable the round-delay-time to the controller" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "auto-map":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/auto-map", "properties":{ "ttl":{ "type":"number", "format":"number", "minimum":1, "maximum":65535, "default":300, "partition-visibility":"shared", "description":"Specify Auto Map TTL (TTL, default is 300)" }, "module-disable":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Specify Disable Auto Map Module" }, "all":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "not":"module-type", "description":"All modules" }, "module-type":{ "type":"string", "format":"enum-list", "partition-visibility":"shared", "not":"all", "enum":[ "slb-virtual-server", "slb-device", "slb-server", "gslb-service-ip", "gslb-site", "gslb-group", "hostname" ] }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } }, "edns":{ "type":"object", "$ref":"/axapi/v3/gslb/policy/{name}/edns", "properties":{ "client-subnet-geographic":{ "type":"number", "format":"flag", "default":0, "partition-visibility":"shared", "description":"Use client subnet for geo-location" }, "uuid":{ "type":"string", "format":"string", "minLength":1, "maxLength":64, "partition-visibility":"shared", "modify-not-allowed":1, "description":"uuid of the object" } } } }, "object-keys":[ "name" ], "required":[ "name" ] }