from a10sdk.common.A10BaseClass import A10BaseClass


class Template(A10BaseClass):
    
    """Class Description::
    Define a CGNv6 template.

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

    :param policy_list: {"minItems": 1, "items": {"type": "policy"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"name": {"description": "Policy template name", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "class-list": {"type": "object", "properties": {"header-name": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify L7 header name", "format": "string"}, "client-ip-l7-header": {"default": 0, "not": "client-ip-l3-dest", "type": "number", "description": "Use extract client IP address from L7 header", "format": "flag"}, "client-ip-l3-dest": {"default": 0, "not": "client-ip-l7-header", "type": "number", "description": "Use destination IP as client IP address", "format": "flag"}, "lid-list": {"minItems": 1, "items": {"type": "lid"}, "uniqueItems": true, "array": [{"required": ["lidnum"], "properties": {"request-limit": {"description": "Request limit (Specify request limit)", "format": "number", "type": "number", "maximum": 1048575, "minimum": 0, "optional": true}, "conn-limit": {"description": "Connection limit", "format": "number", "type": "number", "maximum": 1048575, "minimum": 0, "optional": true}, "interval": {"description": "Specify log interval in minutes, by default system will log every over limit instance", "format": "number", "type": "number", "maximum": 255, "minimum": 1, "optional": true}, "log": {"default": 0, "optional": true, "type": "number", "description": "Log a message", "format": "flag"}, "dns64": {"type": "object", "properties": {"exclusive-answer": {"default": 0, "type": "number", "description": "Exclusive Answer in DNS Response", "format": "flag"}, "prefix": {"type": "string", "description": "IPv6 prefix", "format": "ipv6-address-plen"}, "disable": {"default": 0, "type": "number", "description": "Disable", "format": "flag"}}}, "lidnum": {"description": "Specify a limit ID", "format": "number", "type": "number", "maximum": 31, "minimum": 1, "optional": false}, "request-rate-limit": {"description": "Request rate limit (Specify request rate limit)", "format": "number", "type": "number", "maximum": 4294967295, "minimum": 1, "optional": true}, "conn-per": {"description": "Per (Specify interval in number of 100ms)", "format": "number", "type": "number", "maximum": 65535, "minimum": 1, "optional": true}, "request-per": {"description": "Per (Specify interval in number of 100ms)", "format": "number", "type": "number", "maximum": 65535, "minimum": 1, "optional": true}, "conn-rate-limit": {"description": "Specify connection rate limit", "format": "number", "type": "number", "maximum": 2147483647, "minimum": 1, "optional": true}, "lockout": {"description": "Don't accept any new connection for certain time (Lockout duration in minutes)", "format": "number", "type": "number", "maximum": 1023, "minimum": 1, "optional": true}, "action-value": {"optional": true, "enum": ["forward", "reset"], "type": "string", "description": "'forward': Forward the traffic even it exceeds limit; 'reset': Reset the connection when it exceeds limit; ", "format": "enum"}, "over-limit-action": {"default": 0, "optional": true, "type": "number", "description": "Set action when exceeds limit", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/policy/{name}/class-list/lid/{lidnum}"}, "name": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Class list name", "format": "string-rlx"}}}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/policy/{name}"}
    :param logging_list: {"minItems": 1, "items": {"type": "logging"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"include-partition-name": {"default": 0, "optional": true, "type": "number", "description": "Include partition name in logging events", "format": "flag"}, "batched-logging-disable": {"default": 0, "optional": true, "type": "number", "description": "Disable multiple logs per packet", "format": "flag"}, "log-receiver": {"type": "object", "properties": {"encrypted": {"type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED secret string)", "format": "encrypted"}, "radius": {"default": 0, "type": "number", "description": "Use RADIUS server for NAT logging", "format": "flag"}, "secret-string": {"minLength": 1, "maxLength": 127, "type": "string", "description": "The RADIUS server's secret", "format": "password"}}}, "name": {"description": "Logging template name", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "include-inside-user-mac": {"default": 0, "optional": true, "type": "number", "description": "Include the inside user MAC address in logs", "format": "flag"}, "facility": {"description": "'kernel': 0: Kernel; 'user': 1: User-level; 'mail': 2: Mail; 'daemon': 3: System daemons; 'security-authorization': 4: Security/authorization; 'syslog': 5: Syslog internal; 'line-printer': 6: Line printer; 'news': 7: Network news; 'uucp': 8: UUCP subsystem; 'cron': 9: Time-related; 'security-authorization-private': 10: Private security/authorization; 'ftp': 11: FTP; 'ntp': 12: NTP; 'audit': 13: Audit; 'alert': 14: Alert; 'clock': 15: Clock-related; 'local0': 16: Local use 0; 'local1': 17: Local use 1; 'local2': 18: Local use 2; 'local3': 19: Local use 3; 'local4': 20: Local use 4; 'local5': 21: Local use 5; 'local6': 22: Local use 6; 'local7': 23: Local use 7; ", "format": "enum", "default": "local0", "type": "string", "enum": ["kernel", "user", "mail", "daemon", "security-authorization", "syslog", "line-printer", "news", "uucp", "cron", "security-authorization-private", "ftp", "ntp", "audit", "alert", "clock", "local0", "local1", "local2", "local3", "local4", "local5", "local6", "local7"], "optional": true}, "include-destination": {"default": 0, "optional": true, "type": "number", "description": "Include the destination IP and port in logs", "format": "flag"}, "severity": {"type": "object", "properties": {"severity-string": {"description": "'emergency': 0: Emergency; 'alert': 1: Alert; 'critical': 2: Critical; 'error': 3: Error; 'warning': 4: Warning; 'notice': 5: Notice; 'informational': 6: Informational; 'debug': 7: Debug; ", "format": "enum", "default": "debug", "enum": ["emergency", "alert", "critical", "error", "warning", "notice", "informational", "debug"], "not": "severity-val", "type": "string"}, "severity-val": {"description": "Logging severity level", "format": "number", "default": 7, "maximum": 7, "minimum": 0, "not": "severity-string", "type": "number"}}}, "format": {"description": "'binary': Binary logging format; 'compact': Compact ASCII logging format (Hex format with compact representation); 'custom': Arbitrary custom logging format; 'default': Default A10 logging format (ASCII); 'rfc5424': RFC5424 compliant logging format; ", "format": "enum", "default": "default", "type": "string", "enum": ["binary", "compact", "custom", "default", "rfc5424"], "optional": true}, "include-radius-attribute": {"type": "object", "properties": {"attr-cfg": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"attr-event": {"enum": ["http-requests", "port-mappings", "sessions"], "type": "string", "description": "'http-requests': Include in HTTP request logs; 'port-mappings': Include in port-mapping logs; 'sessions': Include in session logs; ", "format": "enum"}, "optional": true, "attr": {"enum": ["imei", "imsi", "msisdn", "custom1", "custom2", "custom3"], "type": "string", "description": "'imei': Include IMEI; 'imsi': Include IMSI; 'msisdn': Include MSISDN; 'custom1': Customized attribute 1; 'custom2': Customized attribute 2; 'custom3': Customized attribute 3; ", "format": "enum"}}}]}}}, "rule": {"type": "object", "properties": {"rule-http-requests": {"type": "object", "properties": {"log-every-http-request": {"default": 0, "type": "number", "description": "Log every HTTP request in an HTTP 1.1 session (Default: Log the first HTTP request in a session)", "format": "flag"}, "dest-port": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"include-byte-count": {"default": 0, "type": "number", "description": "Include the byte count of HTTP Request/Response in CGN session deletion logs", "format": "flag"}, "optional": true, "dest-port-number": {"minimum": 1, "type": "number", "maximum": 65535, "format": "number"}}}]}, "max-url-len": {"description": "Max length of URL log (Max URL length (Default: 100 char))", "format": "number", "default": 100, "maximum": 1000, "minimum": 100, "type": "number"}}}}}, "custom": {"type": "object", "properties": {"custom-header": {"enum": ["use-syslog-header"], "type": "string", "description": "'use-syslog-header': Use syslog header as custom log header; ", "format": "enum"}, "custom-message": {"type": "object", "properties": {"custom-http-request-got": {"minLength": 1, "maxLength": 255, "type": "string", "description": "HTTP request got (Custom message string)", "format": "string-rlx"}, "custom-fixed-nat-allocated": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Fixed-NAT allocated (Custom message string)", "format": "string-rlx"}, "custom-port-batch-freed": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port Batch freed (Custom message string)", "format": "string-rlx"}, "custom-fixed-nat-freed": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Fixed-NAT freed (Custom message string)", "format": "string-rlx"}, "custom-port-batch-allocated": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port Batch allocated (Custom message string)", "format": "string-rlx"}, "custom-port-allocated": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port allocated (Custom message string)", "format": "string-rlx"}, "custom-session-deleted": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Session deleted (Custom message string)", "format": "string-rlx"}, "custom-port-freed": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port freed (Custom message string)", "format": "string-rlx"}, "custom-session-created": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Session created (Custom message string)", "format": "string-rlx"}}}, "custom-time-stamp-format": {"minLength": 1, "maxLength": 31, "type": "string", "description": "Customize the time stamp format (Customize the time-stamp format. Default:%Y%m%d%H%M%S)", "format": "string-rlx"}}}, "service-group": {"description": "Set NAT logging service-group", "format": "string-rlx", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "rfc-custom": {"type": "object", "properties": {"header": {"type": "object", "properties": {"use-alternate-timestamp": {"default": 0, "type": "number", "description": "Use alternate non-RFC5424 compliant timestamp. Ex: 1990 Jan 15 12:30:30", "format": "flag"}}}, "message": {"type": "object", "properties": {"session-created": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Session created (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "http-request-got": {"minLength": 1, "maxLength": 255, "type": "string", "description": "HTTP request got (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "session-deleted": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Session deleted (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "ipv6-tech": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"fixed-nat-freed": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Fixed-NAT freed (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "port-batch-freed": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port Batch freed (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "tech-type": {"enum": ["lsn", "nat64", "ds-lite", "sixrd-nat64"], "type": "string", "description": "'lsn': LSN; 'nat64': NAT64; 'ds-lite': DS-Lite; 'sixrd-nat64': 6rd-NAT64; ", "format": "enum"}, "fixed-nat-allocated": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Fixed-NAT allocated (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "port-allocated": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port allocated (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "port-freed": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port freed (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}, "optional": true, "port-batch-allocated": {"minLength": 1, "maxLength": 255, "type": "string", "description": "Port Batch allocated (Custom message string. Should be in the format of \"MSGID [STRUCTURED-DATA] MSG\")", "format": "string-rlx"}}}]}}}}}, "include-http": {"type": "object", "properties": {"header-cfg": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"custom-max-length": {"description": "Max length for a HTTP request log (Max header length (Default: 100 char))", "format": "number", "default": 100, "maximum": 1000, "minimum": 100, "type": "number"}, "http-header": {"enum": ["cookie", "referer", "user-agent", "header1", "header2", "header3"], "type": "string", "description": "'cookie': Log HTTP Cookie Header; 'referer': Log HTTP Referer Header; 'user-agent': Log HTTP User-Agent Header; 'header1': Log HTTP Header 1; 'header2': Log HTTP Header 2; 'header3': Log HTTP Header 3; ", "format": "enum"}, "optional": true, "custom-header-name": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Header name", "format": "string"}, "max-length": {"description": "Max length for a HTTP request log (Max header length (Default: 100 char))", "format": "number", "default": 100, "maximum": 1000, "minimum": 100, "type": "number"}}}]}, "request-number": {"default": 0, "type": "number", "description": "HTTP Request Number", "format": "flag"}, "method": {"default": 0, "type": "number", "description": "Log the HTTP Request Method", "format": "flag"}, "l4-session-info": {"default": 0, "type": "number", "description": "Log the L4 session information of the HTTP request", "format": "flag"}}}, "source-address": {"type": "object", "properties": {"ip": {"type": "string", "description": "Specify source IP address", "format": "ipv4-address"}, "ipv6": {"type": "string", "description": "Specify source IPv6 address", "format": "ipv6-address"}}}, "shared": {"description": "Service group is in shared patition", "partition-visibility": "private", "default": 0, "type": "number", "format": "flag", "optional": true}, "source-port": {"type": "object", "properties": {"source-port-num": {"description": "Set source port for sending NAT syslogs (default: 514)", "format": "number", "default": 514, "maximum": 65535, "minimum": 1, "not": "any", "type": "number"}, "any": {"default": 0, "not": "source-port-num", "type": "number", "description": "Use any source port", "format": "flag"}}}, "resolution": {"description": "'seconds': Logging timestamp resolution in seconds (default); '10-milliseconds': Logging timestamp resolution in 10s of milli-seconds; ", "format": "enum", "default": "seconds", "type": "string", "enum": ["seconds", "10-milliseconds"], "optional": true}, "log": {"type": "object", "properties": {"port-mappings": {"enum": ["creation", "disable"], "type": "string", "description": "'creation': Log only creation of NAT mappgins; 'disable': Disable Log creation and deletion of NAT mappings; ", "format": "enum"}, "port-overloading": {"default": 0, "type": "number", "description": "Force logging of all port-overloading sessions", "format": "flag"}, "fixed-nat": {"type": "object", "properties": {"user-ports": {"type": "object", "properties": {"start-time": {"type": "string", "description": "Time when periodic logging starts (Specify start time(hh:mm))", "format": "time-hhmm"}, "user-ports": {"default": 0, "type": "number", "description": "Log Fixed NAT User Ports Configured", "format": "flag"}, "days": {"description": "Specify period in days", "minimum": 1, "type": "number", "maximum": 30, "format": "number"}}}, "fixed-nat-http-requests": {"enum": ["host", "url"], "type": "string", "description": "'host': Log the HTTP Host Header; 'url': Log the HTTP Request URL; ", "format": "enum"}, "fixed-nat-sessions": {"default": 0, "type": "number", "description": "Log all Fixed NAT sessions", "format": "flag"}, "fixed-nat-port-mappings": {"enum": ["both", "creation"], "type": "string", "description": "'both': Log creation and deletion of NAT mappings; 'creation': Log creation of NAT mappings; ", "format": "enum"}}}, "http-requests": {"enum": ["host", "url"], "type": "string", "description": "'host': Log the HTTP Host Header; 'url': Log the HTTP Request URL; ", "format": "enum"}, "sessions": {"default": 0, "type": "number", "description": "Log all data sessions created using NAT", "format": "flag"}}}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/logging/{name}"}
    :param pcp_list: {"minItems": 1, "items": {"type": "pcp"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"source-ipv6": {"optional": true, "type": "string", "description": "Specify source IPv6 address for IPv6 ANNOUNCE message", "format": "ipv6-address"}, "allow-third-party-from-lan": {"default": 0, "optional": true, "type": "number", "description": "Allow third party request coming from LAN (default is disabled)", "format": "flag"}, "name": {"description": "PCP Template name", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "map": {"default": 0, "optional": true, "type": "number", "description": "PCP MAP Opcode (default is enabled)", "format": "flag"}, "allow-third-party-from-wan": {"default": 0, "optional": true, "type": "number", "description": "Allow third party request coming from WAN (default is disabled)", "format": "flag"}, "maximum": {"description": "To set maximum lifetime of PCP mappings (default 1440 minutes)", "format": "number", "default": 1440, "optional": true, "maximum": 1440, "minimum": 2, "type": "number"}, "disable-map-filter": {"default": 0, "optional": true, "type": "number", "description": "To disable processing of FILTER options in MAP request", "format": "flag"}, "peer": {"default": 0, "optional": true, "type": "number", "description": "PCP PEER Opcode (default is enabled)", "format": "flag"}, "minimum": {"description": "To set minimum lifetime of PCP mappings (default 2 minutes)", "format": "number", "default": 2, "optional": true, "maximum": 1440, "minimum": 2, "type": "number"}, "check-client-nonce": {"default": 0, "optional": true, "type": "number", "description": "To validate NONCE value in PCP request (default: disabled)", "format": "flag"}, "announce": {"default": 0, "optional": true, "type": "number", "description": "PCP ANNOUNCE Opcode (default is enabled)", "format": "flag"}, "source-ip": {"optional": true, "type": "string", "description": "Specify source IP address for IPv4 ANNOUNCE message", "format": "ipv4-address"}, "pcp-server-port": {"description": "PCP server listening port (default 5351) (PCP UDP destination port)", "format": "number", "default": 5351, "optional": true, "maximum": 65535, "minimum": 1024, "type": "number"}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/pcp/{name}"}
    :param http_alg_list: {"minItems": 1, "items": {"type": "http-alg"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"header-name-client-ip": {"description": "Header name (default: X-Forwarded-For)", "format": "string", "default": "X-Forwarded-For", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "retry": {"description": "Specify the maximum retries allowed for sending an request to a RADIUS server (default 2) (The maximum retries allowed for sending an request to the radius server (default 2))", "format": "number", "default": 2, "optional": true, "maximum": 3, "minimum": 0, "type": "number"}, "retry-svr-num": {"description": "Specify the maximum RADIUS servers allowed to try (default 0)", "format": "number", "default": 0, "optional": true, "maximum": 1, "minimum": 0, "type": "number"}, "name": {"description": "HTTP-ALG template name", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "request-insert-msisdn": {"default": 0, "optional": true, "type": "number", "description": "Insert MSISDN into HTTP request", "format": "flag"}, "radius-sg": {"description": "RADIUS service group (RADIUS service group name)", "format": "string-rlx", "minLength": 1, "optional": true, "maxLength": 63, "type": "string", "$ref": "/axapi/v3/cgnv6/service-group"}, "encrypted": {"optional": true, "type": "encrypted", "description": "Do NOT use this option manually. (This is an A10 reserved keyword.) (The ENCRYPTED secret string)", "format": "encrypted"}, "request-insert-client-ip": {"default": 0, "optional": true, "type": "number", "description": "Insert Client IP into HTTP request", "format": "flag"}, "header-name-msisdn": {"description": "Header name (default: X-MSISDN)", "format": "string", "default": "X-MSISDN", "minLength": 1, "optional": true, "maxLength": 63, "type": "string"}, "timeout": {"description": "The maximum time allowed for waiting for a response from a radius server (default 2)", "format": "number", "default": 2, "optional": true, "maximum": 3, "minimum": 1, "type": "number"}, "include-tunnel-ip": {"default": 0, "optional": true, "type": "number", "description": "Include the tunnel IP (applies to DS-Lite and 6RD-NAT64 sessions)", "format": "flag"}, "method": {"description": "'append': Append if there is already a header (default); 'replace': Replace if there is already a header; ", "format": "enum", "default": "append", "type": "string", "enum": ["append", "replace"], "optional": true}, "secret-string": {"description": "The RADIUS secret", "format": "password", "minLength": 1, "optional": true, "maxLength": 127, "type": "string"}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/http-alg/{name}"}
    :param dns_list: {"minItems": 1, "items": {"type": "dns"}, "uniqueItems": true, "array": [{"required": ["name"], "properties": {"name": {"description": "DNS Template Name", "format": "string-rlx", "minLength": 1, "optional": false, "maxLength": 63, "type": "string"}, "class-list": {"type": "object", "properties": {"lid-list": {"minItems": 1, "items": {"type": "lid"}, "uniqueItems": true, "array": [{"required": ["lidnum"], "properties": {"over-limit-action": {"default": 0, "optional": true, "type": "number", "description": "Action when exceeds limit", "format": "flag"}, "log": {"default": 0, "optional": true, "type": "number", "description": "Log a message", "format": "flag"}, "lidnum": {"description": "Specify a limit ID", "format": "number", "type": "number", "maximum": 31, "minimum": 1, "optional": false}, "action-value": {"optional": true, "enum": ["dns-cache-disable", "dns-cache-enable", "forward"], "type": "string", "description": "'dns-cache-disable': Disable DNS cache when it exceeds limit; 'dns-cache-enable': Enable DNS cache when it exceeds limit; 'forward': Forward the traffic even it exceeds limit; ", "format": "enum"}, "per": {"description": "Per (Number of 100ms)", "format": "number", "type": "number", "maximum": 65535, "minimum": 1, "optional": true}, "lockout": {"description": "Don't accept any new connection for certain time (Lockout duration in minutes)", "format": "number", "type": "number", "maximum": 1023, "minimum": 1, "optional": true}, "dns": {"type": "object", "properties": {"cache-action": {"default": "cache-disable", "enum": ["cache-disable", "cache-enable"], "type": "string", "description": "'cache-disable': Disable dns cache; 'cache-enable': Enable dns cache; ", "format": "enum"}, "weight": {"description": "Weight for cache entry", "minimum": 1, "type": "number", "maximum": 7, "format": "number"}, "ttl": {"description": "TTL for cache entry (TTL in seconds)", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}}}, "conn-rate-limit": {"description": "Connection rate limit", "format": "number", "type": "number", "maximum": 2147483647, "minimum": 1, "optional": true}, "log-interval": {"description": "Log interval (minute, by default system will log every over limit instance)", "format": "number", "type": "number", "maximum": 255, "minimum": 1, "optional": true}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/dns/{name}/class-list/lid/{lidnum}"}, "name": {"minLength": 1, "maxLength": 63, "type": "string", "description": "Specify a class list name", "format": "string-rlx"}}}, "dns64": {"type": "object", "properties": {"deep-check-rr-disable": {"default": 0, "type": "number", "description": "Disable Check DNS Response Records", "format": "flag"}, "answer-only-disable": {"default": 0, "type": "number", "description": "Disable Only translate the Answer Section", "format": "flag"}, "enable": {"default": 0, "type": "number", "description": "Enable DNS64 (Need to config this option before config any other dns64 options)", "format": "flag"}, "single-response-disable": {"default": 0, "type": "number", "description": "Disable Single Response which is used to avoid ambiguity", "format": "flag"}, "max-qr-length": {"description": "Max Question Record Length, default is 128", "format": "number", "default": 128, "maximum": 1023, "minimum": 1, "type": "number"}, "ignore-rcode3-disable": {"default": 0, "type": "number", "description": "Disable Ignore DNS error Response with rcode 3", "format": "flag"}, "ttl": {"description": "Specify Max TTL in DNS Response, unit: second", "minimum": 1, "type": "number", "maximum": 1000000000, "format": "number"}, "auth-data": {"default": 0, "type": "number", "description": "Set AA flag in DNS Response", "format": "flag"}, "change-query": {"default": 0, "type": "number", "description": "Always change incoming AAAA DNS Query to A", "format": "flag"}, "drop-cname-disable": {"default": 0, "type": "number", "description": "Disable Drop DNS CNAME Response", "format": "flag"}, "cache": {"default": 0, "type": "number", "description": "Generate Response by DNS Cache", "format": "flag"}, "passive-query-disable": {"default": 0, "type": "number", "description": "Disable Generate A query upon empty or error Response", "format": "flag"}, "retry": {"description": "Retry count, default is 3 (Retry Number)", "format": "number", "default": 3, "maximum": 15, "minimum": 0, "type": "number"}, "parallel-query": {"default": 0, "type": "number", "description": "Forward AAAA Query & generate A Query in parallel", "format": "flag"}, "timeout": {"description": "Timeout to send additional Queries, unit: second, default is 1", "format": "number", "default": 1, "maximum": 15, "minimum": 0, "type": "number"}, "compress-disable": {"default": 0, "type": "number", "description": "Disable Always try DNS Compression", "format": "flag"}, "trans-ptr-query": {"default": 0, "type": "number", "description": "Translate DNS PTR Query", "format": "flag"}, "trans-ptr": {"default": 0, "type": "number", "description": "Translate DNS PTR Records", "format": "flag"}}}, "drop": {"description": "Drop the malformed query", "format": "flag", "default": 0, "optional": true, "not": "forward", "type": "number"}, "period": {"description": "Period in minutes", "format": "number", "type": "number", "maximum": 10000, "minimum": 1, "optional": true}, "default-policy": {"optional": true, "enum": ["nocache", "cache"], "type": "string", "description": "'nocache': Cache disable; 'cache': Cache enable; ", "format": "enum"}, "max-cache-size": {"platform-specific-range": 1, "platform-specific-default": 1, "description": "Define maximum cache size (Maximum cache entry per VIP)", "format": "number", "optional": true, "type": "number"}, "forward": {"description": "Forward to service group (Service group name)", "format": "string", "minLength": 1, "optional": true, "maxLength": 127, "not": "drop", "type": "string"}, "disable-dns-template": {"default": 0, "optional": true, "type": "number", "description": "Disable DNS template", "format": "flag"}}}], "type": "array", "$ref": "/axapi/v3/cgnv6/template/dns/{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/cgnv6/template`.

    

    
    """
    def __init__(self, **kwargs):
        self.ERROR_MSG = ""
        self.required=[]
        self.b_key = "template"
        self.a10_url="/axapi/v3/cgnv6/template"
        self.DeviceProxy = ""
        self.policy_list = []
        self.logging_list = []
        self.pcp_list = []
        self.http_alg_list = []
        self.dns_list = []

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


