from a10sdk.common.A10BaseClass import A10BaseClass


class Health(A10BaseClass):
    
    """Class Description::
    Configure health monitoring.

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

    :param monitor_list: {"minItems": 1, "items": {"type": "monitor"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"sample-threshold": {"description": "Number of samples in one epoch above which passive HC is enabled. If below or equal to the threshold, passive HC is disabled (Specify number of samples in one second (Default is 50). If the number of samples is 0, no action is taken)", "format": "number", "default": 50, "optional": true, "maximum": 10000, "minimum": 1, "type": "number"}, "override-ipv4": {"optional": true, "type": "string", "description": "Override implicitly inherited IPv4 address from target", "format": "ipv4-address"}, "retry": {"description": "Specify the Healthcheck Retries (Retry Count (default 3))", "format": "number", "optional": true, "maximum": 10, "minimum": 1, "default-depends-on": "health.global::retry", "type": "number"}, "name": {"description": "Monitor Name", "format": "string", "minLength": 1, "optional": false, "maxLength": 29, "type": "string"}, "strict-retry-on-server-err-resp": {"default": 0, "optional": true, "type": "number", "description": "Require strictly retry", "format": "flag"}, "passive-interval": {"description": "Interval to do manual health checking while in passive mode (Specify value in seconds (Default is 10 s))", "format": "number", "default": 10, "optional": true, "maximum": 180, "minimum": 1, "type": "number"}, "override-port": {"description": "Override implicitly inherited port from target (Port number (1-65534))", "format": "number", "type": "number", "maximum": 65534, "minimum": 1, "optional": true}, "up-retry": {"description": "Specify the Healthcheck Retries before declaring target up (Up-retry count (default 1))", "format": "number", "optional": true, "maximum": 10, "minimum": 1, "default-depends-on": "health.global::up-retry", "type": "number"}, "interval": {"description": "Specify the Healthcheck Interval (Interval Value, in seconds (default 5))", "format": "number", "optional": true, "maximum": 180, "minimum": 1, "default-depends-on": "health.global::interval", "type": "number"}, "passive": {"default": 0, "optional": true, "type": "number", "description": "Specify passive mode", "format": "flag"}, "override-ipv6": {"optional": true, "type": "string", "description": "Override implicitly inherited IPv6 address from target", "format": "ipv6-address"}, "timeout": {"description": "Specify the Healthcheck Timeout (Timeout Value, in seconds(default 5), Timeout should be less than or equal to interval)", "format": "number", "optional": true, "maximum": 180, "minimum": 1, "default-depends-on": "health.global::timeout", "type": "number"}, "threshold": {"description": "Threshold percentage above which passive mode is enabled (Specify percentage (Default is 75%))", "format": "number", "default": 75, "optional": true, "maximum": 100, "minimum": 0, "type": "number"}, "disable-after-down": {"default": 0, "optional": true, "type": "number", "description": "Disable the target if health check failed", "format": "flag"}, "method": {"type": "object", "properties": {"ftp": {"type": "object", "properties": {"ftp": {"default": 0, "type": "number", "description": "FTP type", "format": "flag"}, "ftp-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the user password, '' means empty passworddd", "format": "password"}, "ftp-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "ftp-port": {"description": "Specify FTP port (Specify port number, default is 21)", "format": "number", "default": 21, "maximum": 65534, "minimum": 1, "type": "number"}, "ftp-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "ftp-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}}}, "udp": {"type": "object", "properties": {"udp": {"default": 0, "type": "number", "description": "UDP type", "format": "flag"}, "udp-port": {"description": "Specify UDP port (Specify port number)", "minimum": 1, "type": "number", "maximum": 65534, "format": "number"}}}, "sip": {"type": "object", "properties": {"sip-port": {"description": "Specify the SIP port, default is 5060 (Port Number)", "format": "number", "default": 5060, "maximum": 65534, "minimum": 1, "type": "number"}, "expect-response-code": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify accepted response codes (e.g. 200, 400-430, any) (Format is xxx,xxx-xxx,any (xxx between [100,899]))", "format": "string-rlx"}, "sip": {"default": 0, "type": "number", "description": "SIP type", "format": "flag"}, "sip-tcp": {"default": 0, "type": "number", "description": "Use TCP for transmission, default is UDP", "format": "flag"}, "register": {"default": 0, "type": "number", "description": "Send SIP REGISTER message, default is to send OPTION message", "format": "flag"}}}, "http": {"type": "object", "properties": {"http-kerberos-kdc": {"type": "object", "properties": {"http-kerberos-hostipv6": {"not": "http-kerberos-hostip", "type": "string", "description": "Server's IPV6 address", "format": "ipv6-address"}, "http-kerberos-port": {"description": "Specify the kdc port", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}, "http-kerberos-portv6": {"description": "Specify the kdc port", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}, "http-kerberos-hostip": {"description": "Kdc's hostname or IP address", "format": "host", "minLength": 1, "maxLength": 31, "not": "http-kerberos-hostipv6", "type": "string"}}}, "http-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "http-host": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify \"Host:\" header used in request (enclose IPv6 address in [])", "format": "string-rlx"}, "post-path": {"minLength": 1, "maxLength": 500, "type": "string", "description": "Specify URL path, default is \"/\"", "format": "string-rlx"}, "http": {"default": 0, "type": "number", "description": "HTTP type", "format": "flag"}, "post-type": {"enum": ["postdata", "postfile"], "type": "string", "description": "'postdata': Specify the HTTP post data; 'postfile': Specify the HTTP post data; ", "format": "enum"}, "http-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "http-url": {"default": 0, "type": "number", "description": "Specify URL string, default is GET /", "format": "flag"}, "http-expect": {"default": 0, "type": "number", "description": "Specify what you expect from the response message", "format": "flag"}, "http-kerberos-auth": {"default": 0, "type": "number", "description": "Http Kerberos Auth", "format": "flag"}, "url-path": {"minLength": 1, "maxLength": 500, "type": "string", "description": "Specify URL path, default is \"/\"", "format": "string-rlx"}, "url-type": {"enum": ["GET", "POST", "HEAD"], "type": "string", "description": "'GET': HTTP GET method; 'POST': HTTP POST method; 'HEAD': HTTP HEAD method; ", "format": "enum"}, "http-postdata": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Specify the HTTP post data (Input post data here)", "format": "string-rlx"}, "http-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}, "http-kerberos-realm": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify realm of Kerberos server", "format": "string-rlx"}, "http-response-code": {"description": "Specify response code range (e.g. 200,400-430) (Format is xx,xx-xx (xx between [100, 899]))", "format": "string-rlx", "minLength": 1, "maxLength": 31, "not": "http-text", "type": "string"}, "http-maintenance-code": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify response code for maintenance (Format is xx,xx-xx (xx between [100, 899]))", "format": "string-rlx"}, "http-text": {"description": "Specify text expected", "format": "string-rlx", "minLength": 1, "maxLength": 127, "not": "http-response-code", "type": "string"}, "http-postfile": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the HTTP post data (Input post data file name here)", "format": "string-rlx"}, "http-port": {"description": "Specify HTTP Port (Specify port number (default 80))", "format": "number", "default": 80, "maximum": 65534, "minimum": 1, "type": "number"}, "http-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify password, '' means empty passworddd", "format": "password"}}}, "https": {"type": "object", "properties": {"https-kerberos-realm": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify realm of Kerberos server", "format": "string-rlx"}, "post-type": {"enum": ["postdata", "postfile"], "type": "string", "description": "'postdata': Specify the HTTP post data; 'postfile': Specify the HTTP post data; ", "format": "enum"}, "url-path": {"minLength": 1, "maxLength": 500, "type": "string", "description": "Specify URL path, default is \"/\"", "format": "string-rlx"}, "https-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}, "key-phrase": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Password Phrase", "format": "password"}, "https-postdata": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Specify the HTTP post data (Input post data here)", "format": "string-rlx"}, "https-key-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "https-expect": {"default": 0, "type": "number", "description": "Specify what you expect from the response message", "format": "flag"}, "https": {"default": 0, "type": "number", "description": "HTTPS type", "format": "flag"}, "https-host": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify \"Host:\" header used in request (enclose IPv6 address in [])", "format": "string-rlx"}, "key-pass-phrase": {"default": 0, "type": "number", "description": "Client private key password phrase", "format": "flag"}, "https-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "url-type": {"enum": ["GET", "POST", "HEAD"], "type": "string", "description": "'GET': HTTP GET method; 'POST': HTTP POST method; 'HEAD': HTTP HEAD method; ", "format": "enum"}, "web-port": {"description": "Specify HTTPS port (Port Number (default 443))", "format": "number", "default": 443, "maximum": 65534, "minimum": 1, "type": "number"}, "disable-sslv2hello": {"default": 0, "type": "number", "description": "Disable SSLv2Hello for HTTPs", "format": "flag"}, "https-kerberos-kdc": {"type": "object", "properties": {"https-kerberos-portv6": {"description": "Specify the kdc port", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}, "https-kerberos-port": {"description": "Specify the kdc port", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}, "https-kerberos-hostip": {"description": "Kdc's hostname or IP address", "format": "host", "minLength": 1, "maxLength": 31, "not": "https-kerberos-hostipv6", "type": "string"}, "https-kerberos-hostipv6": {"not": "https-kerberos-hostip", "type": "string", "description": "Server's IPV6 address", "format": "ipv6-address"}}}, "key": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Specify client private key (Key name)", "format": "string-rlx"}, "https-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "help Configure password, '' means empty passworddd", "format": "password"}, "post-path": {"minLength": 1, "maxLength": 500, "type": "string", "description": "Specify URL path, default is \"/\"", "format": "string-rlx"}, "https-postfile": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the HTTP post data (Input post data file name here)", "format": "string-rlx"}, "https-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "cert": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Specify client certificate (Certificate name)", "format": "string-rlx"}, "https-text": {"description": "Specify text expected", "format": "string-rlx", "minLength": 1, "maxLength": 127, "not": "https-response-code", "type": "string"}, "https-response-code": {"description": "Specify response code range (e.g. 200,400-430) (Format is xx,xx-xx (xx between [100, 899])", "format": "string-rlx", "minLength": 1, "maxLength": 31, "not": "https-text", "type": "string"}, "https-kerberos-auth": {"default": 0, "type": "number", "description": "Https Kerberos Auth", "format": "flag"}, "https-maintenance-code": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify response code for maintenance (Format is xx,xx-xx (xx between [100, 899])", "format": "string-rlx"}, "https-url": {"default": 0, "type": "number", "description": "Specify URL string, default is GET /", "format": "flag"}}}, "compound": {"type": "object", "properties": {"rpn-string": {"minLength": 1, "maxLength": 512, "type": "string", "description": "Enter Reverse Polish Notation, example: sub hm1 sub hm2 and", "format": "string-rlx"}, "compound": {"default": 0, "type": "number", "description": "Compound type", "format": "flag"}}}, "database": {"type": "object", "properties": {"db-send": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the SQL query", "format": "string-rlx"}, "db-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "database": {"default": 0, "type": "number", "description": "DATABASE type", "format": "flag"}, "db-receive": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the response string", "format": "string-rlx"}, "database-name": {"enum": ["mssql", "mysql", "oracle", "postgresql"], "type": "string", "description": "'mssql': Specify MSSQL database; 'mysql': Specify MySQL database; 'oracle': Specify Oracle database; 'postgresql': Specify PostgreSQL database; ", "format": "enum"}, "db-password-str": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Configure password", "format": "password"}, "db-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "db-column": {"description": "Specify the column number for receiving", "minimum": 1, "type": "number", "maximum": 10, "format": "number"}, "db-name": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the database name", "format": "string-rlx"}, "db-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}, "db-row": {"description": "Specify the row number for receiving", "minimum": 1, "type": "number", "maximum": 10, "format": "number"}}}, "smtp": {"type": "object", "properties": {"smtp-port": {"description": "Specify SMTP port, default is 25 (Port Number (default 25))", "format": "number", "default": 25, "maximum": 65534, "minimum": 1, "type": "number"}, "smtp-domain": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Specify domain name of 'helo' command", "format": "string"}, "smtp": {"default": 0, "type": "number", "description": "SMTP type", "format": "flag"}}}, "ntp": {"type": "object", "properties": {"ntp": {"default": 0, "type": "number", "description": "NTP type", "format": "flag"}, "ntp-port": {"description": "Specify the NTP port, default is 123 (Port Number (default 123))", "format": "number", "default": 123, "maximum": 65534, "minimum": 1, "type": "number"}}}, "rtsp": {"type": "object", "properties": {"rtsp-port": {"description": "Specify RTSP port, default is 554 (Port Number (default 554))", "format": "number", "default": 554, "maximum": 65534, "minimum": 1, "type": "number"}, "rtsp": {"default": 0, "type": "number", "description": "RTSP type", "format": "flag"}, "rtspurl": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify URL string (Specify the path on the server)", "format": "string-rlx"}}}, "snmp": {"type": "object", "properties": {"snmp-port": {"description": "Specify SNMP port, default is 161 (Port Number)", "format": "number", "default": 161, "maximum": 65534, "minimum": 1, "type": "number"}, "operation": {"type": "object", "properties": {"oper-type": {"enum": ["getnext", "get"], "type": "string", "description": "'getnext': Get-Next-Request command; 'get': Get-Request command; ", "format": "enum"}}}, "oid": {"type": "object", "properties": {"mib": {"not": "asn", "enum": ["sysDescr", "sysUpTime", "sysName"], "type": "string", "description": "'sysDescr': The MIB-2 OID of system description, 1.1.0; 'sysUpTime': The MIB-2 OID of system up time, 1.3.0; 'sysName': The MIB-2 OID of system nume, 1.5.0; ", "format": "enum"}, "asn": {"description": "Specify the format in ASN.1 style", "format": "string-rlx", "minLength": 1, "maxLength": 128, "not": "mib", "type": "string"}}}, "snmp": {"default": 0, "type": "number", "description": "SNMP type", "format": "flag"}, "community": {"description": "Specify SNMP community, default is \"public\" (Community String)", "format": "string-rlx", "default": "public", "minLength": 1, "maxLength": 31, "type": "string"}}}, "tcp": {"type": "object", "properties": {"port-send": {"description": "Send a string to server (Specify the string)", "format": "string-rlx", "minLength": 1, "maxLength": 127, "not": "port-halfopen", "type": "string"}, "method-tcp": {"default": 0, "type": "number", "description": "TCP type", "format": "flag"}, "port-halfopen": {"default": 0, "not": "port-send", "type": "number", "description": "Set TCP SYN check", "format": "flag"}, "port-resp": {"type": "object", "properties": {"port-contains": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Mark server up if response string contains another string (Specify the string)", "format": "string-rlx"}}}, "tcp-port": {"description": "Specify TCP port (Specify port number)", "minimum": 1, "type": "number", "maximum": 65534, "format": "number"}}}, "pop3": {"type": "object", "properties": {"pop3-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the user password, '' means empty passworddd", "format": "password"}, "pop3-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "pop3-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}, "pop3-port": {"description": "Specify the POP3 port, default is 110 (Port Number (default 110))", "format": "number", "default": 110, "maximum": 65534, "minimum": 1, "type": "number"}, "pop3": {"default": 0, "type": "number", "description": "POP3 type", "format": "flag"}, "pop3-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}}}, "radius": {"type": "object", "properties": {"radius-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}, "radius-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Configure password, '' means empty passworddd", "format": "password"}, "radius-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "radius-response-code": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify response code range (e.g. 2,4-7) (Format is xx,xx-xx (xx between [1, 13]))", "format": "string-rlx"}, "radius-expect": {"default": 0, "type": "number", "description": "Specify what you expect from the response message", "format": "flag"}, "radius": {"default": 0, "type": "number", "description": "RADIUS type", "format": "flag"}, "radius-secret": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the shared secret of RADIUS server (Shared Crypto Key)", "format": "string-rlx"}, "radius-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "radius-port": {"description": "Specify the RADIUS port, default is 1812 (Port number (default 1812))", "format": "number", "default": 1812, "maximum": 65534, "minimum": 1, "type": "number"}}}, "external": {"type": "object", "properties": {"ext-preference": {"default": 0, "type": "number", "description": "Get server's perference", "format": "flag"}, "ext-port": {"description": "Specify the server port (Port Number)", "minimum": 1, "type": "number", "maximum": 65534, "format": "number"}, "external": {"default": 0, "type": "number", "description": "EXTERNAL type", "format": "flag"}, "ext-arguments": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify external application's arguments (Application arguments)", "format": "string-rlx"}, "ext-program": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify external application (Program name)", "format": "string-rlx"}}}, "dns": {"type": "object", "properties": {"dns-domain-type": {"enum": ["A", "CNAME", "SOA", "PTR", "MX", "TXT", "AAAA"], "type": "string", "description": "'A': Used for storing Ipv4 address (default); 'CNAME': Canonical name for a DNS alias; 'SOA': Start of authority; 'PTR': Domain name pointer; 'MX': Mail exchanger; 'TXT': Text string; 'AAAA': Used for storing Ipv6 128-bits address; ", "format": "enum"}, "dns-domain": {"description": "Specify fully qualified domain name of the host", "format": "string", "minLength": 1, "maxLength": 255, "not": "dns-ip-key", "type": "string"}, "dns-domain-recurse": {"default": "enabled", "enum": ["enabled", "disabled"], "type": "string", "description": "'enabled': Set the recursion bit; 'disabled': Clear the recursion bit; ", "format": "enum"}, "dns-ipv4-recurse": {"default": "enabled", "enum": ["enabled", "disabled"], "type": "string", "description": "'enabled': Set the recursion bit; 'disabled': Clear the recursion bit; ", "format": "enum"}, "dns-ipv6-port": {"description": "Specify DNS port, default is 53 (DNS Port(default 53))", "format": "number", "default": 53, "maximum": 65534, "minimum": 1, "type": "number"}, "dns-domain-expect": {"type": "object", "properties": {"dns-domain-response": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify response code range (e.g. 0,1-5) (Format is xx,xx-xx (xx between [0,15]))", "format": "string-rlx"}}}, "dns-ipv4-port": {"description": "Specify DNS port, default is 53 (DNS Port(default 53))", "format": "number", "default": 53, "maximum": 65534, "minimum": 1, "type": "number"}, "dns-ipv6-expect": {"type": "object", "properties": {"dns-ipv6-response": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify response code range (e.g. 0,1-5) (Format is xx,xx-xx (xx between [0,15]))", "format": "string-rlx"}}}, "dns-domain-port": {"description": "Specify DNS port, default is 53 (DNS Port(default 53))", "format": "number", "default": 53, "maximum": 65534, "minimum": 1, "type": "number"}, "dns-ipv6-recurse": {"default": "enabled", "enum": ["enabled", "disabled"], "type": "string", "description": "'enabled': Set the recursion bit; 'disabled': Clear the recursion bit; ", "format": "enum"}, "dns-ipv6-tcp": {"default": 0, "type": "number", "description": "Configure DNS transport over TCP, default is UDP", "format": "flag"}, "dns-ipv4-expect": {"type": "object", "properties": {"dns-ipv4-response": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify response code range (e.g. 0,1-5) (Format is xx,xx-xx (xx between [0,15]))", "format": "string-rlx"}}}, "dns-domain-tcp": {"default": 0, "type": "number", "description": "Configure DNS transport over TCP, default is UDP", "format": "flag"}, "dns": {"default": 0, "type": "number", "description": "DNS type", "format": "flag"}, "dns-ipv4-tcp": {"default": 0, "type": "number", "description": "Configure DNS transport over TCP, default is UDP", "format": "flag"}, "dns-ipv4-addr": {"not": "dns-ipv6-addr", "type": "string", "description": "Specify IPv4 address", "format": "ipv4-address"}, "dns-ipv6-addr": {"not": "dns-ipv4-addr", "type": "string", "description": "Specify IPv6 address", "format": "ipv6-address"}, "dns-ip-key": {"default": 0, "not": "dns-domain", "type": "number", "description": "Reverse DNS lookup (Specify IPv4 or IPv6 address)", "format": "flag"}}}, "ldap": {"type": "object", "properties": {"ldap-port": {"description": "Specify the LDAP port (Speciry port number, default is 389, or 636 if LDAP over SSL)", "format": "number", "default": 389, "maximum": 65534, "minimum": 1, "type": "number"}, "ldap-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Configure password, '' means empty passworddd", "format": "password"}, "ldap-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "BaseDN": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify LDAP DN distinguished name", "format": "string-rlx"}, "ldap-query": {"minLength": 1, "maxLength": 255, "type": "string", "description": "LDAP query to be excuted", "format": "string-rlx"}, "ldap-binddn": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify the distinguished name for bindRequest (LDAP DN distinguished name)", "format": "string-rlx"}, "ldap-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "ldap-security": {"enum": ["overssl", "StartTLS"], "type": "string", "description": "'overssl': Set LDAP over SSL; 'StartTLS': LDAP switch to TLS; ", "format": "enum"}, "ldap": {"default": 0, "type": "number", "description": "LDAP type", "format": "flag"}, "AcceptNotFound": {"default": 0, "type": "number", "description": "Mark server up on receiving a not-found response", "format": "flag"}, "ldap-run-search": {"default": 0, "type": "number", "description": "Specify a query to be executed", "format": "flag"}}}, "icmp": {"type": "object", "properties": {"ip": {"not": "ipv6", "type": "string", "description": "Specify IPv4 address of destination behind monitored node", "format": "ipv4-address"}, "icmp": {"default": 0, "type": "number", "description": "ICMP type", "format": "flag"}, "transparent": {"default": 0, "type": "number", "description": "Apply transparent mode", "format": "flag"}, "ipv6": {"not": "ip", "type": "string", "description": "Specify IPv6 address of destination behind monitored node", "format": "ipv6-address"}}}, "kerberos-kdc": {"type": "object", "properties": {"kerberos-cfg": {"type": "object", "properties": {"tcp-only": {"default": 0, "type": "number", "description": "Specify the kerberos tcp only", "format": "flag"}, "kpasswd-pricipal-name": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify the pricipal name", "format": "string-rlx"}, "kinit-password": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Password", "format": "password"}, "kpasswd-password": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Password", "format": "password"}, "kpasswd": {"default": 0, "not-list": ["kinit", "kadmin"], "type": "number", "description": "Kerberos change passwd", "format": "flag"}, "kinit-pricipal-name": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify the pricipal name", "format": "string-rlx"}, "kpasswd-kdc": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the kdc server, host|ip [:port]", "format": "string-rlx"}, "kpasswd-server": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the Kerberos password server, host|ip [:port]", "format": "string-rlx"}, "kadmin-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "kinit": {"default": 0, "not-list": ["kadmin", "kpasswd"], "type": "number", "description": "Kerberos KDC", "format": "flag"}, "kadmin-pricipal-name": {"minLength": 1, "maxLength": 127, "type": "string", "description": "Specify the pricipal name", "format": "string-rlx"}, "kadmin-realm": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the realm", "format": "string-rlx"}, "kinit-kdc": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the kdc server, host|ip [:port]", "format": "string-rlx"}, "kinit-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "kadmin": {"default": 0, "not-list": ["kinit", "kpasswd"], "type": "number", "description": "Kerberos admin", "format": "flag"}, "kadmin-kdc": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the kdc server, host|ip [:port]", "format": "string-rlx"}, "kadmin-server": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify the admin server, host|ip [:port]", "format": "string-rlx"}, "kpasswd-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "kadmin-password": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Password", "format": "password"}}}}}, "imap": {"type": "object", "properties": {"imap-cram-md5": {"default": 0, "type": "number", "description": "Challenge-response authentication mechanism", "format": "flag"}, "imap-port": {"description": "Specify the IMAP port, default is 143 (Port Number (default 143))", "format": "number", "default": 143, "maximum": 65534, "minimum": 1, "type": "number"}, "imap-login": {"default": 0, "type": "number", "description": "Simple login", "format": "flag"}, "imap-password": {"default": 0, "type": "number", "description": "Specify the user password", "format": "flag"}, "imap-password-string": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Configure password, '' means empty passworddd", "format": "password"}, "imap-username": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Specify the username", "format": "string-rlx"}, "imap-encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED password string)", "format": "encrypted"}, "pwd-auth": {"default": 0, "type": "number", "description": "Specify the Authentication method", "format": "flag"}, "imap-plain": {"default": 0, "type": "number", "description": "Plain text", "format": "flag"}, "imap": {"default": 0, "type": "number", "description": "IMAP type", "format": "flag"}}}}}, "status-code": {"optional": true, "enum": ["status-code-2xx", "status-code-non-5xx"], "type": "string", "description": "'status-code-2xx': Enable passive mode with 2xx http status code; 'status-code-non-5xx': Enable passive mode with non-5xx http status code; ", "format": "enum"}}}], "type": "array", "$ref": "/axapi/v3/health/monitor/{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/health`.

    

    
    """
    def __init__(self, **kwargs):
        self.ERROR_MSG = ""
        self.required=[]
        self.b_key = "health"
        self.a10_url="/axapi/v3/health"
        self.DeviceProxy = ""
        self.A10WW_global = {}
        self.monitor_list = []

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


