# -*- coding: utf-8 -*-
from operator import attrgetter
from pyangbind.lib.yangtypes import RestrictedPrecisionDecimalType
from pyangbind.lib.yangtypes import RestrictedClassType
from pyangbind.lib.yangtypes import TypedListType
from pyangbind.lib.yangtypes import YANGBool
from pyangbind.lib.yangtypes import YANGListType
from pyangbind.lib.yangtypes import YANGDynClass
from pyangbind.lib.yangtypes import ReferenceType
from pyangbind.lib.base import PybindBase
from collections import OrderedDict
from decimal import Decimal
from bitarray import bitarray
import six

# PY3 support of some PY2 keywords (needs improved)
if six.PY3:
    import builtins as __builtin__

    long = int
elif six.PY2:
    import __builtin__

from . import state
from . import admin_group
from . import ipv4_interface_address
from . import ipv4_neighbor_address
from . import max_link_bandwidth
from . import max_reservable_link_bandwidth
from . import unreserved_bandwidth
from . import ipv6_interface_address
from . import ipv6_neighbor_address
from . import extended_admin_group
from . import te_default_metric
from . import link_attributes
from . import link_protection_type
from . import bandwidth_constraints
from . import unconstrained_lsp
from . import adjacency_sid
from . import lan_adjacency_sid
from . import link_delay
from . import min_max_link_delay
from . import link_delay_variation
from . import link_loss
from . import residual_bandwidth
from . import available_bandwidth
from . import utilized_bandwidth


class subTLVs(PybindBase):
    """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-network-instance - based on the path /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/subTLVs/subTLVs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of subTLV types in the LSDB for the specified TLV.
  """
    __slots__ = (
        "_path_helper",
        "_extmethods",
        "__subtlv_type",
        "__state",
        "__admin_group",
        "__ipv4_interface_address",
        "__ipv4_neighbor_address",
        "__max_link_bandwidth",
        "__max_reservable_link_bandwidth",
        "__unreserved_bandwidth",
        "__ipv6_interface_address",
        "__ipv6_neighbor_address",
        "__extended_admin_group",
        "__te_default_metric",
        "__link_attributes",
        "__link_protection_type",
        "__bandwidth_constraints",
        "__unconstrained_lsp",
        "__adjacency_sid",
        "__lan_adjacency_sid",
        "__link_delay",
        "__min_max_link_delay",
        "__link_delay_variation",
        "__link_loss",
        "__residual_bandwidth",
        "__available_bandwidth",
        "__utilized_bandwidth",
    )

    _yang_name = "subTLVs"

    _pybind_generated_by = "container"

    def __init__(self, *args, **kwargs):

        self._path_helper = False

        self._extmethods = False
        self.__subtlv_type = YANGDynClass(
            base=six.text_type,
            is_leaf=True,
            yang_name="subtlv-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            is_keyval=True,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="leafref",
            is_config=False,
        )
        self.__state = YANGDynClass(
            base=state.state,
            is_container="container",
            yang_name="state",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__admin_group = YANGDynClass(
            base=admin_group.admin_group,
            is_container="container",
            yang_name="admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv4_interface_address = YANGDynClass(
            base=ipv4_interface_address.ipv4_interface_address,
            is_container="container",
            yang_name="ipv4-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv4_neighbor_address = YANGDynClass(
            base=ipv4_neighbor_address.ipv4_neighbor_address,
            is_container="container",
            yang_name="ipv4-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__max_link_bandwidth = YANGDynClass(
            base=max_link_bandwidth.max_link_bandwidth,
            is_container="container",
            yang_name="max-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__max_reservable_link_bandwidth = YANGDynClass(
            base=max_reservable_link_bandwidth.max_reservable_link_bandwidth,
            is_container="container",
            yang_name="max-reservable-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__unreserved_bandwidth = YANGDynClass(
            base=unreserved_bandwidth.unreserved_bandwidth,
            is_container="container",
            yang_name="unreserved-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv6_interface_address = YANGDynClass(
            base=ipv6_interface_address.ipv6_interface_address,
            is_container="container",
            yang_name="ipv6-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv6_neighbor_address = YANGDynClass(
            base=ipv6_neighbor_address.ipv6_neighbor_address,
            is_container="container",
            yang_name="ipv6-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__extended_admin_group = YANGDynClass(
            base=extended_admin_group.extended_admin_group,
            is_container="container",
            yang_name="extended-admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__te_default_metric = YANGDynClass(
            base=te_default_metric.te_default_metric,
            is_container="container",
            yang_name="te-default-metric",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_attributes = YANGDynClass(
            base=link_attributes.link_attributes,
            is_container="container",
            yang_name="link-attributes",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_protection_type = YANGDynClass(
            base=link_protection_type.link_protection_type,
            is_container="container",
            yang_name="link-protection-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__bandwidth_constraints = YANGDynClass(
            base=bandwidth_constraints.bandwidth_constraints,
            is_container="container",
            yang_name="bandwidth-constraints",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__unconstrained_lsp = YANGDynClass(
            base=unconstrained_lsp.unconstrained_lsp,
            is_container="container",
            yang_name="unconstrained-lsp",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__adjacency_sid = YANGDynClass(
            base=adjacency_sid.adjacency_sid,
            is_container="container",
            yang_name="adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__lan_adjacency_sid = YANGDynClass(
            base=lan_adjacency_sid.lan_adjacency_sid,
            is_container="container",
            yang_name="lan-adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_delay = YANGDynClass(
            base=link_delay.link_delay,
            is_container="container",
            yang_name="link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__min_max_link_delay = YANGDynClass(
            base=min_max_link_delay.min_max_link_delay,
            is_container="container",
            yang_name="min-max-link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_delay_variation = YANGDynClass(
            base=link_delay_variation.link_delay_variation,
            is_container="container",
            yang_name="link-delay-variation",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_loss = YANGDynClass(
            base=link_loss.link_loss,
            is_container="container",
            yang_name="link-loss",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__residual_bandwidth = YANGDynClass(
            base=residual_bandwidth.residual_bandwidth,
            is_container="container",
            yang_name="residual-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__available_bandwidth = YANGDynClass(
            base=available_bandwidth.available_bandwidth,
            is_container="container",
            yang_name="available-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__utilized_bandwidth = YANGDynClass(
            base=utilized_bandwidth.utilized_bandwidth,
            is_container="container",
            yang_name="utilized-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

        load = kwargs.pop("load", None)
        if args:
            if len(args) > 1:
                raise TypeError("cannot create a YANG container with >1 argument")
            all_attr = True
            for e in self._pyangbind_elements:
                if not hasattr(args[0], e):
                    all_attr = False
                    break
            if not all_attr:
                raise ValueError("Supplied object did not have the correct attributes")
            for e in self._pyangbind_elements:
                nobj = getattr(args[0], e)
                if nobj._changed() is False:
                    continue
                setmethod = getattr(self, "_set_%s" % e)
                if load is None:
                    setmethod(getattr(args[0], e))
                else:
                    setmethod(getattr(args[0], e), load=load)

    def _path(self):
        if hasattr(self, "_parent"):
            return self._parent._path() + [self._yang_name]
        else:
            return [
                "network-instances",
                "network-instance",
                "protocols",
                "protocol",
                "isis",
                "levels",
                "level",
                "link-state-database",
                "lsp",
                "tlvs",
                "tlv",
                "mt-isn",
                "neighbors",
                "neighbor",
                "subTLVs",
                "subTLVs",
            ]

    def _get_subtlv_type(self):
        """
    Getter method for subtlv_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/subtlv_type (leafref)

    YANG Description: A reference for the TLV type being described within
the LSDB
    """
        return self.__subtlv_type

    def _set_subtlv_type(self, v, load=False):
        """
    Setter method for subtlv_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/subtlv_type (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subtlv_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subtlv_type() directly.

    YANG Description: A reference for the TLV type being described within
the LSDB
    """
        parent = getattr(self, "_parent", None)
        if parent is not None and load is False:
            raise AttributeError(
                "Cannot set keys directly when" + " within an instantiated list"
            )

        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=six.text_type,
                is_leaf=True,
                yang_name="subtlv-type",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                is_keyval=True,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="leafref",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """subtlv_type must be of a type compatible with leafref""",
                    "defined-type": "leafref",
                    "generated-type": """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subtlv-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='leafref', is_config=False)""",
                }
            )

        self.__subtlv_type = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_subtlv_type(self):
        self.__subtlv_type = YANGDynClass(
            base=six.text_type,
            is_leaf=True,
            yang_name="subtlv-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            is_keyval=True,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="leafref",
            is_config=False,
        )

    def _get_state(self):
        """
    Getter method for state, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/state (container)

    YANG Description: State parameters of IS neighbor state
    """
        return self.__state

    def _set_state(self, v, load=False):
        """
    Setter method for state, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/state (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_state is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_state() directly.

    YANG Description: State parameters of IS neighbor state
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=state.state,
                is_container="container",
                yang_name="state",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """state must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__state = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_state(self):
        self.__state = YANGDynClass(
            base=state.state,
            is_container="container",
            yang_name="state",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_admin_group(self):
        """
    Getter method for admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/admin_group (container)

    YANG Description: This container defines sub-TLV 3.
    """
        return self.__admin_group

    def _set_admin_group(self, v, load=False):
        """
    Setter method for admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/admin_group (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_group() directly.

    YANG Description: This container defines sub-TLV 3.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=admin_group.admin_group,
                is_container="container",
                yang_name="admin-group",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """admin_group must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=admin_group.admin_group, is_container='container', yang_name="admin-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__admin_group = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_admin_group(self):
        self.__admin_group = YANGDynClass(
            base=admin_group.admin_group,
            is_container="container",
            yang_name="admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv4_interface_address(self):
        """
    Getter method for ipv4_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_interface_address (container)

    YANG Description: This container defines sub-TLV 6.
    """
        return self.__ipv4_interface_address

    def _set_ipv4_interface_address(self, v, load=False):
        """
    Setter method for ipv4_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_interface_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_interface_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_interface_address() directly.

    YANG Description: This container defines sub-TLV 6.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv4_interface_address.ipv4_interface_address,
                is_container="container",
                yang_name="ipv4-interface-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv4_interface_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv4_interface_address.ipv4_interface_address, is_container='container', yang_name="ipv4-interface-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv4_interface_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv4_interface_address(self):
        self.__ipv4_interface_address = YANGDynClass(
            base=ipv4_interface_address.ipv4_interface_address,
            is_container="container",
            yang_name="ipv4-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv4_neighbor_address(self):
        """
    Getter method for ipv4_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_neighbor_address (container)

    YANG Description: This container defines sub-TLV 8.
    """
        return self.__ipv4_neighbor_address

    def _set_ipv4_neighbor_address(self, v, load=False):
        """
    Setter method for ipv4_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_neighbor_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_neighbor_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_neighbor_address() directly.

    YANG Description: This container defines sub-TLV 8.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv4_neighbor_address.ipv4_neighbor_address,
                is_container="container",
                yang_name="ipv4-neighbor-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv4_neighbor_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv4_neighbor_address.ipv4_neighbor_address, is_container='container', yang_name="ipv4-neighbor-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv4_neighbor_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv4_neighbor_address(self):
        self.__ipv4_neighbor_address = YANGDynClass(
            base=ipv4_neighbor_address.ipv4_neighbor_address,
            is_container="container",
            yang_name="ipv4-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_max_link_bandwidth(self):
        """
    Getter method for max_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_link_bandwidth (container)

    YANG Description: This container defines sub-TLV 9.
    """
        return self.__max_link_bandwidth

    def _set_max_link_bandwidth(self, v, load=False):
        """
    Setter method for max_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_link_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_link_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_link_bandwidth() directly.

    YANG Description: This container defines sub-TLV 9.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=max_link_bandwidth.max_link_bandwidth,
                is_container="container",
                yang_name="max-link-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """max_link_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=max_link_bandwidth.max_link_bandwidth, is_container='container', yang_name="max-link-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__max_link_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_max_link_bandwidth(self):
        self.__max_link_bandwidth = YANGDynClass(
            base=max_link_bandwidth.max_link_bandwidth,
            is_container="container",
            yang_name="max-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_max_reservable_link_bandwidth(self):
        """
    Getter method for max_reservable_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_reservable_link_bandwidth (container)

    YANG Description: This container defines sub-TLV 10.
    """
        return self.__max_reservable_link_bandwidth

    def _set_max_reservable_link_bandwidth(self, v, load=False):
        """
    Setter method for max_reservable_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_reservable_link_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_reservable_link_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_reservable_link_bandwidth() directly.

    YANG Description: This container defines sub-TLV 10.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=max_reservable_link_bandwidth.max_reservable_link_bandwidth,
                is_container="container",
                yang_name="max-reservable-link-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """max_reservable_link_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=max_reservable_link_bandwidth.max_reservable_link_bandwidth, is_container='container', yang_name="max-reservable-link-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__max_reservable_link_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_max_reservable_link_bandwidth(self):
        self.__max_reservable_link_bandwidth = YANGDynClass(
            base=max_reservable_link_bandwidth.max_reservable_link_bandwidth,
            is_container="container",
            yang_name="max-reservable-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_unreserved_bandwidth(self):
        """
    Getter method for unreserved_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unreserved_bandwidth (container)

    YANG Description: This container defines unreserved-bandwidth. The units are bytes
per second.
    """
        return self.__unreserved_bandwidth

    def _set_unreserved_bandwidth(self, v, load=False):
        """
    Setter method for unreserved_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unreserved_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unreserved_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unreserved_bandwidth() directly.

    YANG Description: This container defines unreserved-bandwidth. The units are bytes
per second.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=unreserved_bandwidth.unreserved_bandwidth,
                is_container="container",
                yang_name="unreserved-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """unreserved_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=unreserved_bandwidth.unreserved_bandwidth, is_container='container', yang_name="unreserved-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__unreserved_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_unreserved_bandwidth(self):
        self.__unreserved_bandwidth = YANGDynClass(
            base=unreserved_bandwidth.unreserved_bandwidth,
            is_container="container",
            yang_name="unreserved-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv6_interface_address(self):
        """
    Getter method for ipv6_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_interface_address (container)

    YANG Description: This container defines sub-TLV 12.
    """
        return self.__ipv6_interface_address

    def _set_ipv6_interface_address(self, v, load=False):
        """
    Setter method for ipv6_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_interface_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_interface_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_interface_address() directly.

    YANG Description: This container defines sub-TLV 12.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv6_interface_address.ipv6_interface_address,
                is_container="container",
                yang_name="ipv6-interface-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv6_interface_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv6_interface_address.ipv6_interface_address, is_container='container', yang_name="ipv6-interface-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv6_interface_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv6_interface_address(self):
        self.__ipv6_interface_address = YANGDynClass(
            base=ipv6_interface_address.ipv6_interface_address,
            is_container="container",
            yang_name="ipv6-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv6_neighbor_address(self):
        """
    Getter method for ipv6_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_neighbor_address (container)

    YANG Description: This container defines sub-TLV 13.
    """
        return self.__ipv6_neighbor_address

    def _set_ipv6_neighbor_address(self, v, load=False):
        """
    Setter method for ipv6_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_neighbor_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_neighbor_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_neighbor_address() directly.

    YANG Description: This container defines sub-TLV 13.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv6_neighbor_address.ipv6_neighbor_address,
                is_container="container",
                yang_name="ipv6-neighbor-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv6_neighbor_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv6_neighbor_address.ipv6_neighbor_address, is_container='container', yang_name="ipv6-neighbor-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv6_neighbor_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv6_neighbor_address(self):
        self.__ipv6_neighbor_address = YANGDynClass(
            base=ipv6_neighbor_address.ipv6_neighbor_address,
            is_container="container",
            yang_name="ipv6-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_extended_admin_group(self):
        """
    Getter method for extended_admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/extended_admin_group (container)

    YANG Description: This container defines sub-TLV 14.
    """
        return self.__extended_admin_group

    def _set_extended_admin_group(self, v, load=False):
        """
    Setter method for extended_admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/extended_admin_group (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_extended_admin_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_extended_admin_group() directly.

    YANG Description: This container defines sub-TLV 14.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=extended_admin_group.extended_admin_group,
                is_container="container",
                yang_name="extended-admin-group",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """extended_admin_group must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=extended_admin_group.extended_admin_group, is_container='container', yang_name="extended-admin-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__extended_admin_group = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_extended_admin_group(self):
        self.__extended_admin_group = YANGDynClass(
            base=extended_admin_group.extended_admin_group,
            is_container="container",
            yang_name="extended-admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_te_default_metric(self):
        """
    Getter method for te_default_metric, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/te_default_metric (container)

    YANG Description: This container defines sub-TLV 18.
    """
        return self.__te_default_metric

    def _set_te_default_metric(self, v, load=False):
        """
    Setter method for te_default_metric, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/te_default_metric (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_te_default_metric is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_te_default_metric() directly.

    YANG Description: This container defines sub-TLV 18.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=te_default_metric.te_default_metric,
                is_container="container",
                yang_name="te-default-metric",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """te_default_metric must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=te_default_metric.te_default_metric, is_container='container', yang_name="te-default-metric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__te_default_metric = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_te_default_metric(self):
        self.__te_default_metric = YANGDynClass(
            base=te_default_metric.te_default_metric,
            is_container="container",
            yang_name="te-default-metric",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_attributes(self):
        """
    Getter method for link_attributes, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_attributes (container)

    YANG Description: This container defines link-attributes.
    """
        return self.__link_attributes

    def _set_link_attributes(self, v, load=False):
        """
    Setter method for link_attributes, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_attributes (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_attributes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_attributes() directly.

    YANG Description: This container defines link-attributes.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_attributes.link_attributes,
                is_container="container",
                yang_name="link-attributes",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_attributes must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_attributes.link_attributes, is_container='container', yang_name="link-attributes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_attributes = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_attributes(self):
        self.__link_attributes = YANGDynClass(
            base=link_attributes.link_attributes,
            is_container="container",
            yang_name="link-attributes",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_protection_type(self):
        """
    Getter method for link_protection_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_protection_type (container)

    YANG Description: ISIS LSDB parameters relating to the type of link protection
offered.
    """
        return self.__link_protection_type

    def _set_link_protection_type(self, v, load=False):
        """
    Setter method for link_protection_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_protection_type (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_protection_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_protection_type() directly.

    YANG Description: ISIS LSDB parameters relating to the type of link protection
offered.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_protection_type.link_protection_type,
                is_container="container",
                yang_name="link-protection-type",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_protection_type must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_protection_type.link_protection_type, is_container='container', yang_name="link-protection-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_protection_type = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_protection_type(self):
        self.__link_protection_type = YANGDynClass(
            base=link_protection_type.link_protection_type,
            is_container="container",
            yang_name="link-protection-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_bandwidth_constraints(self):
        """
    Getter method for bandwidth_constraints, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/bandwidth_constraints (container)

    YANG Description: This container defines bandwidth-constraints. For DS-TE, the
existing Maximum Reservable link bandwidth parameter is retained,
but its semantics is generalized and interpreted as the aggregate
bandwidth constraint across all Class-Types
    """
        return self.__bandwidth_constraints

    def _set_bandwidth_constraints(self, v, load=False):
        """
    Setter method for bandwidth_constraints, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/bandwidth_constraints (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bandwidth_constraints is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bandwidth_constraints() directly.

    YANG Description: This container defines bandwidth-constraints. For DS-TE, the
existing Maximum Reservable link bandwidth parameter is retained,
but its semantics is generalized and interpreted as the aggregate
bandwidth constraint across all Class-Types
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=bandwidth_constraints.bandwidth_constraints,
                is_container="container",
                yang_name="bandwidth-constraints",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """bandwidth_constraints must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=bandwidth_constraints.bandwidth_constraints, is_container='container', yang_name="bandwidth-constraints", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__bandwidth_constraints = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_bandwidth_constraints(self):
        self.__bandwidth_constraints = YANGDynClass(
            base=bandwidth_constraints.bandwidth_constraints,
            is_container="container",
            yang_name="bandwidth-constraints",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_unconstrained_lsp(self):
        """
    Getter method for unconstrained_lsp, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unconstrained_lsp (container)

    YANG Description: This container defines sub-TLV 23.
    """
        return self.__unconstrained_lsp

    def _set_unconstrained_lsp(self, v, load=False):
        """
    Setter method for unconstrained_lsp, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unconstrained_lsp (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unconstrained_lsp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unconstrained_lsp() directly.

    YANG Description: This container defines sub-TLV 23.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=unconstrained_lsp.unconstrained_lsp,
                is_container="container",
                yang_name="unconstrained-lsp",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """unconstrained_lsp must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=unconstrained_lsp.unconstrained_lsp, is_container='container', yang_name="unconstrained-lsp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__unconstrained_lsp = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_unconstrained_lsp(self):
        self.__unconstrained_lsp = YANGDynClass(
            base=unconstrained_lsp.unconstrained_lsp,
            is_container="container",
            yang_name="unconstrained-lsp",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_adjacency_sid(self):
        """
    Getter method for adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/adjacency_sid (container)

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        return self.__adjacency_sid

    def _set_adjacency_sid(self, v, load=False):
        """
    Setter method for adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/adjacency_sid (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_adjacency_sid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_adjacency_sid() directly.

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=adjacency_sid.adjacency_sid,
                is_container="container",
                yang_name="adjacency-sid",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """adjacency_sid must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=adjacency_sid.adjacency_sid, is_container='container', yang_name="adjacency-sid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__adjacency_sid = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_adjacency_sid(self):
        self.__adjacency_sid = YANGDynClass(
            base=adjacency_sid.adjacency_sid,
            is_container="container",
            yang_name="adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_lan_adjacency_sid(self):
        """
    Getter method for lan_adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/lan_adjacency_sid (container)

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        return self.__lan_adjacency_sid

    def _set_lan_adjacency_sid(self, v, load=False):
        """
    Setter method for lan_adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/lan_adjacency_sid (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lan_adjacency_sid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lan_adjacency_sid() directly.

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=lan_adjacency_sid.lan_adjacency_sid,
                is_container="container",
                yang_name="lan-adjacency-sid",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """lan_adjacency_sid must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=lan_adjacency_sid.lan_adjacency_sid, is_container='container', yang_name="lan-adjacency-sid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__lan_adjacency_sid = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_lan_adjacency_sid(self):
        self.__lan_adjacency_sid = YANGDynClass(
            base=lan_adjacency_sid.lan_adjacency_sid,
            is_container="container",
            yang_name="lan-adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_delay(self):
        """
    Getter method for link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay (container)

    YANG Description: This container defines unidirectional link delay.
    """
        return self.__link_delay

    def _set_link_delay(self, v, load=False):
        """
    Setter method for link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_delay is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_delay() directly.

    YANG Description: This container defines unidirectional link delay.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_delay.link_delay,
                is_container="container",
                yang_name="link-delay",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_delay must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_delay.link_delay, is_container='container', yang_name="link-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_delay = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_delay(self):
        self.__link_delay = YANGDynClass(
            base=link_delay.link_delay,
            is_container="container",
            yang_name="link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_min_max_link_delay(self):
        """
    Getter method for min_max_link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/min_max_link_delay (container)

    YANG Description: This container defines min/max link delay.
    """
        return self.__min_max_link_delay

    def _set_min_max_link_delay(self, v, load=False):
        """
    Setter method for min_max_link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/min_max_link_delay (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_max_link_delay is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_max_link_delay() directly.

    YANG Description: This container defines min/max link delay.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=min_max_link_delay.min_max_link_delay,
                is_container="container",
                yang_name="min-max-link-delay",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """min_max_link_delay must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=min_max_link_delay.min_max_link_delay, is_container='container', yang_name="min-max-link-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__min_max_link_delay = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_min_max_link_delay(self):
        self.__min_max_link_delay = YANGDynClass(
            base=min_max_link_delay.min_max_link_delay,
            is_container="container",
            yang_name="min-max-link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_delay_variation(self):
        """
    Getter method for link_delay_variation, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay_variation (container)

    YANG Description: This container defines unidirectional link delay variation.
    """
        return self.__link_delay_variation

    def _set_link_delay_variation(self, v, load=False):
        """
    Setter method for link_delay_variation, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay_variation (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_delay_variation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_delay_variation() directly.

    YANG Description: This container defines unidirectional link delay variation.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_delay_variation.link_delay_variation,
                is_container="container",
                yang_name="link-delay-variation",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_delay_variation must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_delay_variation.link_delay_variation, is_container='container', yang_name="link-delay-variation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_delay_variation = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_delay_variation(self):
        self.__link_delay_variation = YANGDynClass(
            base=link_delay_variation.link_delay_variation,
            is_container="container",
            yang_name="link-delay-variation",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_loss(self):
        """
    Getter method for link_loss, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_loss (container)

    YANG Description: This container defines unidirectional link loss delay.
    """
        return self.__link_loss

    def _set_link_loss(self, v, load=False):
        """
    Setter method for link_loss, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_loss (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_loss is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_loss() directly.

    YANG Description: This container defines unidirectional link loss delay.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_loss.link_loss,
                is_container="container",
                yang_name="link-loss",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_loss must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_loss.link_loss, is_container='container', yang_name="link-loss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_loss = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_loss(self):
        self.__link_loss = YANGDynClass(
            base=link_loss.link_loss,
            is_container="container",
            yang_name="link-loss",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_residual_bandwidth(self):
        """
    Getter method for residual_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/residual_bandwidth (container)

    YANG Description: This container defines unidirectional residual bandwidth.
    """
        return self.__residual_bandwidth

    def _set_residual_bandwidth(self, v, load=False):
        """
    Setter method for residual_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/residual_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_residual_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_residual_bandwidth() directly.

    YANG Description: This container defines unidirectional residual bandwidth.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=residual_bandwidth.residual_bandwidth,
                is_container="container",
                yang_name="residual-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """residual_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=residual_bandwidth.residual_bandwidth, is_container='container', yang_name="residual-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__residual_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_residual_bandwidth(self):
        self.__residual_bandwidth = YANGDynClass(
            base=residual_bandwidth.residual_bandwidth,
            is_container="container",
            yang_name="residual-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_available_bandwidth(self):
        """
    Getter method for available_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/available_bandwidth (container)

    YANG Description: This container defines unidirectional lavailable bandwidth.
    """
        return self.__available_bandwidth

    def _set_available_bandwidth(self, v, load=False):
        """
    Setter method for available_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/available_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_available_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_available_bandwidth() directly.

    YANG Description: This container defines unidirectional lavailable bandwidth.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=available_bandwidth.available_bandwidth,
                is_container="container",
                yang_name="available-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """available_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=available_bandwidth.available_bandwidth, is_container='container', yang_name="available-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__available_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_available_bandwidth(self):
        self.__available_bandwidth = YANGDynClass(
            base=available_bandwidth.available_bandwidth,
            is_container="container",
            yang_name="available-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_utilized_bandwidth(self):
        """
    Getter method for utilized_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/utilized_bandwidth (container)

    YANG Description: This container defines unidirectional utilized bandwidth.
    """
        return self.__utilized_bandwidth

    def _set_utilized_bandwidth(self, v, load=False):
        """
    Setter method for utilized_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/utilized_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_utilized_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_utilized_bandwidth() directly.

    YANG Description: This container defines unidirectional utilized bandwidth.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=utilized_bandwidth.utilized_bandwidth,
                is_container="container",
                yang_name="utilized-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """utilized_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=utilized_bandwidth.utilized_bandwidth, is_container='container', yang_name="utilized-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__utilized_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_utilized_bandwidth(self):
        self.__utilized_bandwidth = YANGDynClass(
            base=utilized_bandwidth.utilized_bandwidth,
            is_container="container",
            yang_name="utilized-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    subtlv_type = __builtin__.property(_get_subtlv_type)
    state = __builtin__.property(_get_state)
    admin_group = __builtin__.property(_get_admin_group)
    ipv4_interface_address = __builtin__.property(_get_ipv4_interface_address)
    ipv4_neighbor_address = __builtin__.property(_get_ipv4_neighbor_address)
    max_link_bandwidth = __builtin__.property(_get_max_link_bandwidth)
    max_reservable_link_bandwidth = __builtin__.property(
        _get_max_reservable_link_bandwidth
    )
    unreserved_bandwidth = __builtin__.property(_get_unreserved_bandwidth)
    ipv6_interface_address = __builtin__.property(_get_ipv6_interface_address)
    ipv6_neighbor_address = __builtin__.property(_get_ipv6_neighbor_address)
    extended_admin_group = __builtin__.property(_get_extended_admin_group)
    te_default_metric = __builtin__.property(_get_te_default_metric)
    link_attributes = __builtin__.property(_get_link_attributes)
    link_protection_type = __builtin__.property(_get_link_protection_type)
    bandwidth_constraints = __builtin__.property(_get_bandwidth_constraints)
    unconstrained_lsp = __builtin__.property(_get_unconstrained_lsp)
    adjacency_sid = __builtin__.property(_get_adjacency_sid)
    lan_adjacency_sid = __builtin__.property(_get_lan_adjacency_sid)
    link_delay = __builtin__.property(_get_link_delay)
    min_max_link_delay = __builtin__.property(_get_min_max_link_delay)
    link_delay_variation = __builtin__.property(_get_link_delay_variation)
    link_loss = __builtin__.property(_get_link_loss)
    residual_bandwidth = __builtin__.property(_get_residual_bandwidth)
    available_bandwidth = __builtin__.property(_get_available_bandwidth)
    utilized_bandwidth = __builtin__.property(_get_utilized_bandwidth)

    _pyangbind_elements = OrderedDict(
        [
            ("subtlv_type", subtlv_type),
            ("state", state),
            ("admin_group", admin_group),
            ("ipv4_interface_address", ipv4_interface_address),
            ("ipv4_neighbor_address", ipv4_neighbor_address),
            ("max_link_bandwidth", max_link_bandwidth),
            ("max_reservable_link_bandwidth", max_reservable_link_bandwidth),
            ("unreserved_bandwidth", unreserved_bandwidth),
            ("ipv6_interface_address", ipv6_interface_address),
            ("ipv6_neighbor_address", ipv6_neighbor_address),
            ("extended_admin_group", extended_admin_group),
            ("te_default_metric", te_default_metric),
            ("link_attributes", link_attributes),
            ("link_protection_type", link_protection_type),
            ("bandwidth_constraints", bandwidth_constraints),
            ("unconstrained_lsp", unconstrained_lsp),
            ("adjacency_sid", adjacency_sid),
            ("lan_adjacency_sid", lan_adjacency_sid),
            ("link_delay", link_delay),
            ("min_max_link_delay", min_max_link_delay),
            ("link_delay_variation", link_delay_variation),
            ("link_loss", link_loss),
            ("residual_bandwidth", residual_bandwidth),
            ("available_bandwidth", available_bandwidth),
            ("utilized_bandwidth", utilized_bandwidth),
        ]
    )


from . import state
from . import admin_group
from . import ipv4_interface_address
from . import ipv4_neighbor_address
from . import max_link_bandwidth
from . import max_reservable_link_bandwidth
from . import unreserved_bandwidth
from . import ipv6_interface_address
from . import ipv6_neighbor_address
from . import extended_admin_group
from . import te_default_metric
from . import link_attributes
from . import link_protection_type
from . import bandwidth_constraints
from . import unconstrained_lsp
from . import adjacency_sid
from . import lan_adjacency_sid
from . import link_delay
from . import min_max_link_delay
from . import link_delay_variation
from . import link_loss
from . import residual_bandwidth
from . import available_bandwidth
from . import utilized_bandwidth


class subTLVs(PybindBase):
    """
  This class was auto-generated by the PythonClass plugin for PYANG
  from YANG module openconfig-network-instance-l2 - based on the path /network-instances/network-instance/protocols/protocol/isis/levels/level/link-state-database/lsp/tlvs/tlv/mt-isn/neighbors/neighbor/subTLVs/subTLVs. Each member element of
  the container is represented as a class variable - with a specific
  YANG type.

  YANG Description: List of subTLV types in the LSDB for the specified TLV.
  """
    __slots__ = (
        "_path_helper",
        "_extmethods",
        "__subtlv_type",
        "__state",
        "__admin_group",
        "__ipv4_interface_address",
        "__ipv4_neighbor_address",
        "__max_link_bandwidth",
        "__max_reservable_link_bandwidth",
        "__unreserved_bandwidth",
        "__ipv6_interface_address",
        "__ipv6_neighbor_address",
        "__extended_admin_group",
        "__te_default_metric",
        "__link_attributes",
        "__link_protection_type",
        "__bandwidth_constraints",
        "__unconstrained_lsp",
        "__adjacency_sid",
        "__lan_adjacency_sid",
        "__link_delay",
        "__min_max_link_delay",
        "__link_delay_variation",
        "__link_loss",
        "__residual_bandwidth",
        "__available_bandwidth",
        "__utilized_bandwidth",
    )

    _yang_name = "subTLVs"

    _pybind_generated_by = "container"

    def __init__(self, *args, **kwargs):

        self._path_helper = False

        self._extmethods = False
        self.__subtlv_type = YANGDynClass(
            base=six.text_type,
            is_leaf=True,
            yang_name="subtlv-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            is_keyval=True,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="leafref",
            is_config=False,
        )
        self.__state = YANGDynClass(
            base=state.state,
            is_container="container",
            yang_name="state",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__admin_group = YANGDynClass(
            base=admin_group.admin_group,
            is_container="container",
            yang_name="admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv4_interface_address = YANGDynClass(
            base=ipv4_interface_address.ipv4_interface_address,
            is_container="container",
            yang_name="ipv4-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv4_neighbor_address = YANGDynClass(
            base=ipv4_neighbor_address.ipv4_neighbor_address,
            is_container="container",
            yang_name="ipv4-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__max_link_bandwidth = YANGDynClass(
            base=max_link_bandwidth.max_link_bandwidth,
            is_container="container",
            yang_name="max-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__max_reservable_link_bandwidth = YANGDynClass(
            base=max_reservable_link_bandwidth.max_reservable_link_bandwidth,
            is_container="container",
            yang_name="max-reservable-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__unreserved_bandwidth = YANGDynClass(
            base=unreserved_bandwidth.unreserved_bandwidth,
            is_container="container",
            yang_name="unreserved-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv6_interface_address = YANGDynClass(
            base=ipv6_interface_address.ipv6_interface_address,
            is_container="container",
            yang_name="ipv6-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__ipv6_neighbor_address = YANGDynClass(
            base=ipv6_neighbor_address.ipv6_neighbor_address,
            is_container="container",
            yang_name="ipv6-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__extended_admin_group = YANGDynClass(
            base=extended_admin_group.extended_admin_group,
            is_container="container",
            yang_name="extended-admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__te_default_metric = YANGDynClass(
            base=te_default_metric.te_default_metric,
            is_container="container",
            yang_name="te-default-metric",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_attributes = YANGDynClass(
            base=link_attributes.link_attributes,
            is_container="container",
            yang_name="link-attributes",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_protection_type = YANGDynClass(
            base=link_protection_type.link_protection_type,
            is_container="container",
            yang_name="link-protection-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__bandwidth_constraints = YANGDynClass(
            base=bandwidth_constraints.bandwidth_constraints,
            is_container="container",
            yang_name="bandwidth-constraints",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__unconstrained_lsp = YANGDynClass(
            base=unconstrained_lsp.unconstrained_lsp,
            is_container="container",
            yang_name="unconstrained-lsp",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__adjacency_sid = YANGDynClass(
            base=adjacency_sid.adjacency_sid,
            is_container="container",
            yang_name="adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__lan_adjacency_sid = YANGDynClass(
            base=lan_adjacency_sid.lan_adjacency_sid,
            is_container="container",
            yang_name="lan-adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_delay = YANGDynClass(
            base=link_delay.link_delay,
            is_container="container",
            yang_name="link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__min_max_link_delay = YANGDynClass(
            base=min_max_link_delay.min_max_link_delay,
            is_container="container",
            yang_name="min-max-link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_delay_variation = YANGDynClass(
            base=link_delay_variation.link_delay_variation,
            is_container="container",
            yang_name="link-delay-variation",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__link_loss = YANGDynClass(
            base=link_loss.link_loss,
            is_container="container",
            yang_name="link-loss",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__residual_bandwidth = YANGDynClass(
            base=residual_bandwidth.residual_bandwidth,
            is_container="container",
            yang_name="residual-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__available_bandwidth = YANGDynClass(
            base=available_bandwidth.available_bandwidth,
            is_container="container",
            yang_name="available-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )
        self.__utilized_bandwidth = YANGDynClass(
            base=utilized_bandwidth.utilized_bandwidth,
            is_container="container",
            yang_name="utilized-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

        load = kwargs.pop("load", None)
        if args:
            if len(args) > 1:
                raise TypeError("cannot create a YANG container with >1 argument")
            all_attr = True
            for e in self._pyangbind_elements:
                if not hasattr(args[0], e):
                    all_attr = False
                    break
            if not all_attr:
                raise ValueError("Supplied object did not have the correct attributes")
            for e in self._pyangbind_elements:
                nobj = getattr(args[0], e)
                if nobj._changed() is False:
                    continue
                setmethod = getattr(self, "_set_%s" % e)
                if load is None:
                    setmethod(getattr(args[0], e))
                else:
                    setmethod(getattr(args[0], e), load=load)

    def _path(self):
        if hasattr(self, "_parent"):
            return self._parent._path() + [self._yang_name]
        else:
            return [
                "network-instances",
                "network-instance",
                "protocols",
                "protocol",
                "isis",
                "levels",
                "level",
                "link-state-database",
                "lsp",
                "tlvs",
                "tlv",
                "mt-isn",
                "neighbors",
                "neighbor",
                "subTLVs",
                "subTLVs",
            ]

    def _get_subtlv_type(self):
        """
    Getter method for subtlv_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/subtlv_type (leafref)

    YANG Description: A reference for the TLV type being described within
the LSDB
    """
        return self.__subtlv_type

    def _set_subtlv_type(self, v, load=False):
        """
    Setter method for subtlv_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/subtlv_type (leafref)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_subtlv_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_subtlv_type() directly.

    YANG Description: A reference for the TLV type being described within
the LSDB
    """
        parent = getattr(self, "_parent", None)
        if parent is not None and load is False:
            raise AttributeError(
                "Cannot set keys directly when" + " within an instantiated list"
            )

        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=six.text_type,
                is_leaf=True,
                yang_name="subtlv-type",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                is_keyval=True,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="leafref",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """subtlv_type must be of a type compatible with leafref""",
                    "defined-type": "leafref",
                    "generated-type": """YANGDynClass(base=six.text_type, is_leaf=True, yang_name="subtlv-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, is_keyval=True, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='leafref', is_config=False)""",
                }
            )

        self.__subtlv_type = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_subtlv_type(self):
        self.__subtlv_type = YANGDynClass(
            base=six.text_type,
            is_leaf=True,
            yang_name="subtlv-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            is_keyval=True,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="leafref",
            is_config=False,
        )

    def _get_state(self):
        """
    Getter method for state, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/state (container)

    YANG Description: State parameters of IS neighbor state
    """
        return self.__state

    def _set_state(self, v, load=False):
        """
    Setter method for state, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/state (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_state is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_state() directly.

    YANG Description: State parameters of IS neighbor state
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=state.state,
                is_container="container",
                yang_name="state",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """state must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=state.state, is_container='container', yang_name="state", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__state = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_state(self):
        self.__state = YANGDynClass(
            base=state.state,
            is_container="container",
            yang_name="state",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_admin_group(self):
        """
    Getter method for admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/admin_group (container)

    YANG Description: This container defines sub-TLV 3.
    """
        return self.__admin_group

    def _set_admin_group(self, v, load=False):
        """
    Setter method for admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/admin_group (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_admin_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_admin_group() directly.

    YANG Description: This container defines sub-TLV 3.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=admin_group.admin_group,
                is_container="container",
                yang_name="admin-group",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """admin_group must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=admin_group.admin_group, is_container='container', yang_name="admin-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__admin_group = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_admin_group(self):
        self.__admin_group = YANGDynClass(
            base=admin_group.admin_group,
            is_container="container",
            yang_name="admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv4_interface_address(self):
        """
    Getter method for ipv4_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_interface_address (container)

    YANG Description: This container defines sub-TLV 6.
    """
        return self.__ipv4_interface_address

    def _set_ipv4_interface_address(self, v, load=False):
        """
    Setter method for ipv4_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_interface_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_interface_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_interface_address() directly.

    YANG Description: This container defines sub-TLV 6.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv4_interface_address.ipv4_interface_address,
                is_container="container",
                yang_name="ipv4-interface-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv4_interface_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv4_interface_address.ipv4_interface_address, is_container='container', yang_name="ipv4-interface-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv4_interface_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv4_interface_address(self):
        self.__ipv4_interface_address = YANGDynClass(
            base=ipv4_interface_address.ipv4_interface_address,
            is_container="container",
            yang_name="ipv4-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv4_neighbor_address(self):
        """
    Getter method for ipv4_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_neighbor_address (container)

    YANG Description: This container defines sub-TLV 8.
    """
        return self.__ipv4_neighbor_address

    def _set_ipv4_neighbor_address(self, v, load=False):
        """
    Setter method for ipv4_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv4_neighbor_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv4_neighbor_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv4_neighbor_address() directly.

    YANG Description: This container defines sub-TLV 8.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv4_neighbor_address.ipv4_neighbor_address,
                is_container="container",
                yang_name="ipv4-neighbor-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv4_neighbor_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv4_neighbor_address.ipv4_neighbor_address, is_container='container', yang_name="ipv4-neighbor-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv4_neighbor_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv4_neighbor_address(self):
        self.__ipv4_neighbor_address = YANGDynClass(
            base=ipv4_neighbor_address.ipv4_neighbor_address,
            is_container="container",
            yang_name="ipv4-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_max_link_bandwidth(self):
        """
    Getter method for max_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_link_bandwidth (container)

    YANG Description: This container defines sub-TLV 9.
    """
        return self.__max_link_bandwidth

    def _set_max_link_bandwidth(self, v, load=False):
        """
    Setter method for max_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_link_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_link_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_link_bandwidth() directly.

    YANG Description: This container defines sub-TLV 9.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=max_link_bandwidth.max_link_bandwidth,
                is_container="container",
                yang_name="max-link-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """max_link_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=max_link_bandwidth.max_link_bandwidth, is_container='container', yang_name="max-link-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__max_link_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_max_link_bandwidth(self):
        self.__max_link_bandwidth = YANGDynClass(
            base=max_link_bandwidth.max_link_bandwidth,
            is_container="container",
            yang_name="max-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_max_reservable_link_bandwidth(self):
        """
    Getter method for max_reservable_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_reservable_link_bandwidth (container)

    YANG Description: This container defines sub-TLV 10.
    """
        return self.__max_reservable_link_bandwidth

    def _set_max_reservable_link_bandwidth(self, v, load=False):
        """
    Setter method for max_reservable_link_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/max_reservable_link_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_max_reservable_link_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_max_reservable_link_bandwidth() directly.

    YANG Description: This container defines sub-TLV 10.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=max_reservable_link_bandwidth.max_reservable_link_bandwidth,
                is_container="container",
                yang_name="max-reservable-link-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """max_reservable_link_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=max_reservable_link_bandwidth.max_reservable_link_bandwidth, is_container='container', yang_name="max-reservable-link-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__max_reservable_link_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_max_reservable_link_bandwidth(self):
        self.__max_reservable_link_bandwidth = YANGDynClass(
            base=max_reservable_link_bandwidth.max_reservable_link_bandwidth,
            is_container="container",
            yang_name="max-reservable-link-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_unreserved_bandwidth(self):
        """
    Getter method for unreserved_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unreserved_bandwidth (container)

    YANG Description: This container defines unreserved-bandwidth. The units are bytes
per second.
    """
        return self.__unreserved_bandwidth

    def _set_unreserved_bandwidth(self, v, load=False):
        """
    Setter method for unreserved_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unreserved_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unreserved_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unreserved_bandwidth() directly.

    YANG Description: This container defines unreserved-bandwidth. The units are bytes
per second.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=unreserved_bandwidth.unreserved_bandwidth,
                is_container="container",
                yang_name="unreserved-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """unreserved_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=unreserved_bandwidth.unreserved_bandwidth, is_container='container', yang_name="unreserved-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__unreserved_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_unreserved_bandwidth(self):
        self.__unreserved_bandwidth = YANGDynClass(
            base=unreserved_bandwidth.unreserved_bandwidth,
            is_container="container",
            yang_name="unreserved-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv6_interface_address(self):
        """
    Getter method for ipv6_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_interface_address (container)

    YANG Description: This container defines sub-TLV 12.
    """
        return self.__ipv6_interface_address

    def _set_ipv6_interface_address(self, v, load=False):
        """
    Setter method for ipv6_interface_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_interface_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_interface_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_interface_address() directly.

    YANG Description: This container defines sub-TLV 12.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv6_interface_address.ipv6_interface_address,
                is_container="container",
                yang_name="ipv6-interface-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv6_interface_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv6_interface_address.ipv6_interface_address, is_container='container', yang_name="ipv6-interface-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv6_interface_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv6_interface_address(self):
        self.__ipv6_interface_address = YANGDynClass(
            base=ipv6_interface_address.ipv6_interface_address,
            is_container="container",
            yang_name="ipv6-interface-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_ipv6_neighbor_address(self):
        """
    Getter method for ipv6_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_neighbor_address (container)

    YANG Description: This container defines sub-TLV 13.
    """
        return self.__ipv6_neighbor_address

    def _set_ipv6_neighbor_address(self, v, load=False):
        """
    Setter method for ipv6_neighbor_address, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/ipv6_neighbor_address (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_ipv6_neighbor_address is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_ipv6_neighbor_address() directly.

    YANG Description: This container defines sub-TLV 13.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=ipv6_neighbor_address.ipv6_neighbor_address,
                is_container="container",
                yang_name="ipv6-neighbor-address",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """ipv6_neighbor_address must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=ipv6_neighbor_address.ipv6_neighbor_address, is_container='container', yang_name="ipv6-neighbor-address", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__ipv6_neighbor_address = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_ipv6_neighbor_address(self):
        self.__ipv6_neighbor_address = YANGDynClass(
            base=ipv6_neighbor_address.ipv6_neighbor_address,
            is_container="container",
            yang_name="ipv6-neighbor-address",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_extended_admin_group(self):
        """
    Getter method for extended_admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/extended_admin_group (container)

    YANG Description: This container defines sub-TLV 14.
    """
        return self.__extended_admin_group

    def _set_extended_admin_group(self, v, load=False):
        """
    Setter method for extended_admin_group, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/extended_admin_group (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_extended_admin_group is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_extended_admin_group() directly.

    YANG Description: This container defines sub-TLV 14.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=extended_admin_group.extended_admin_group,
                is_container="container",
                yang_name="extended-admin-group",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """extended_admin_group must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=extended_admin_group.extended_admin_group, is_container='container', yang_name="extended-admin-group", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__extended_admin_group = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_extended_admin_group(self):
        self.__extended_admin_group = YANGDynClass(
            base=extended_admin_group.extended_admin_group,
            is_container="container",
            yang_name="extended-admin-group",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_te_default_metric(self):
        """
    Getter method for te_default_metric, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/te_default_metric (container)

    YANG Description: This container defines sub-TLV 18.
    """
        return self.__te_default_metric

    def _set_te_default_metric(self, v, load=False):
        """
    Setter method for te_default_metric, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/te_default_metric (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_te_default_metric is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_te_default_metric() directly.

    YANG Description: This container defines sub-TLV 18.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=te_default_metric.te_default_metric,
                is_container="container",
                yang_name="te-default-metric",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """te_default_metric must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=te_default_metric.te_default_metric, is_container='container', yang_name="te-default-metric", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__te_default_metric = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_te_default_metric(self):
        self.__te_default_metric = YANGDynClass(
            base=te_default_metric.te_default_metric,
            is_container="container",
            yang_name="te-default-metric",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_attributes(self):
        """
    Getter method for link_attributes, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_attributes (container)

    YANG Description: This container defines link-attributes.
    """
        return self.__link_attributes

    def _set_link_attributes(self, v, load=False):
        """
    Setter method for link_attributes, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_attributes (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_attributes is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_attributes() directly.

    YANG Description: This container defines link-attributes.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_attributes.link_attributes,
                is_container="container",
                yang_name="link-attributes",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_attributes must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_attributes.link_attributes, is_container='container', yang_name="link-attributes", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_attributes = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_attributes(self):
        self.__link_attributes = YANGDynClass(
            base=link_attributes.link_attributes,
            is_container="container",
            yang_name="link-attributes",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_protection_type(self):
        """
    Getter method for link_protection_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_protection_type (container)

    YANG Description: ISIS LSDB parameters relating to the type of link protection
offered.
    """
        return self.__link_protection_type

    def _set_link_protection_type(self, v, load=False):
        """
    Setter method for link_protection_type, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_protection_type (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_protection_type is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_protection_type() directly.

    YANG Description: ISIS LSDB parameters relating to the type of link protection
offered.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_protection_type.link_protection_type,
                is_container="container",
                yang_name="link-protection-type",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_protection_type must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_protection_type.link_protection_type, is_container='container', yang_name="link-protection-type", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_protection_type = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_protection_type(self):
        self.__link_protection_type = YANGDynClass(
            base=link_protection_type.link_protection_type,
            is_container="container",
            yang_name="link-protection-type",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_bandwidth_constraints(self):
        """
    Getter method for bandwidth_constraints, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/bandwidth_constraints (container)

    YANG Description: This container defines bandwidth-constraints. For DS-TE, the
existing Maximum Reservable link bandwidth parameter is retained,
but its semantics is generalized and interpreted as the aggregate
bandwidth constraint across all Class-Types
    """
        return self.__bandwidth_constraints

    def _set_bandwidth_constraints(self, v, load=False):
        """
    Setter method for bandwidth_constraints, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/bandwidth_constraints (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_bandwidth_constraints is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_bandwidth_constraints() directly.

    YANG Description: This container defines bandwidth-constraints. For DS-TE, the
existing Maximum Reservable link bandwidth parameter is retained,
but its semantics is generalized and interpreted as the aggregate
bandwidth constraint across all Class-Types
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=bandwidth_constraints.bandwidth_constraints,
                is_container="container",
                yang_name="bandwidth-constraints",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """bandwidth_constraints must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=bandwidth_constraints.bandwidth_constraints, is_container='container', yang_name="bandwidth-constraints", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__bandwidth_constraints = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_bandwidth_constraints(self):
        self.__bandwidth_constraints = YANGDynClass(
            base=bandwidth_constraints.bandwidth_constraints,
            is_container="container",
            yang_name="bandwidth-constraints",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_unconstrained_lsp(self):
        """
    Getter method for unconstrained_lsp, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unconstrained_lsp (container)

    YANG Description: This container defines sub-TLV 23.
    """
        return self.__unconstrained_lsp

    def _set_unconstrained_lsp(self, v, load=False):
        """
    Setter method for unconstrained_lsp, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/unconstrained_lsp (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_unconstrained_lsp is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_unconstrained_lsp() directly.

    YANG Description: This container defines sub-TLV 23.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=unconstrained_lsp.unconstrained_lsp,
                is_container="container",
                yang_name="unconstrained-lsp",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """unconstrained_lsp must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=unconstrained_lsp.unconstrained_lsp, is_container='container', yang_name="unconstrained-lsp", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__unconstrained_lsp = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_unconstrained_lsp(self):
        self.__unconstrained_lsp = YANGDynClass(
            base=unconstrained_lsp.unconstrained_lsp,
            is_container="container",
            yang_name="unconstrained-lsp",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_adjacency_sid(self):
        """
    Getter method for adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/adjacency_sid (container)

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        return self.__adjacency_sid

    def _set_adjacency_sid(self, v, load=False):
        """
    Setter method for adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/adjacency_sid (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_adjacency_sid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_adjacency_sid() directly.

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=adjacency_sid.adjacency_sid,
                is_container="container",
                yang_name="adjacency-sid",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """adjacency_sid must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=adjacency_sid.adjacency_sid, is_container='container', yang_name="adjacency-sid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__adjacency_sid = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_adjacency_sid(self):
        self.__adjacency_sid = YANGDynClass(
            base=adjacency_sid.adjacency_sid,
            is_container="container",
            yang_name="adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_lan_adjacency_sid(self):
        """
    Getter method for lan_adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/lan_adjacency_sid (container)

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        return self.__lan_adjacency_sid

    def _set_lan_adjacency_sid(self, v, load=False):
        """
    Setter method for lan_adjacency_sid, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/lan_adjacency_sid (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_lan_adjacency_sid is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_lan_adjacency_sid() directly.

    YANG Description: This container defines segment routing extensions for prefixes.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=lan_adjacency_sid.lan_adjacency_sid,
                is_container="container",
                yang_name="lan-adjacency-sid",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """lan_adjacency_sid must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=lan_adjacency_sid.lan_adjacency_sid, is_container='container', yang_name="lan-adjacency-sid", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__lan_adjacency_sid = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_lan_adjacency_sid(self):
        self.__lan_adjacency_sid = YANGDynClass(
            base=lan_adjacency_sid.lan_adjacency_sid,
            is_container="container",
            yang_name="lan-adjacency-sid",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_delay(self):
        """
    Getter method for link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay (container)

    YANG Description: This container defines unidirectional link delay.
    """
        return self.__link_delay

    def _set_link_delay(self, v, load=False):
        """
    Setter method for link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_delay is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_delay() directly.

    YANG Description: This container defines unidirectional link delay.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_delay.link_delay,
                is_container="container",
                yang_name="link-delay",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_delay must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_delay.link_delay, is_container='container', yang_name="link-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_delay = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_delay(self):
        self.__link_delay = YANGDynClass(
            base=link_delay.link_delay,
            is_container="container",
            yang_name="link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_min_max_link_delay(self):
        """
    Getter method for min_max_link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/min_max_link_delay (container)

    YANG Description: This container defines min/max link delay.
    """
        return self.__min_max_link_delay

    def _set_min_max_link_delay(self, v, load=False):
        """
    Setter method for min_max_link_delay, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/min_max_link_delay (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_min_max_link_delay is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_min_max_link_delay() directly.

    YANG Description: This container defines min/max link delay.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=min_max_link_delay.min_max_link_delay,
                is_container="container",
                yang_name="min-max-link-delay",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """min_max_link_delay must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=min_max_link_delay.min_max_link_delay, is_container='container', yang_name="min-max-link-delay", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__min_max_link_delay = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_min_max_link_delay(self):
        self.__min_max_link_delay = YANGDynClass(
            base=min_max_link_delay.min_max_link_delay,
            is_container="container",
            yang_name="min-max-link-delay",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_delay_variation(self):
        """
    Getter method for link_delay_variation, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay_variation (container)

    YANG Description: This container defines unidirectional link delay variation.
    """
        return self.__link_delay_variation

    def _set_link_delay_variation(self, v, load=False):
        """
    Setter method for link_delay_variation, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_delay_variation (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_delay_variation is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_delay_variation() directly.

    YANG Description: This container defines unidirectional link delay variation.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_delay_variation.link_delay_variation,
                is_container="container",
                yang_name="link-delay-variation",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_delay_variation must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_delay_variation.link_delay_variation, is_container='container', yang_name="link-delay-variation", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_delay_variation = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_delay_variation(self):
        self.__link_delay_variation = YANGDynClass(
            base=link_delay_variation.link_delay_variation,
            is_container="container",
            yang_name="link-delay-variation",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_link_loss(self):
        """
    Getter method for link_loss, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_loss (container)

    YANG Description: This container defines unidirectional link loss delay.
    """
        return self.__link_loss

    def _set_link_loss(self, v, load=False):
        """
    Setter method for link_loss, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/link_loss (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_link_loss is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_link_loss() directly.

    YANG Description: This container defines unidirectional link loss delay.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=link_loss.link_loss,
                is_container="container",
                yang_name="link-loss",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """link_loss must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=link_loss.link_loss, is_container='container', yang_name="link-loss", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__link_loss = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_link_loss(self):
        self.__link_loss = YANGDynClass(
            base=link_loss.link_loss,
            is_container="container",
            yang_name="link-loss",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_residual_bandwidth(self):
        """
    Getter method for residual_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/residual_bandwidth (container)

    YANG Description: This container defines unidirectional residual bandwidth.
    """
        return self.__residual_bandwidth

    def _set_residual_bandwidth(self, v, load=False):
        """
    Setter method for residual_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/residual_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_residual_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_residual_bandwidth() directly.

    YANG Description: This container defines unidirectional residual bandwidth.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=residual_bandwidth.residual_bandwidth,
                is_container="container",
                yang_name="residual-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """residual_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=residual_bandwidth.residual_bandwidth, is_container='container', yang_name="residual-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__residual_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_residual_bandwidth(self):
        self.__residual_bandwidth = YANGDynClass(
            base=residual_bandwidth.residual_bandwidth,
            is_container="container",
            yang_name="residual-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_available_bandwidth(self):
        """
    Getter method for available_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/available_bandwidth (container)

    YANG Description: This container defines unidirectional lavailable bandwidth.
    """
        return self.__available_bandwidth

    def _set_available_bandwidth(self, v, load=False):
        """
    Setter method for available_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/available_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_available_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_available_bandwidth() directly.

    YANG Description: This container defines unidirectional lavailable bandwidth.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=available_bandwidth.available_bandwidth,
                is_container="container",
                yang_name="available-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """available_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=available_bandwidth.available_bandwidth, is_container='container', yang_name="available-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__available_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_available_bandwidth(self):
        self.__available_bandwidth = YANGDynClass(
            base=available_bandwidth.available_bandwidth,
            is_container="container",
            yang_name="available-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    def _get_utilized_bandwidth(self):
        """
    Getter method for utilized_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/utilized_bandwidth (container)

    YANG Description: This container defines unidirectional utilized bandwidth.
    """
        return self.__utilized_bandwidth

    def _set_utilized_bandwidth(self, v, load=False):
        """
    Setter method for utilized_bandwidth, mapped from YANG variable /network_instances/network_instance/protocols/protocol/isis/levels/level/link_state_database/lsp/tlvs/tlv/mt_isn/neighbors/neighbor/subTLVs/subTLVs/utilized_bandwidth (container)
    If this variable is read-only (config: false) in the
    source YANG file, then _set_utilized_bandwidth is considered as a private
    method. Backends looking to populate this variable should
    do so via calling thisObj._set_utilized_bandwidth() directly.

    YANG Description: This container defines unidirectional utilized bandwidth.
    """
        if hasattr(v, "_utype"):
            v = v._utype(v)
        try:
            t = YANGDynClass(
                v,
                base=utilized_bandwidth.utilized_bandwidth,
                is_container="container",
                yang_name="utilized-bandwidth",
                parent=self,
                path_helper=self._path_helper,
                extmethods=self._extmethods,
                register_paths=True,
                extensions=None,
                namespace="http://openconfig.net/yang/network-instance",
                defining_module="openconfig-network-instance",
                yang_type="container",
                is_config=False,
            )
        except (TypeError, ValueError):
            raise ValueError(
                {
                    "error-string": """utilized_bandwidth must be of a type compatible with container""",
                    "defined-type": "container",
                    "generated-type": """YANGDynClass(base=utilized_bandwidth.utilized_bandwidth, is_container='container', yang_name="utilized-bandwidth", parent=self, path_helper=self._path_helper, extmethods=self._extmethods, register_paths=True, extensions=None, namespace='http://openconfig.net/yang/network-instance', defining_module='openconfig-network-instance', yang_type='container', is_config=False)""",
                }
            )

        self.__utilized_bandwidth = t
        if hasattr(self, "_set"):
            self._set()

    def _unset_utilized_bandwidth(self):
        self.__utilized_bandwidth = YANGDynClass(
            base=utilized_bandwidth.utilized_bandwidth,
            is_container="container",
            yang_name="utilized-bandwidth",
            parent=self,
            path_helper=self._path_helper,
            extmethods=self._extmethods,
            register_paths=True,
            extensions=None,
            namespace="http://openconfig.net/yang/network-instance",
            defining_module="openconfig-network-instance",
            yang_type="container",
            is_config=False,
        )

    subtlv_type = __builtin__.property(_get_subtlv_type)
    state = __builtin__.property(_get_state)
    admin_group = __builtin__.property(_get_admin_group)
    ipv4_interface_address = __builtin__.property(_get_ipv4_interface_address)
    ipv4_neighbor_address = __builtin__.property(_get_ipv4_neighbor_address)
    max_link_bandwidth = __builtin__.property(_get_max_link_bandwidth)
    max_reservable_link_bandwidth = __builtin__.property(
        _get_max_reservable_link_bandwidth
    )
    unreserved_bandwidth = __builtin__.property(_get_unreserved_bandwidth)
    ipv6_interface_address = __builtin__.property(_get_ipv6_interface_address)
    ipv6_neighbor_address = __builtin__.property(_get_ipv6_neighbor_address)
    extended_admin_group = __builtin__.property(_get_extended_admin_group)
    te_default_metric = __builtin__.property(_get_te_default_metric)
    link_attributes = __builtin__.property(_get_link_attributes)
    link_protection_type = __builtin__.property(_get_link_protection_type)
    bandwidth_constraints = __builtin__.property(_get_bandwidth_constraints)
    unconstrained_lsp = __builtin__.property(_get_unconstrained_lsp)
    adjacency_sid = __builtin__.property(_get_adjacency_sid)
    lan_adjacency_sid = __builtin__.property(_get_lan_adjacency_sid)
    link_delay = __builtin__.property(_get_link_delay)
    min_max_link_delay = __builtin__.property(_get_min_max_link_delay)
    link_delay_variation = __builtin__.property(_get_link_delay_variation)
    link_loss = __builtin__.property(_get_link_loss)
    residual_bandwidth = __builtin__.property(_get_residual_bandwidth)
    available_bandwidth = __builtin__.property(_get_available_bandwidth)
    utilized_bandwidth = __builtin__.property(_get_utilized_bandwidth)

    _pyangbind_elements = OrderedDict(
        [
            ("subtlv_type", subtlv_type),
            ("state", state),
            ("admin_group", admin_group),
            ("ipv4_interface_address", ipv4_interface_address),
            ("ipv4_neighbor_address", ipv4_neighbor_address),
            ("max_link_bandwidth", max_link_bandwidth),
            ("max_reservable_link_bandwidth", max_reservable_link_bandwidth),
            ("unreserved_bandwidth", unreserved_bandwidth),
            ("ipv6_interface_address", ipv6_interface_address),
            ("ipv6_neighbor_address", ipv6_neighbor_address),
            ("extended_admin_group", extended_admin_group),
            ("te_default_metric", te_default_metric),
            ("link_attributes", link_attributes),
            ("link_protection_type", link_protection_type),
            ("bandwidth_constraints", bandwidth_constraints),
            ("unconstrained_lsp", unconstrained_lsp),
            ("adjacency_sid", adjacency_sid),
            ("lan_adjacency_sid", lan_adjacency_sid),
            ("link_delay", link_delay),
            ("min_max_link_delay", min_max_link_delay),
            ("link_delay_variation", link_delay_variation),
            ("link_loss", link_loss),
            ("residual_bandwidth", residual_bandwidth),
            ("available_bandwidth", available_bandwidth),
            ("utilized_bandwidth", utilized_bandwidth),
        ]
    )
