from a10sdk.common.A10BaseClass import A10BaseClass


class Ipv6(A10BaseClass):
    
    """Class Description::
    IPv6 information.

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

    :param ospf_list: {"minItems": 1, "items": {"type": "ospf"}, "uniqueItems": true, "array": [{"required": ["process-id"], "properties": {"default-metric": {"description": "Set metric of redistributed routes (Default metric)", "format": "number", "default": 20, "optional": true, "maximum": 16777214, "minimum": 1, "type": "number"}, "abr-type-option": {"description": "'cisco': Alternative ABR, Cisco implementation (RFC3509); 'ibm': Alternative ABR, IBM implementation (RFC3509); 'standard': Standard behavior (RFC2328); ", "format": "enum", "default": "cisco", "type": "string", "enum": ["cisco", "ibm", "standard"], "optional": true}, "auto-cost-reference-bandwidth": {"description": "Use reference bandwidth method to assign OSPF cost (The reference bandwidth in terms of Mbits per second)", "format": "number", "default": 10000, "optional": true, "maximum": 4294967, "minimum": 1, "type": "number"}, "router-id": {"optional": true, "modify-not-allowed": 1, "type": "string", "description": "router-id for the OSPF process (OSPFv3 router-id in IPv4 address format)", "format": "ipv4-address"}, "distribute-internal-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"area-num": {"description": "OSPF area ID as a decimal value", "minimum": 0, "type": "number", "maximum": 4294967295, "format": "number"}, "area-ipv4": {"default": "255.255.255.255", "type": "string", "description": "OSPF area ID in IP address format", "format": "ipv4-address"}, "cost": {"description": "Cost", "format": "number", "default": 1, "maximum": 65535, "minimum": 1, "type": "number"}, "type": {"enum": ["lw4o6", "nat64", "floating-ip", "ip-nat", "ip-nat-list", "vip", "vip-only-flagged"], "type": "string", "description": "'lw4o6': LW4O6 Prefix; 'nat64': NAT64 Prefix; 'floating-ip': Floating IP; 'ip-nat': IP NAT; 'ip-nat-list': IP NAT list; 'vip': Virtual IP (VIP); 'vip-only-flagged': Selected Virtual IP (VIP); ", "format": "enum"}, "optional": true}}]}, "redistribute": {"type": "object", "properties": {"redist-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "metric": {"description": "OSPF default metric (OSPF metric)", "minimum": 0, "type": "number", "maximum": 16777214, "format": "number"}, "route-map": {"minLength": 1, "maxLength": 128, "type": "string", "description": "Route map reference (Pointer to route-map entries)", "format": "string"}, "type": {"enum": ["bgp", "connected", "floating-ip", "ip-nat-list", "nat64", "lw4o6", "isis", "rip", "static"], "type": "string", "description": "'bgp': Border Gateway Protocol (BGP); 'connected': Connected; 'floating-ip': Floating IP; 'ip-nat-list': IP NAT list; 'nat64': NAT64 Prefix; 'lw4o6': LW4O6 Prefix; 'isis': ISO IS-IS; 'rip': Routing Information Protocol (RIP); 'static': Static routes; ", "format": "enum"}, "metric-type": {"default": "2", "enum": ["1", "2"], "type": "string", "description": "'1': Set OSPF External Type 1 metrics; '2': Set OSPF External Type 2 metrics; ", "format": "enum"}}}]}, "ospf-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "process-id": {"minLength": 1, "maxLength": 128, "type": "string", "description": "OSPF process ID", "format": "string"}, "route-map-ospf": {"minLength": 1, "maxLength": 128, "type": "string", "description": "Route map reference (Pointer to route-map entries)", "format": "string"}, "metric-ospf": {"description": "OSPF default metric (OSPF metric)", "minimum": 0, "type": "number", "maximum": 16777214, "format": "number"}, "ospf": {"default": 0, "type": "number", "description": "Open Shortest Path First (OSPF)", "format": "flag"}, "metric-type-ospf": {"default": "2", "enum": ["1", "2"], "type": "string", "description": "'1': Set OSPF External Type 1 metrics; '2': Set OSPF External Type 2 metrics; ", "format": "enum"}}}]}, "ip-nat-floating-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"ip-nat-floating-IP-forward": {"type": "string", "description": "Floating-IP as forward address", "format": "ipv6-address"}, "optional": true, "ip-nat-prefix": {"type": "string", "description": "Address", "format": "ipv6-address-plen"}}}]}, "vip-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"metric-vip": {"description": "OSPF default metric (OSPF metric)", "minimum": 0, "type": "number", "maximum": 16777214, "format": "number"}, "metric-type-vip": {"default": "2", "enum": ["1", "2"], "type": "string", "description": "'1': Set OSPF External Type 1 metrics; '2': Set OSPF External Type 2 metrics; ", "format": "enum"}, "optional": true, "type-vip": {"enum": ["only-flagged", "only-not-flagged"], "type": "string", "description": "'only-flagged': Selected Virtual IP (VIP); 'only-not-flagged': Only not flagged; ", "format": "enum"}, "route-map-vip": {"minLength": 1, "maxLength": 128, "type": "string", "description": "Route map reference (Pointer to route-map entries)", "format": "string"}}}]}, "vip": {"default": 0, "type": "number", "description": "Virtual IP (VIP)", "format": "flag"}, "ip-nat": {"default": 0, "type": "number", "description": "IP-NAT", "format": "flag"}, "metric-ip-nat": {"description": "OSPF default metric (OSPF metric)", "minimum": 0, "type": "number", "maximum": 16777214, "format": "number"}, "route-map-ip-nat": {"minLength": 1, "maxLength": 128, "type": "string", "description": "Route map reference (Pointer to route-map entries)", "format": "string"}, "vip-floating-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "vip-address": {"type": "string", "description": "Address", "format": "ipv6-address"}, "vip-floating-IP-forward": {"type": "string", "description": "Floating-IP as forward address", "format": "ipv6-address"}}}]}, "metric-type-ip-nat": {"default": "2", "enum": ["1", "2"], "type": "string", "description": "'1': Set OSPF External Type 1 metrics; '2': Set OSPF External Type 2 metrics; ", "format": "enum"}}}, "max-concurrent-dd": {"description": "Maximum number allowed to process DD concurrently (Number of DD process)", "format": "number", "default": 5, "optional": true, "maximum": 65535, "minimum": 1, "type": "number"}, "process-id": {"description": "OSPFv3 process tag", "format": "string", "default": "0", "minLength": 1, "optional": false, "maxLength": 128, "type": "string"}, "passive-interface": {"type": "object", "properties": {"ve-cfg": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "ve": {"type": "number", "description": "Virtual ethernet interface (Virtual ethernet interface number)", "format": "interface"}}}]}, "trunk-cfg": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "trunk": {"type": "number", "description": "Trunk interface (Trunk interface number)", "format": "interface"}}}]}, "loopback-cfg": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "loopback": {"type": "number", "description": "Loopback interface (Port number)", "format": "interface"}}}]}, "eth-cfg": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"ethernet": {"type": "number", "description": "Ethernet interface (Port number)", "format": "interface"}, "optional": true}}]}}}, "timers": {"type": "object", "properties": {"spf": {"type": "object", "properties": {"exp": {"type": "object", "properties": {"max-delay": {"description": "Maximum delay between receiving a change to SPF calculation in milliseconds", "format": "number", "default": 50000, "maximum": 2147483647, "minimum": 0, "type": "number"}, "min-delay": {"description": "Minimum delay between receiving a change to SPF calculation in milliseconds", "format": "number", "default": 500, "maximum": 2147483647, "minimum": 0, "type": "number"}}}}}}}, "ha-standby-extra-cost": {"description": "Extra ospf cost when there is any standby HA group (The extra cost value)", "format": "number", "type": "number", "maximum": 65535, "minimum": 1, "optional": true}, "bfd-all-interfaces": {"default": 0, "optional": true, "type": "number", "description": "Enable BFD on all interfaces", "format": "flag"}, "area-list": {"minItems": 1, "items": {"type": "area"}, "uniqueItems": true, "array": [{"required": ["area-ipv4", "area-num"], "properties": {"area-ipv4": {"optional": false, "type": "string", "description": "OSPFv3 area ID in IP address format", "format": "ipv4-address"}, "virtual-link-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"dead-interval": {"description": "Dead router detection time (Seconds)", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}, "hello-interval": {"description": "Hello packet interval (Seconds)", "minimum": 1, "type": "number", "maximum": 65535, "format": "number"}, "bfd": {"default": 0, "type": "number", "description": "Bidirectional Forwarding Detection (BFD)", "format": "flag"}, "transmit-delay": {"description": "LSA transmission delay (Seconds)", "format": "number", "default": 1, "maximum": 3600, "minimum": 1, "type": "number"}, "value": {"type": "string", "description": "ID (IP addr) associated with virtual link neighbor", "format": "ipv4-address"}, "retransmit-interval": {"description": "LSA retransmit interval (Seconds)", "minimum": 1, "type": "number", "maximum": 3600, "format": "number"}, "optional": true, "instance-id": {"description": "OSPFv3 instance ID", "format": "number", "default": 0, "maximum": 255, "minimum": 0, "type": "number"}}}]}, "no-summary": {"default": 0, "optional": true, "type": "number", "description": "Do not inject inter-area routes into area", "format": "flag"}, "stub": {"default": 0, "optional": true, "type": "number", "description": "Configure OSPFv3 area as stub", "format": "flag"}, "range-list": {"minItems": 1, "items": {"type": "object"}, "uniqueItems": true, "type": "array", "array": [{"properties": {"optional": true, "option": {"enum": ["advertise", "not-advertise"], "type": "string", "description": "'advertise': Advertise this range (default); 'not-advertise': DoNotAdvertise this range; ", "format": "enum"}, "value": {"type": "string", "description": "Area range for IPv6 prefix", "format": "ipv6-address-plen"}}}]}, "default-cost": {"description": "Set the summary-default cost of a NSSA or stub area (Stub's advertised default summary cost)", "format": "number", "default": 1, "optional": true, "maximum": 16777215, "minimum": 0, "type": "number"}, "area-num": {"description": "OSPFv3 area ID as a decimal value", "format": "number", "type": "number", "maximum": 4294967295, "minimum": 0, "optional": false}}}], "type": "array", "$ref": "/axapi/v3/router/ipv6/ospf/{process-id}/area/{area-ipv4}+{area-num}"}}}], "type": "array", "$ref": "/axapi/v3/router/ipv6/ospf/{process-id}"}
    :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/router/ipv6`.

    

    
    """
    def __init__(self, **kwargs):
        self.ERROR_MSG = ""
        self.required=[]
        self.b_key = "ipv6"
        self.a10_url="/axapi/v3/router/ipv6"
        self.DeviceProxy = ""
        self.ospf_list = []
        self.rip = {}

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


