from a10sdk.common.A10BaseClass import A10BaseClass


class GslbIpListAddrList(A10BaseClass):
    
    """This class does not support CRUD Operations please use parent.

    :param ip: {"type": "string", "description": "Specify IP address", "format": "ipv4-address"}
    :param ip_mask: {"type": "string", "description": "IP mask", "format": "ipv4-netmask"}
    :param id: {"description": "ID Number", "minimum": 0, "type": "number", "maximum": 31, "format": "number"}
    :param DeviceProxy: The device proxy for REST operations and session handling. Refer to `common/device_proxy.py`

    

    
    """
    def __init__(self, **kwargs):
        self.ERROR_MSG = ""
        
        self.b_key = "gslb-ip-list-addr-list"
        self.DeviceProxy = ""
        self.ip = ""
        self.ip_mask = ""
        self.A10WW_id = ""

        for keys, value in kwargs.items():
            setattr(self,keys, value)


class IpListList(A10BaseClass):
    
    """This class does not support CRUD Operations please use parent.

    :param gslb_ip_list_addr_list: {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"ip": {"type": "string", "description": "Specify IP address", "format": "ipv4-address"}, "ip-mask": {"type": "string", "description": "IP mask", "format": "ipv4-netmask"}, "optional": true, "id": {"description": "ID Number", "minimum": 0, "type": "number", "maximum": 31, "format": "number"}}}]}
    :param gslb_ip_list_filename: {"description": "Load IP List file (IP List filename)", "format": "string-rlx", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}
    :param gslb_ip_list_obj_name: {"description": "Specify IP List name", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}
    :param DeviceProxy: The device proxy for REST operations and session handling. Refer to `common/device_proxy.py`

    

    
    """
    def __init__(self, **kwargs):
        self.ERROR_MSG = ""
        
        self.b_key = "ip-list-list"
        self.DeviceProxy = ""
        self.gslb_ip_list_addr_list = []
        self.gslb_ip_list_filename = ""
        self.gslb_ip_list_obj_name = ""

        for keys, value in kwargs.items():
            setattr(self,keys, value)


class Gslb(A10BaseClass):
    
    """Class Description::
    Global server load balance commands.

    Class gslb supports CRUD Operations and inherits from `common/A10BaseClass`.
    This class is the `"PARENT"` class for this module.`

    :param service_group_list: {"minItems": 1, "items": {"type": "service-group"}, "uniqueItems": true, "array": [{"required": ["service-group-name"], "properties": {"member": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"member-name": {"platform-specific-default": 1, "type": "string", "description": "Service name", "format": "string"}, "optional": true}}]}, "service-group-name": {"description": "Specify Service Group name", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "disable-site-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "disable-site": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Site name", "format": "string"}}}]}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable all members", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/gslb/service-group/{service-group-name}"}
    :param geo_location_list: {"minItems": 1, "items": {"type": "geo-location"}, "uniqueItems": true, "array": [{"required": ["geo-locn-obj-name"], "properties": {"geo-locn-obj-name": {"description": "Specify geo-location name, section range is (1-15)", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "geo-locn-multiple-addresses": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"first-ip-address": {"type": "string", "description": "Specify IP information (Specify IP address)", "format": "ipv4-address"}, "first-ipv6-address": {"type": "string", "description": "Specify IPv6 address", "format": "ipv6-address"}, "geol-ipv4-mask": {"not": "ip-addr2", "type": "string", "description": "Specify IPv4 mask", "format": "ipv4-netmask"}, "ip-addr2": {"not": "geol-ipv4-mask", "type": "string", "description": "Specify IP address range", "format": "ipv4-address"}, "ipv6-addr2": {"not": "geol-ipv6-mask", "type": "string", "description": "Specify IPv6 address range", "format": "ipv6-address"}, "geol-ipv6-mask": {"description": "Specify IPv6 mask", "format": "number", "maximum": 128, "minimum": 0, "not": "ipv6-addr2", "type": "number"}, "optional": true}}]}}}], "type": "array", "$ref": "/axapi/v3/gslb/geo-location/{geo-locn-obj-name}"}
    :param policy_list: {"minItems": 1, "items": {"type": "policy"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"weighted-ip-enable": {"default": 0, "optional": true, "type": "number", "description": "Enable Select Service-IP by weighted preference", "format": "flag"}, "alias-admin-preference": {"default": 0, "optional": true, "type": "number", "description": "Select alias name having maximum admin preference", "format": "flag"}, "least-response": {"default": 0, "optional": true, "type": "number", "description": "Least response selection", "format": "flag"}, "auto-map": {"type": "object", "properties": {"all": {"default": 0, "not": "module-type", "type": "number", "description": "All modules", "format": "flag"}, "module-disable": {"default": 0, "type": "number", "description": "Specify Disable Auto Map Module", "format": "flag"}, "module-type": {"not": "all", "enum": ["slb-virtual-server", "slb-device", "slb-server", "gslb-service-ip", "gslb-site", "gslb-group", "hostname"], "type": "string", "format": "enum-list"}, "ttl": {"description": "Specify Auto Map TTL (TTL, default is 300)", "format": "number", "default": 300, "maximum": 65535, "minimum": 1, "type": "number"}}}, "bw-cost-fail-break": {"default": 0, "optional": true, "type": "number", "description": "Break when exceed limit", "format": "flag"}, "metric-fail-break": {"default": 0, "optional": true, "type": "number", "description": "Break if no valid Service-IP", "format": "flag"}, "weighted-ip": {"default": 0, "optional": true, "type": "number", "description": "Select Service-IP by weighted preference", "format": "flag"}, "active-rdt": {"type": "object", "properties": {"ignore-id": {"description": "Ignore IP Address specified in IP List by ID", "minimum": 0, "type": "number", "maximum": 31, "format": "number"}, "keep-tracking": {"default": 0, "type": "number", "description": "Keep tracking client even round-delay-time samples are ready", "format": "flag"}, "enable": {"default": 0, "type": "number", "description": "Enable the active rdt", "format": "flag"}, "samples": {"description": "Specify samples number for round-delay-time (Number of samples,default is 5)", "format": "number", "default": 5, "maximum": 8, "minimum": 1, "type": "number"}, "skip": {"description": "Skip query if round-delay-time samples are not ready (Specify maximum skip count,default is 3)", "format": "number", "default": 3, "maximum": 31, "minimum": 1, "type": "number"}, "fail-break": {"default": 0, "type": "number", "description": "Break when no valid RDT", "format": "flag"}, "limit": {"description": "Limit of allowed RDT, default is 16383 (Limit, unit: millisecond)", "format": "number", "default": 16383, "maximum": 16383, "minimum": 1, "type": "number"}, "timeout": {"description": "Specify timeout if round-delay-time samples are not ready (Specify timeout, unit:sec,default is 3)", "format": "number", "default": 3, "maximum": 255, "minimum": 1, "type": "number"}, "single-shot": {"default": 0, "type": "number", "description": "Single Shot RDT", "format": "flag"}, "difference": {"description": "The difference between the round-delay-time, default is 0", "format": "number", "default": 0, "maximum": 16383, "minimum": 0, "type": "number"}, "tolerance": {"description": "The difference percentage between the round-delay-time, default is 10 (Tolerance)", "format": "number", "default": 10, "maximum": 100, "minimum": 0, "type": "number"}}}, "round-robin": {"default": 1, "optional": true, "type": "number", "description": "Round robin selection, enabled by default", "format": "flag"}, "capacity": {"type": "object", "properties": {"threshold": {"description": "Specify capacity threshold, default is 90", "format": "number", "default": 90, "maximum": 100, "minimum": 0, "type": "number"}, "capacity-enable": {"default": 0, "type": "number", "description": "Enable capacity", "format": "flag"}, "capacity-fail-break": {"default": 0, "type": "number", "description": "Break when exceed threshold", "format": "flag"}}}, "metric-type": {"optional": true, "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"], "type": "string", "format": "enum-list"}, "num-session-tolerance": {"description": "The difference between the available sessions, default is 10 (Tolerance)", "format": "number", "default": 10, "optional": true, "maximum": 100, "minimum": 0, "type": "number"}, "geo-location-match": {"type": "object", "properties": {"geo-type-overlap": {"enum": ["global", "policy"], "type": "string", "description": "'global': Global Geo-location; 'policy': Policy Geo-location; ", "format": "enum"}, "overlap": {"default": 0, "type": "number", "description": "Enable overlap mode to do longest match", "format": "flag"}, "match-first": {"default": "global", "enum": ["global", "policy"], "type": "string", "description": "'global': Global Geo-location; 'policy': Policy Geo-location; ", "format": "enum"}}}, "metric-order": {"default": 0, "optional": true, "type": "number", "description": "Specify order of metric", "format": "flag"}, "top-only": {"default": 0, "optional": true, "type": "number", "description": "Return highest priority server only", "format": "flag"}, "dns": {"type": "object", "properties": {"external-soa": {"default": 0, "type": "number", "description": "Return DNS response with external SOA Record", "format": "flag"}, "server-sec": {"default": 0, "type": "number", "description": "Provide DNSSEC support", "format": "flag"}, "sticky-ipv6-mask": {"description": "Specify IPv6 mask length, default is 128", "format": "number", "default": 128, "maximum": 128, "minimum": 1, "type": "number"}, "sticky": {"default": 0, "type": "number", "description": "Make DNS Record sticky for certain time", "format": "flag"}, "delegation": {"default": 0, "type": "number", "description": "Zone Delegation", "format": "flag"}, "active-only-fail-safe": {"default": 0, "type": "number", "description": "Continue if no candidate", "format": "flag"}, "cname-detect": {"default": 1, "type": "number", "description": "Apply GSLB for DNS Server response when service is Canonical Name (CNAME)", "format": "flag"}, "ttl": {"description": "Specify the TTL value contained in DNS record (TTL value, unit: second, default is 10)", "format": "number", "default": 10, "maximum": 1000000000, "minimum": 0, "not": "use-server-ttl", "type": "number"}, "server-full-list": {"default": 0, "type": "number", "description": "Append All A Records in Authoritative Section", "format": "flag"}, "server-ptr": {"default": 0, "type": "number", "description": "Provide PTR Records", "format": "flag"}, "selected-only": {"default": 0, "type": "number", "description": "Only keep selected servers", "format": "flag"}, "dns-addition-mx": {"default": 0, "type": "number", "description": "Append MX Records in Addition Section", "format": "flag"}, "block-type": {"enum": ["a", "aaaa", "ns", "mx", "srv", "cname", "ptr", "soa", "txt"], "type": "string", "format": "enum-list"}, "backup-alias": {"default": 0, "type": "number", "description": "Return alias name when fail", "format": "flag"}, "server-any": {"default": 0, "type": "number", "description": "Provide All Records", "format": "flag"}, "hint": {"default": "addition", "enum": ["none", "answer", "addition"], "type": "string", "description": "'none': None; 'answer': Append Hint Records in DNS Answer Section; 'addition': Append Hint Records in DNS Addition Section; ", "format": "enum"}, "cache": {"default": 0, "type": "number", "description": "Cache DNS Server response", "format": "flag"}, "external-ip": {"default": 1, "type": "number", "description": "Return DNS response with external IP address", "format": "flag"}, "server-txt": {"default": 0, "type": "number", "description": "Provide TXT Records", "format": "flag"}, "server-addition-mx": {"default": 0, "type": "number", "description": "Append MX Records in Addition Section", "format": "flag"}, "aging-time": {"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)", "format": "number", "default": 0, "maximum": 1000000000, "minimum": 0, "type": "number"}, "block-action": {"default": 0, "type": "number", "description": "Specify Action", "format": "flag"}, "ipv6": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"dns-ipv6-mapping-type": {"enum": ["addition", "answer", "exclusive", "replace"], "type": "string", "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; ", "format": "enum"}, "optional": true, "dns-ipv6-option": {"enum": ["mix", "smart", "mapping"], "type": "string", "description": "'mix': Return both AAAA Record and A Record; 'smart': Return AAAA Record by DNS Query Type; 'mapping': Map A Record to AAAA Record; ", "format": "enum"}}}]}, "selected-only-value": {"description": "Answer Number", "minimum": 1, "type": "number", "maximum": 128, "format": "number"}, "geoloc-action": {"default": 0, "type": "number", "description": "Apply DNS action by geo-location", "format": "flag"}, "server-ns": {"default": 0, "type": "number", "description": "Provide NS Records", "format": "flag"}, "action-type": {"enum": ["drop", "reject", "ignore"], "type": "string", "description": "'drop': Drop query; 'reject': Send refuse response; 'ignore': Send empty response; ", "format": "enum"}, "active-only": {"default": 0, "type": "number", "description": "Only keep active servers", "format": "flag"}, "block-value": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "block-value": {"description": "Specify Type Number", "minimum": 1, "type": "number", "maximum": 255, "format": "number"}}}]}, "server-srv": {"default": 0, "type": "number", "description": "Provide SRV Records", "format": "flag"}, "server-auto-ptr": {"default": 0, "type": "number", "description": "Provide PTR Records automatically", "format": "flag"}, "server-authoritative": {"default": 0, "type": "number", "description": "As authoritative server", "format": "flag"}, "use-server-ttl": {"default": 0, "not": "ttl", "type": "number", "description": "Use DNS Server Response TTL value in GSLB Proxy mode", "format": "flag"}, "proxy-block-port-range-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"proxy-block-range-from": {"type": "number", "description": "Specify Type Range (From)", "format": "number"}, "optional": true, "proxy-block-range-to": {"type": "number", "description": "To", "format": "number"}}}]}, "ip-replace": {"default": 0, "type": "number", "description": "Replace DNS Server Response with GSLB Service-IPs", "format": "flag"}, "sticky-mask": {"type": "string", "description": "Specify IP mask, default is /32 default /32", "format": "ipv4-netmask-brief"}, "geoloc-alias": {"default": 0, "type": "number", "description": "Return alias name by geo-location", "format": "flag"}, "logging": {"enum": ["none", "query", "response", "both"], "type": "string", "description": "'none': None; 'query': DNS Query; 'response': DNS Response; 'both': Both DNS Query and Response; ", "format": "enum"}, "backup-server": {"default": 0, "type": "number", "description": "Return fallback server when fail", "format": "flag"}, "sticky-aging-time": {"description": "Specify aging-time, unit: min, default is 5 (Aging time)", "format": "number", "default": 5, "maximum": 65535, "minimum": 1, "type": "number"}, "geoloc-policy": {"default": 0, "type": "number", "description": "Apply different policy by geo-location", "format": "flag"}, "server": {"default": 0, "type": "number", "description": "Run GSLB as DNS server mode", "format": "flag"}, "server-ns-list": {"default": 0, "type": "number", "description": "Append All NS Records in Authoritative Section", "format": "flag"}, "server-auto-ns": {"default": 0, "type": "number", "description": "Provide PTR Records automatically", "format": "flag"}, "action": {"default": 0, "type": "number", "description": "Apply DNS action for service", "format": "flag"}, "dns-auto-map": {"default": 0, "type": "number", "description": "Automatically build DNS Infrastructure", "format": "flag"}, "server-mx": {"default": 0, "type": "number", "description": "Provide MX Records", "format": "flag"}}}, "weighted-ip-total-hits": {"default": 0, "optional": true, "type": "number", "description": "Weighted by total hits", "format": "flag"}, "weighted-site-total-hits": {"default": 0, "optional": true, "type": "number", "description": "Weighted by total hits", "format": "flag"}, "weighted-site-enable": {"default": 0, "optional": true, "type": "number", "description": "Enable Select Service-IP by weighted site preference", "format": "flag"}, "bw-cost": {"default": 0, "optional": true, "type": "number", "description": "Select site with minimum bandwidth cost", "format": "flag"}, "metric-force-check": {"default": 0, "optional": true, "type": "number", "description": "Always check Service-IP for all enabled metrics", "format": "flag"}, "admin-ip-enable": {"default": 0, "optional": true, "type": "number", "description": "Enable admin ip", "format": "flag"}, "geo-location-list": {"minItems": 1, "items": {"type": "geo-location"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"ip-multiple-fields": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"ip-addr2-sub": {"type": "string", "description": "Specify IP address range", "format": "ipv4-address"}, "optional": true, "ip-sub": {"type": "string", "description": "Specify IP information", "format": "ipv4-address"}, "ip-mask-sub": {"type": "string", "description": "Specify IP/mask format (Specify IP address mask)", "format": "ipv4-netmask-brief"}}}]}, "name": {"description": "Specify geo-location name, section range is (1-15)", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "ipv6-multiple-fields": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"ipv6-mask-sub": {"description": "Specify IPv6/mask format (Specify IP address mask)", "minimum": 0, "type": "number", "maximum": 128, "format": "number"}, "ipv6-sub": {"type": "string", "description": "Specify IPv6 information", "format": "ipv6-address"}, "optional": true, "ipv6-addr2-sub": {"type": "string", "description": "Specify IPv6 address range", "format": "ipv6-address"}}}]}}}], "type": "array", "$ref": "/axapi/v3/gslb/policy/{name}/geo-location/{name}"}, "weighted-alias": {"default": 0, "optional": true, "type": "number", "description": "Select alias name by weighted preference", "format": "flag"}, "bw-cost-enable": {"default": 0, "optional": true, "type": "number", "description": "Enable bw cost", "format": "flag"}, "num-session-enable": {"default": 0, "optional": true, "type": "number", "description": "Enable Select Service-IP for device having maximum number of available sessions", "format": "flag"}, "name": {"description": "Specify policy name", "format": "string", "default": "default", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "active-servers-enable": {"default": 0, "optional": true, "type": "number", "description": "Enable Select Service-IP with the highest number of active servers", "format": "flag"}, "admin-ip": {"default": 0, "optional": true, "type": "number", "description": "Select Service-IP based on admin list", "format": "flag"}, "active-servers-fail-break": {"default": 0, "optional": true, "type": "number", "description": "Break when no active server", "format": "flag"}, "connection-load": {"type": "object", "properties": {"connection-load-enable": {"default": 0, "type": "number", "description": "Enable connection-load", "format": "flag"}, "connection-load-interval": {"description": "Interval between two samples, Unit: second (Interval value,default is 5)", "format": "number", "default": 5, "maximum": 60, "minimum": 1, "type": "number"}, "limit": {"default": 0, "type": "number", "description": "Limit of maxinum connection load, default is unlimited", "format": "flag"}, "connection-load-samples": {"description": "Specify samples for connection-load (Number of samples used to calculate the connection load, default is 5)", "format": "number", "default": 5, "maximum": 8, "minimum": 1, "type": "number"}, "connection-load-limit": {"description": "The value of the connection-load limit, default is unlimited", "minimum": 1, "type": "number", "maximum": 999999999, "format": "number"}, "connection-load-fail-break": {"default": 0, "type": "number", "description": "Break when exceed limit", "format": "flag"}}}, "ip-list": {"description": "Specify IP List (IP List Name)", "format": "string", "minLength": 1, "optional": true, "maxLength": 63, "type": "string", "$ref": "/axapi/v3/gslb/ip-list"}, "admin-preference": {"default": 0, "optional": true, "type": "number", "description": "Select Service-IP for the device having maximum admin preference", "format": "flag"}, "weighted-site": {"default": 0, "optional": true, "type": "number", "description": "Select Service-IP by weighted site preference", "format": "flag"}, "geographic": {"default": 1, "optional": true, "type": "number", "description": "Select Service-IP by geographic", "format": "flag"}, "health-check": {"default": 1, "optional": true, "type": "number", "description": "Select Service-IP by health status", "format": "flag"}, "active-servers": {"default": 0, "optional": true, "type": "number", "description": "Select Service-IP with the highest number of active servers", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/gslb/policy/{name}"}
    :param site_list: {"minItems": 1, "items": {"type": "site"}, "uniqueItems": true, "array": [{"required": ["site-name"], "properties": {"ip-server-list": {"minItems": 1, "items": {"type": "ip-server"}, "uniqueItems": true, "array": [{"required": ["ip-server-name"], "properties": {"ip-server-name": {"description": "Specify the real server name", "format": "string", "minLength": 1, "$ref-list": ["/axapi/v3/gslb/service-ip", "/axapi/v3/slb/server"], "optional": false, "maxLength": 63, "type": "string"}}}], "type": "array", "$ref": "/axapi/v3/gslb/site/{site-name}/ip-server/{ip-server-name}"}, "weight": {"description": "Specify a weight for the GSLB site (Weight, default is 1)", "format": "number", "default": 1, "optional": true, "maximum": 100, "minimum": 1, "type": "number"}, "site-name": {"description": "Specify GSLB site name", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "slb-dev-list": {"minItems": 1, "items": {"type": "slb-dev"}, "uniqueItems": true, "array": [{"required": ["device-name"], "properties": {"client-ip": {"optional": true, "type": "string", "description": "Specify client IP address", "format": "ipv4-address"}, "vip-server": {"type": "object", "properties": {"vip-server-v4-list": {"minItems": 1, "items": {"type": "vip-server-v4"}, "uniqueItems": true, "array": [{"required": ["ipv4"], "properties": {"ipv4": {"optional": false, "type": "string", "description": "Specify IP address", "format": "ipv4-address"}}}], "type": "array", "$ref": "/axapi/v3/gslb/site/{site-name}/slb-dev/{device-name}/vip-server/vip-server-v4/{ipv4}"}, "vip-server-v6-list": {"minItems": 1, "items": {"type": "vip-server-v6"}, "uniqueItems": true, "array": [{"required": ["ipv6"], "properties": {"ipv6": {"optional": false, "type": "string", "description": "Specify IP address (IPv6 address)", "format": "ipv6-address"}}}], "type": "array", "$ref": "/axapi/v3/gslb/site/{site-name}/slb-dev/{device-name}/vip-server/vip-server-v6/{ipv6}"}, "vip-server-name-list": {"minItems": 1, "items": {"type": "vip-server-name"}, "uniqueItems": true, "array": [{"required": ["vip-name"], "properties": {"vip-name": {"description": "Specify a VIP name for the SLB device", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string", "$ref": "/axapi/v3/gslb/service-ip"}}}], "type": "array", "$ref": "/axapi/v3/gslb/site/{site-name}/slb-dev/{device-name}/vip-server/vip-server-name/{vip-name}"}}}, "device-name": {"description": "Specify SLB device name", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "proto-aging-fast": {"default": 1, "optional": true, "type": "number", "description": "Fast GSLB Protocol aging", "format": "flag"}, "proto-compatible": {"default": 0, "optional": true, "type": "number", "description": "Run GSLB Protocol in compatible mode", "format": "flag"}, "auto-map": {"default": 1, "optional": true, "type": "number", "description": "Enable DNS Auto Mapping", "format": "flag"}, "proto-aging-time": {"description": "Specify GSLB Protocol aging time, default is 60", "format": "number", "default": 60, "optional": true, "maximum": 65535, "minimum": 1, "type": "number"}, "rdt-value": {"description": "Specify Round-delay-time", "format": "number", "type": "number", "maximum": 65535, "minimum": 1, "optional": true}, "admin-preference": {"description": "Specify administrative preference (Specify admin-preference value,default is 100)", "format": "number", "default": 100, "optional": true, "maximum": 255, "minimum": 0, "type": "number"}, "ip-address": {"optional": true, "type": "string", "description": "IP address", "format": "ipv4-address"}, "auto-detect": {"description": "'ip': Service IP only; 'port': Service Port only; 'ip-and-port': Both service IP and service port; 'disabled': disable auto-detect; ", "format": "enum", "default": "ip-and-port", "type": "string", "enum": ["ip", "port", "ip-and-port", "disabled"], "optional": true}, "health-check-action": {"description": "'health-check': Enable health Check; 'health-check-disable': Disable health check; ", "format": "enum", "default": "health-check", "type": "string", "enum": ["health-check", "health-check-disable"], "optional": true}, "max-client": {"description": "Specify maximum number of clients, default is 32768", "format": "number", "default": 32768, "optional": true, "maximum": 2147483647, "minimum": 1, "type": "number"}, "gateway-ip-addr": {"optional": true, "type": "string", "description": "IP address", "format": "ipv4-address"}}}], "type": "array", "$ref": "/axapi/v3/gslb/site/{site-name}/slb-dev/{device-name}"}, "bw-cost": {"default": 0, "optional": true, "type": "number", "description": "Specify cost of band-width", "format": "flag"}, "auto-map": {"default": 1, "optional": true, "type": "number", "description": "Enable DNS Auto Mapping", "format": "flag"}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable all servers in the GSLB site", "format": "flag"}, "limit": {"description": "Specify the limit for bandwidth, default is unlimited", "format": "number", "type": "number", "maximum": 2147483647, "minimum": 0, "optional": true}, "template": {"description": "Specify template to collect site information (Specify template name)", "format": "string", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "threshold": {"description": "Specify the threshold for limit", "format": "number", "default": 0, "optional": true, "maximum": 100, "minimum": 0, "type": "number"}, "multiple-geo-locations": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"geo-location": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify the geographic location of the GSLB site (Specify geo-location for this site)", "format": "string"}, "optional": true}}]}, "easy-rdt": {"type": "object", "properties": {"range-factor": {"description": "Factor of RDT Range, default is 25 (Range Factor of Smooth RDT)", "format": "number", "default": 25, "maximum": 1000, "minimum": 0, "type": "number"}, "smooth-factor": {"description": "Factor of Smooth RDT, default is 10", "format": "number", "default": 10, "maximum": 100, "minimum": 0, "type": "number"}, "mask": {"default": "/32", "type": "string", "description": "Client IP subnet mask, default is 32", "format": "ipv4-netmask-brief"}, "overlap": {"default": 0, "type": "number", "description": "Enable overlap for geo-location to do longest match", "format": "flag"}, "limit": {"description": "Limit of valid RDT, default is 16383 (Limit, unit: millisecond)", "format": "number", "default": 16383, "maximum": 16383, "minimum": 1, "type": "number"}, "ignore-count": {"description": "Ignore count if RDT is out of range, default is 5", "format": "number", "default": 5, "maximum": 15, "minimum": 0, "type": "number"}, "aging-time": {"description": "Aging Time, Unit: min, default is 10", "format": "number", "default": 10, "maximum": 15360, "minimum": 1, "type": "number"}, "bind-geoloc": {"default": 0, "type": "number", "description": "Bind RDT to geo-location", "format": "flag"}}}, "active-rdt": {"type": "object", "properties": {"range-factor": {"description": "Factor of RDT Range, default is 25 (Range Factor of Smooth RDT)", "format": "number", "default": 25, "maximum": 1000, "minimum": 0, "type": "number"}, "smooth-factor": {"description": "Factor of Smooth RDT, default is 10", "format": "number", "default": 10, "maximum": 100, "minimum": 0, "type": "number"}, "mask": {"default": "/32", "type": "string", "description": "Client IP subnet mask, default is 32", "format": "ipv4-netmask-brief"}, "overlap": {"default": 0, "type": "number", "description": "Enable overlap for geo-location to do longest match", "format": "flag"}, "limit": {"description": "Limit of valid RDT, default is 16383 (Limit, unit: millisecond)", "format": "number", "default": 16383, "maximum": 16383, "minimum": 1, "type": "number"}, "ignore-count": {"description": "Ignore count if RDT is out of range, default is 5", "format": "number", "default": 5, "maximum": 15, "minimum": 0, "type": "number"}, "aging-time": {"description": "Aging Time, Unit: min, default is 10", "format": "number", "default": 10, "maximum": 15360, "minimum": 1, "type": "number"}, "bind-geoloc": {"default": 0, "type": "number", "description": "Bind RDT to geo-location", "format": "flag"}}}}}], "type": "array", "$ref": "/axapi/v3/gslb/site/{site-name}"}
    :param ip_list_list: {"minItems": 1, "items": {"type": "ip-list"}, "uniqueItems": true, "array": [{"required": ["gslb-ip-list-obj-name"], "properties": {"gslb-ip-list-addr-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"ip": {"type": "string", "description": "Specify IP address", "format": "ipv4-address"}, "ip-mask": {"type": "string", "description": "IP mask", "format": "ipv4-netmask"}, "optional": true, "id": {"description": "ID Number", "minimum": 0, "type": "number", "maximum": 31, "format": "number"}}}]}, "gslb-ip-list-filename": {"description": "Load IP List file (IP List filename)", "format": "string-rlx", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "gslb-ip-list-obj-name": {"description": "Specify IP List name", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}}}], "type": "array", "$ref": "/axapi/v3/gslb/ip-list/{gslb-ip-list-obj-name}"}
    :param group_list: {"minItems": 1, "items": {"type": "group"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"enable": {"default": 0, "optional": true, "type": "number", "description": "Join GSLB Group", "format": "flag"}, "name": {"description": "Specify Group domain name", "format": "string", "default": "default", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "standalone": {"default": 0, "optional": true, "type": "number", "description": "Run GSLB Group in standalone mode", "format": "flag"}, "learn": {"default": 1, "optional": true, "type": "number", "description": "Learn neighbour information from other controllers", "format": "flag"}, "mgmt-interface": {"default": 1, "optional": true, "type": "number", "description": "Management Interface IP Address", "format": "flag"}, "dns-discover": {"default": 1, "optional": true, "type": "number", "description": "Discover member via DNS Protocol", "format": "flag"}, "priority": {"description": "Specify Local Priority, default is 100", "format": "number", "default": 100, "optional": true, "maximum": 255, "minimum": 1, "type": "number"}, "config-anywhere": {"default": 0, "optional": true, "type": "number", "description": "Every member can do config", "format": "flag"}, "data-interface": {"default": 1, "optional": true, "type": "number", "description": "Data Interface IP Address", "format": "flag"}, "auto-map-primary": {"default": 1, "optional": true, "type": "number", "description": "Primary Controller's IP address", "format": "flag"}, "auto-map-learn": {"default": 1, "optional": true, "type": "number", "description": "IP Address learned from other controller", "format": "flag"}, "primary-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "primary": {"type": "string", "description": "Specify Primary controller's IP address", "format": "ipv4-address"}}}]}, "suffix": {"description": "Set DNS Suffix (Name)", "format": "string", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "config-merge": {"default": 0, "optional": true, "type": "number", "description": "Merge old master's config when new one take over", "format": "flag"}, "auto-map-smart": {"default": 1, "optional": true, "type": "number", "description": "Choose Best IP address", "format": "flag"}, "config-save": {"default": 1, "optional": true, "type": "number", "description": "Accept config-save message from master", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/gslb/group/{name}"}
    :param zone_list: {"minItems": 1, "items": {"type": "zone"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"name": {"description": "Specify the name for the DNS zone", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "dns-ns-record-list": {"minItems": 1, "items": {"type": "dns-ns-record"}, "uniqueItems": true, "array": [{"required": ["ns-name"], "properties": {"ns-name": {"description": "Specify Domain Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/dns-ns-record/{ns-name}"}, "dns-mx-record-list": {"minItems": 1, "items": {"type": "dns-mx-record"}, "uniqueItems": true, "array": [{"required": ["mx-name"], "properties": {"priority": {"description": "Specify Priority", "format": "number", "type": "number", "maximum": 65535, "minimum": 0, "optional": true}, "mx-name": {"description": "Specify Domain Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/dns-mx-record/{mx-name}"}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable all services in the GSLB zone", "format": "flag"}, "template": {"type": "object", "properties": {"dnssec": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify DNSSEC template (Specify template name)", "format": "string"}}}, "ttl": {"description": "Specify the zone ttl value (TTL value, unit: second, default is 10)", "format": "number", "default": 10, "optional": true, "maximum": 1000000000, "minimum": 0, "not": "use-server-ttl", "type": "number"}, "policy": {"description": "Specify the policy for this zone (Specify policy name)", "format": "string", "default": "default", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "use-server-ttl": {"description": "Use DNS Server Response TTL value in GSLB Proxy mode", "format": "flag", "default": 0, "optional": true, "not": "ttl", "type": "number"}, "dns-soa-record": {"type": "object", "properties": {"retry": {"default": 900, "type": "number", "description": "Specify Retry Time Interval, default is 900", "format": "number"}, "soa-name": {"minLength": 1, "maxLength": 127, "type": "string", "description": "DNS Server Name", "format": "string"}, "ex-retry": {"default": 900, "type": "number", "description": "Specify Retry Time Interval, default is 900", "format": "number"}, "ex-soa-ttl": {"type": "number", "description": "Specify Negative caching TTL, default is Zone TTL", "format": "number"}, "ex-serial": {"type": "number", "description": "Specify Serial Number, default is Current Time (Time Interval)", "format": "number"}, "refresh": {"default": 3600, "type": "number", "description": "Specify Refresh Time Interval, default is 3600", "format": "number"}, "ex-mail": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Mailbox", "format": "string"}, "expire": {"default": 1209600, "type": "number", "description": "Specify Expire Time Interval, default is 1209600", "format": "number"}, "ex-expire": {"default": 1209600, "type": "number", "description": "Specify Expire Time Interval, default is 1209600", "format": "number"}, "external": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify External SOA Record (DNS Server Name)", "format": "string"}, "mail": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Mailbox", "format": "string"}, "serial": {"type": "number", "description": "Specify Serial Number, default is Current Time (Time Interval)", "format": "number"}, "ex-refresh": {"default": 3600, "type": "number", "description": "Specify Refresh Time Interval, default is 3600", "format": "number"}, "soa-ttl": {"type": "number", "description": "Specify Negative caching TTL, default is Zone TTL", "format": "number"}}}, "service-list": {"minItems": 1, "items": {"type": "service"}, "uniqueItems": true, "array": [{"required": ["service-port", "service-name"], "properties": {"dns-a-record": {"type": "object", "properties": {"dns-a-record-ipv6-list": {"minItems": 1, "items": {"type": "dns-a-record-ipv6"}, "uniqueItems": true, "array": [{"required": ["dns-a-record-ipv6"], "properties": {"as-replace": {"default": 0, "optional": true, "type": "number", "description": "Return this Service-IP when enable ip-replace", "format": "flag"}, "dns-a-record-ipv6": {"optional": false, "type": "string", "description": "IPV6 address", "format": "ipv6-address"}, "as-backup": {"default": 0, "optional": true, "type": "number", "description": "As backup when fail", "format": "flag"}, "weight": {"description": "Specify weight for Service-IP (Weight value)", "format": "number", "type": "number", "maximum": 100, "minimum": 1, "optional": true}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable this Service-IP", "format": "flag"}, "static": {"default": 0, "optional": true, "type": "number", "description": "Return this Service-IP in DNS server mode", "format": "flag"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL for Service-IP", "format": "number"}, "admin-ip": {"description": "Specify admin priority of Service-IP (Specify the priority)", "format": "number", "type": "number", "maximum": 255, "minimum": 1, "optional": true}, "no-resp": {"default": 0, "optional": true, "type": "number", "description": "Don't use this Service-IP as DNS response", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-a-record/dns-a-record-ipv6/{dns-a-record-ipv6}"}, "dns-a-record-ipv4-list": {"minItems": 1, "items": {"type": "dns-a-record-ipv4"}, "uniqueItems": true, "array": [{"required": ["dns-a-record-ip"], "properties": {"as-replace": {"default": 0, "optional": true, "type": "number", "description": "Return this Service-IP when enable ip-replace", "format": "flag"}, "dns-a-record-ip": {"optional": false, "type": "string", "description": "Specify IP address", "format": "ipv4-address"}, "as-backup": {"default": 0, "optional": true, "type": "number", "description": "As backup when fail", "format": "flag"}, "weight": {"description": "Specify weight for Service-IP (Weight value)", "format": "number", "type": "number", "maximum": 100, "minimum": 1, "optional": true}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable this Service-IP", "format": "flag"}, "static": {"default": 0, "optional": true, "type": "number", "description": "Return this Service-IP in DNS server mode", "format": "flag"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL for Service-IP", "format": "number"}, "admin-ip": {"description": "Specify admin priority of Service-IP (Specify the priority)", "format": "number", "type": "number", "maximum": 255, "minimum": 1, "optional": true}, "no-resp": {"default": 0, "optional": true, "type": "number", "description": "Don't use this Service-IP as DNS response", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-a-record/dns-a-record-ipv4/{dns-a-record-ip}"}, "dns-a-record-srv-list": {"minItems": 1, "items": {"type": "dns-a-record-srv"}, "uniqueItems": true, "array": [{"required": ["svrname"], "properties": {"as-replace": {"default": 0, "optional": true, "type": "number", "description": "Return this Service-IP when enable ip-replace", "format": "flag"}, "as-backup": {"default": 0, "optional": true, "type": "number", "description": "As backup when fail", "format": "flag"}, "weight": {"description": "Specify weight for Service-IP (Weight value)", "format": "number", "type": "number", "maximum": 100, "minimum": 1, "optional": true}, "svrname": {"description": "Specify name", "format": "string", "minLength": 1, "$ref-list": ["/axapi/v3/gslb/service-ip", "/axapi/v3/slb/server"], "optional": false, "maxLength": 63, "type": "string"}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable this Service-IP", "format": "flag"}, "static": {"default": 0, "optional": true, "type": "number", "description": "Return this Service-IP in DNS server mode", "format": "flag"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL for Service-IP", "format": "number"}, "admin-ip": {"description": "Specify admin priority of Service-IP (Specify the priority)", "format": "number", "type": "number", "maximum": 255, "minimum": 1, "optional": true}, "no-resp": {"default": 0, "optional": true, "type": "number", "description": "Don't use this Service-IP as DNS response", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-a-record/dns-a-record-srv/{svrname}"}}}, "forward-type": {"optional": true, "enum": ["both", "query", "response"], "type": "string", "description": "'both': Forward both query and response; 'query': Forward query; 'response': Forward response; ", "format": "enum"}, "dns-cname-record-list": {"minItems": 1, "items": {"type": "dns-cname-record"}, "uniqueItems": true, "array": [{"required": ["alias-name"], "properties": {"as-backup": {"default": 0, "optional": true, "type": "number", "description": "As backup when fail", "format": "flag"}, "alias-name": {"description": "Specify the alias name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "admin-preference": {"description": "Specify Administrative Preference, default is 100", "format": "number", "default": 100, "optional": true, "maximum": 255, "minimum": 0, "type": "number"}, "weight": {"description": "Specify Weight, default is 1", "format": "number", "default": 1, "optional": true, "maximum": 100, "minimum": 1, "type": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-cname-record/{alias-name}"}, "health-check-port": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "health-check-port": {"description": "Check Related Port Status (Port Number)", "minimum": 0, "type": "number", "maximum": 65534, "format": "number"}}}]}, "policy": {"description": "Specify policy for this service (Specify policy name)", "format": "string", "default": "default", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "dns-txt-record-list": {"minItems": 1, "items": {"type": "dns-txt-record"}, "uniqueItems": true, "array": [{"required": ["record-name"], "properties": {"record-name": {"description": "Specify the Object Name for TXT Data", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "txt-data": {"description": "Specify TXT Data", "format": "string-rlx", "minLength": 1, "optional": true, "maxLength": 1000, "type": "string"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-txt-record/{record-name}"}, "service-port": {"description": "Port number of the service", "format": "number", "type": "number", "maximum": 65534, "minimum": 0, "optional": false}, "dns-mx-record-list": {"minItems": 1, "items": {"type": "dns-mx-record"}, "uniqueItems": true, "array": [{"required": ["mx-name"], "properties": {"priority": {"description": "Specify Priority", "format": "number", "type": "number", "maximum": 65535, "minimum": 0, "optional": true}, "mx-name": {"description": "Specify Domain Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-mx-record/{mx-name}"}, "dns-record-list": {"minItems": 1, "items": {"type": "dns-record"}, "uniqueItems": true, "array": [{"required": ["type"], "properties": {"data": {"description": "Specify DNS Data", "format": "string-rlx", "minLength": 1, "optional": true, "maxLength": 512, "type": "string"}, "type": {"description": "Specify DNS Type", "format": "number", "type": "number", "maximum": 65535, "minimum": 1, "optional": false}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-record/{type}"}, "dns-ns-record-list": {"minItems": 1, "items": {"type": "dns-ns-record"}, "uniqueItems": true, "array": [{"required": ["ns-name"], "properties": {"ns-name": {"description": "Specify Domain Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-ns-record/{ns-name}"}, "health-check-gateway": {"description": "'enable': Enable Gateway Status Check; 'disable': Disable Gateway Status Check; ", "format": "enum", "default": "enable", "type": "string", "enum": ["enable", "disable"], "optional": true}, "disable": {"default": 0, "optional": true, "type": "number", "description": "Disable", "format": "flag"}, "dns-srv-record-list": {"minItems": 1, "items": {"type": "dns-srv-record"}, "uniqueItems": true, "array": [{"required": ["srv-name", "port"], "properties": {"priority": {"description": "Specify Priority", "format": "number", "type": "number", "maximum": 65535, "minimum": 0, "optional": true}, "srv-name": {"description": "Specify Domain Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "port": {"description": "Specify Port (Port Number)", "format": "number", "type": "number", "maximum": 65534, "minimum": 0, "optional": false}, "weight": {"description": "Specify Weight, default is 10", "format": "number", "default": 10, "optional": true, "maximum": 100, "minimum": 1, "type": "number"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-srv-record/{srv-name}+{port}"}, "service-name": {"description": "Specify the service name for the zone, * for wildcard", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "action": {"optional": true, "enum": ["drop", "forward", "ignore", "reject"], "type": "string", "description": "'drop': Drop query; 'forward': Forward packet; 'ignore': Send empty response; 'reject': Send refuse response; ", "format": "enum"}, "dns-ptr-record-list": {"minItems": 1, "items": {"type": "dns-ptr-record"}, "uniqueItems": true, "array": [{"required": ["ptr-name"], "properties": {"ptr-name": {"description": "Specify Domain Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}, "ttl": {"optional": true, "type": "number", "description": "Specify TTL", "format": "number"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/dns-ptr-record/{ptr-name}"}, "geo-location-list": {"minItems": 1, "items": {"type": "geo-location"}, "uniqueItems": true, "array": [{"required": ["geo-name"], "properties": {"forward-type": {"optional": true, "enum": ["both", "query", "response"], "type": "string", "description": "'both': Forward both query and response; 'query': Forward query from this geo-location; 'response': Forward response to this geo-location; ", "format": "enum"}, "alias": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"alias": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Send CNAME response for this geo-location (Specify a CNAME record)", "format": "string"}, "optional": true}}]}, "action-type": {"optional": true, "enum": ["allow", "drop", "forward", "ignore", "reject"], "type": "string", "description": "'allow': Allow query from this geo-location; 'drop': Drop query from this geo-location; 'forward': Forward packet for this geo-location; 'ignore': Send empty response to this geo-location; 'reject': Send refuse response to this geo-location; ", "format": "enum"}, "policy": {"description": "Policy for this geo-location (Specify the policy name)", "format": "string", "minLength": 1, "optional": true, "maxLength": 63, "not": "action", "type": "string"}, "action": {"description": "Action for this geo-location", "format": "flag", "default": 0, "optional": true, "not": "policy", "type": "number"}, "geo-name": {"description": "Specify the geo-location", "format": "string", "minLength": 1, "optional": false, "maxLength": 127, "type": "string"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}/geo-location/{geo-name}"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}/service/{service-port}+{service-name}"}}}], "type": "array", "$ref": "/axapi/v3/gslb/zone/{name}"}
    :param service_ip_list: {"minItems": 1, "items": {"type": "service-ip"}, "uniqueItems": true, "array": [{"required": ["node-name"], "properties": {"health-check-disable": {"description": "Disable Health Check Monitor", "format": "flag", "default": 0, "optional": true, "not": "health-check", "type": "number"}, "port-list": {"minItems": 1, "items": {"type": "port"}, "uniqueItems": true, "array": [{"required": ["port-num", "port-proto"], "properties": {"port-proto": {"optional": false, "enum": ["tcp", "udp"], "type": "string", "description": "'tcp': TCP Port; 'udp': UDP Port; ", "format": "enum"}, "port-num": {"description": "Port Number", "format": "number", "type": "number", "maximum": 65534, "minimum": 0, "optional": false}, "health-check-disable": {"description": "Disable Health Check Monitor", "format": "flag", "default": 0, "optional": true, "not-list": ["health-check", "health-check-follow-port"], "type": "number"}, "follow-port-protocol": {"optional": true, "enum": ["tcp", "udp"], "type": "string", "description": "'tcp': TCP Port; 'udp': UDP Port; ", "format": "enum"}, "action": {"description": "'enable': Enable this GSLB server port; 'disable': Disable this GSLB server port; ", "format": "enum", "default": "enable", "type": "string", "enum": ["enable", "disable"], "optional": true}, "health-check-follow-port": {"description": "Specify which port to follow for health status (Port Number)", "format": "number", "optional": true, "not-list": ["health-check", "health-check-disable"], "maximum": 65534, "minimum": 1, "type": "number"}, "health-check-protocol-disable": {"default": 0, "optional": true, "type": "number", "description": "Disable GSLB Protocol Health Monitor", "format": "flag"}, "health-check": {"description": "Health Check Monitor (Monitor Name)", "format": "string", "minLength": 1, "not-list": ["health-check-follow-port", "health-check-disable"], "optional": true, "maxLength": 31, "type": "string"}}}], "type": "array", "$ref": "/axapi/v3/gslb/service-ip/{node-name}/port/{port-num}+{port-proto}"}, "external-ip": {"optional": true, "type": "string", "description": "External IP address for NAT", "format": "ipv4-address"}, "health-check": {"description": "Health Check Monitor (Monitor Name)", "format": "string", "minLength": 1, "optional": true, "maxLength": 31, "not": "health-check-disable", "type": "string"}, "node-name": {"description": "Service-IP Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "ip-address": {"optional": true, "modify-not-allowed": 1, "type": "string", "description": "IP address", "format": "ipv4-address"}, "ipv6": {"optional": true, "type": "string", "description": "IPv6 address Mapping", "format": "ipv6-address"}, "ipv6-address": {"optional": true, "modify-not-allowed": 1, "type": "string", "description": "IPV6 address", "format": "ipv6-address"}, "health-check-protocol-disable": {"default": 0, "optional": true, "type": "number", "description": "Disable GSLB Protocol Health Monitor", "format": "flag"}, "action": {"description": "'enable': Enable this GSLB server; 'disable': Disable this GSLB server; ", "format": "enum", "default": "enable", "type": "string", "enum": ["enable", "disable"], "optional": true}}}], "type": "array", "$ref": "/axapi/v3/gslb/service-ip/{node-name}"}
    :param DeviceProxy: The device proxy for REST operations and session handling. Refer to `common/device_proxy.py`

    

    URL for this object::
    `https://<Hostname|Ip address>//axapi/v3/gslb`.

    

    
    """
    def __init__(self, **kwargs):
        self.ERROR_MSG = ""
        self.required=[]
        self.b_key = "gslb"
        self.a10_url="/axapi/v3/gslb"
        self.DeviceProxy = ""
        self.protocol = {}
        self.template = {}
        self.service_group_list = []
        self.system = {}
        self.geo_location_list = []
        self.policy_list = []
        self.site_list = []
        self.ip_list_list = []
        self.dns = {}
        self.group_list = []
        self.zone_list = []
        self.active_rdt = {}
        self.service_ip_list = []

        for keys, value in kwargs.items():
            setattr(self,keys, value)


